Update Almond to 2.0.0 (#2042)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
Giovanni Campagna
2021-07-14 07:59:44 -07:00
committed by GitHub
parent 7786477bd4
commit 2d0dcf524d
10 changed files with 168 additions and 124 deletions

View File

@@ -1,62 +1,74 @@
# Changelog # Changelog
## 1.1.2 ## 2.0.0
- Revert restart nginx service on error - Almond was updated to 2.0.0: this is a major release that
brings significant changes to the supported skills. Additional
## 1.1.1 details are in the release notes: https://wiki.almond.stanford.edu/en/release-planning/two-point-oh
All users are encouraged to upgrade as soon as possible, because
- Fix issue with some Almond packages the previous release line is unmaintained and unsupported. Cloud
services that Almond relies on might drop compatibility with
## 1.1.0 Almond 1.* at some point in the future.
- Voice support is now included in this addon, and the Ada add-on
- Restart nginx service on error is not required (in fact, it should not be enabled at the same time).
- Use Alpine 3.13
## 1.1.2
## 1.0.1
- Revert restart nginx service on error
- Keep unzip dependency installed
## 1.1.1
## 1.0.0
- Fix issue with some Almond packages
- Update Almond to 1.8.0
- Rewrite onto S6 overlay ## 1.1.0
- Reduce add-on image size
- Updates Supervisor API token and endpoint - Restart nginx service on error
- Use Alpine 3.13
## 0.9
## 1.0.1
- Update Almond to 1.7.3
- Keep unzip dependency installed
## 0.8
## 1.0.0
- Update Almond to 1.7.2
- Update Almond to 1.8.0
## 0.7 - Rewrite onto S6 overlay
- Reduce add-on image size
- Change startup type to Application - Updates Supervisor API token and endpoint
## 0.6 ## 0.9
- Fix issue with restart / Hass.io token handling - Update Almond to 1.7.3
## 0.5 ## 0.8
- Update Almond to 1.7.1 - Update Almond to 1.7.2
## 0.4 ## 0.7
- Update Almond to 1.7.0 - Change startup type to Application
## 0.3 ## 0.6
- Add automatic Almond setup - Fix issue with restart / Hass.io token handling
## 0.2 ## 0.5
- Add Ingress - Update Almond to 1.7.1
- Update almond to 1.6.0
## 0.4
## 0.1
- Update Almond to 1.7.0
- Initial version
## 0.3
- Add automatic Almond setup
## 0.2
- Add Ingress
- Update almond to 1.6.0
## 0.1
- Initial version

View File

@@ -29,7 +29,9 @@ You have several options to get them answered:
- The [Home Assistant Discord Chat Server][discord]. - The [Home Assistant Discord Chat Server][discord].
- The Home Assistant [Community Forum][forum]. - The Home Assistant [Community Forum][forum].
- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] - Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit].
- The [Almond Discord Chat Server][discordalmond].
- The Almond [Community Forum][forumalmond].
In case you've found a bug, please [open an issue on our GitHub][issue]. In case you've found a bug, please [open an issue on our GitHub][issue].
@@ -37,4 +39,5 @@ In case you've found a bug, please [open an issue on our GitHub][issue].
[forum]: https://community.home-assistant.io [forum]: https://community.home-assistant.io
[issue]: https://github.com/home-assistant/hassio-addons/issues [issue]: https://github.com/home-assistant/hassio-addons/issues
[reddit]: https://reddit.com/r/homeassistant [reddit]: https://reddit.com/r/homeassistant
[repository]: https://github.com/hassio-addons/repository [discordalmond]: https://discord.gg/anthtR4
[forumalmond]: https://community.almond.stanford.edu

View File

@@ -5,50 +5,73 @@ FROM ${BUILD_FROM}
ENV \ ENV \
LANG="en_US.utf8" \ LANG="en_US.utf8" \
THINGENGINE_HOME="/data/almond-server" \ THINGENGINE_HOME="/data/almond-server" \
THINGENGINE_HOST_BASED_AUTHENTICATION="local-ip" THINGENGINE_HAS_REVERSE_PROXY=true \
THINGENGINE_HOST_BASED_AUTHENTICATION=insecure \
THINGENGINE_IN_HOME_ASSISTANT_ADDON=true
WORKDIR /opt/almond WORKDIR /opt/almond
ARG ALMOND_VERSION ARG ALMOND_VERSION
RUN \ RUN \
set -x \ set -x \
&& apk add --no-cache \ && apt-get update \
nodejs \ && apt-get install -y --no-install-recommends \
npm \ build-essential \
yarn \ libcanberra-dev \
libcanberra0 \
libpulse-dev \
libatlas-base-dev \
libatlas3-base \
pkg-config \
ca-certificates \
git \
gnupg \
nginx \ nginx \
python-dev \
software-properties-common \
unzip \ unzip \
blas \
sqlite \ sqlite \
coreutils \ coreutils \
&& apk add --no-cache --virtual .build-dependencies \ pulseaudio \
build-base \ pulseaudio-utils \
blas-dev \ gettext \
git \ zip \
linux-headers \ wget \
sqlite-dev \ gstreamer1.0-plugins-base-apps \
pkgconf \ gstreamer1.0-plugins-good \
python3 \ gstreamer1.0-pulseaudio \
\
&& curl -sS https://deb.nodesource.com/gpgkey/nodesource.gpg.key \
| apt-key add - \
&& echo "deb https://deb.nodesource.com/node_12.x buster main" \
> /etc/apt/sources.list.d/nodesource.list \
\
&& apt-get update \
&& apt-get install -y --no-install-recommends \
nodejs \
\ \
&& npm config set unsafe-perm \ && npm config set unsafe-perm \
&& ln -s /usr/bin/python3 /usr/bin/python \
\ \
&& git clone -b "${ALMOND_VERSION}" --depth 1 \ && git clone -b "${ALMOND_VERSION}" --depth 1 https://github.com/stanford-oval/almond-server . \
"https://github.com/stanford-oval/almond-server" . \ && npm ci \
&& rm -fr .git \ && npm install --no-package-lock --ignore-scripts snowboy@1.3.1 \
&& yarn \ && cd node_modules/snowboy/ \
&& PYTHON=python2 npx node-pre-gyp clean configure \
&& make -C build/ \
&& rm -fr /root/.cache \
&& rm -fr /root/.npm \
&& mkdir /root/.cache \
\ \
&& yarn global add modclean \ && apt-get purge -y --auto-remove \
&& modclean \ build-essential \
--path /opt/almond \ libcanberra-dev \
--no-progress \ libpulse-dev \
--keep-empty \ libatlas-base-dev \
--run \ pkg-config \
&& yarn global remove modclean \ git \
\ gnupg \
&& yarn cache clean \ python-dev \
&& apk del --no-cache \ software-properties-common \
.build-dependencies \
\ \
&& rm -rf \ && rm -rf \
/opt/almond/.[!.]* \ /opt/almond/.[!.]* \
@@ -57,6 +80,9 @@ RUN \
/tmp/.[!.]* \ /tmp/.[!.]* \
/tmp/* \ /tmp/* \
/usr/local/share/.cache \ /usr/local/share/.cache \
/usr/local/share/.config /usr/local/share/.config \
/usr/lib/nginx \
/var/lib/apt/lists/* \
/var/www
COPY rootfs / COPY rootfs /

View File

@@ -1,10 +1,20 @@
# Home Assistant Add-on: Almond # Home Assistant Add-on: Almond
[Almond] For Home Servers. The Open-source, Privacy-Preserving Voice Assistant.
![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield] ![Supports aarch64 Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports i386 Architecture][i386-shield]
The Open, Privacy-Preserving Virtual Assistant. [Almond] provides a complete solution to turn your Home Assistant
into a smart speaker. It supports playing music, controlling your
IoT, checking the weather, and other simple questions.
To use Almond as a voice assistant, you should connect a microphone and speaker to the
device where Home Assistant is installed.
**Note**: since version 2.0.0 of the add-on, the use of the separate
Ada add-on is not required. Almond includes built-in voice capabilities,
using the wake-word "computer". It is recommended to avoid using Ada
with Almond >= 2.0.0.
[Almond]: https://almond.stanford.edu/ [Almond]: https://almond.stanford.edu/
[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg

View File

@@ -1,12 +1,10 @@
{ {
"build_from": { "build_from": {
"aarch64": "homeassistant/aarch64-base:3.13", "aarch64": "homeassistant/aarch64-base-debian:buster",
"amd64": "homeassistant/amd64-base:3.13", "amd64": "homeassistant/amd64-base-debian:buster",
"i386": "homeassistant/i386-base:3.13", "armv7": "homeassistant/armv7-base-debian:buster"
"armv7": "homeassistant/armv7-base:3.13",
"armhf": "homeassistant/armhf-base:3.13"
}, },
"args": { "args": {
"ALMOND_VERSION": "v1.8.0" "ALMOND_VERSION": "v2.0.1"
} }
} }

View File

@@ -1,17 +1,16 @@
{ {
"name": "Almond", "name": "Almond",
"version": "1.1.2", "version": "2.0.0",
"slug": "almond", "slug": "almond",
"description": "The home server version of Almond", "description": "The open-source, privacy-preserving voice assistant",
"url": "https://github.com/home-assistant/hassio-addons/blob/master/almond", "url": "https://github.com/home-assistant/hassio-addons/blob/master/almond",
"arch": ["armv7", "armhf", "aarch64", "amd64", "i386"], "arch": ["armv7", "aarch64", "amd64"],
"init": false, "init": false,
"discovery": ["almond"], "discovery": ["almond"],
"ingress": true, "ingress": true,
"audio": true,
"panel_icon": "mdi:comment-eye-outline", "panel_icon": "mdi:comment-eye-outline",
"homeassistant": "0.102.0", "homeassistant": "0.102.0",
"homeassistant_api": true, "homeassistant_api": true,
"options": {},
"schema": {},
"image": "homeassistant/{arch}-addon-almond" "image": "homeassistant/{arch}-addon-almond"
} }

View File

@@ -0,0 +1,7 @@
{
"server-login": {
"password":"x",
"salt":"x",
"sqliteKeySalt":"x"
}
}

View File

@@ -1,14 +0,0 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Prepare the Almond service for running
# ==============================================================================
readonly PREFS_DB="${THINGENGINE_HOME}/prefs.db"
if ! bashio::fs.file_exists "${PREFS_DB}"; then
# Ensure Thing Engine home directory exists
mkdir -p "${THINGENGINE_HOME}"
# Skip authentication handling
echo '{"server-login":{"password":"x","salt":"x","sqliteKeySalt":"x"}}' \
> "${PREFS_DB}"
fi

View File

@@ -52,8 +52,6 @@ http {
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade; proxy_set_header Connection $connection_upgrade;
proxy_set_header Host "127.0.0.1:3000";
proxy_set_header Origin "http://127.0.0.1:3000";
} }
} }
} }

View File

@@ -7,6 +7,11 @@ export THINGENGINE_BASE_URL
# Set the Ingress URL as Almond base URL for correct handling # Set the Ingress URL as Almond base URL for correct handling
THINGENGINE_BASE_URL=$(bashio::addon.ingress_entry) THINGENGINE_BASE_URL=$(bashio::addon.ingress_entry)
mkdir -p /data/almond-server
if [ ! -f /data/almond-server/prefs.db ]; then
cp /etc/almond/default-prefs.db /data/almond-server/prefs.db
fi
# Send out discovery information to Home Assistant # Send out discovery information to Home Assistant
./discovery & ./discovery &