Skip to content

Commit

Permalink
Fix breaking changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Sylvain committed Jun 14, 2024
1 parent 37b5741 commit 53bc453
Show file tree
Hide file tree
Showing 17 changed files with 52 additions and 98 deletions.
11 changes: 11 additions & 0 deletions conf/env-machine-learning
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## Ports
IMMICH_HOST=127.0.0.1
IMMICH_PORT=__PORT_MACHINELEARNING__

## Database
DB_HOSTNAME=127.0.0.1
DB_PORT=__DB_PORT__
DB_USERNAME=__APP__
DB_PASSWORD=__DB_PWD__
DB_DATABASE_NAME=__APP__
DB_VECTOR_EXTENSION=pgvector
6 changes: 2 additions & 4 deletions conf/env → conf/env-server
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,8 @@ IMMICH_WEB_ROOT=__INSTALL_DIR__/app/www
IMMICH_REVERSE_GEOCODING_ROOT=__INSTALL_DIR__/app/resources

## Ports
SERVER_PORT=__PORT__
MICROSERVICES_PORT=__PORT_MICROSERVICES__
MACHINE_LEARNING_HOST=127.0.0.1
MACHINE_LEARNING_PORT=__PORT_MACHINELEARNING__
IMMICH_HOST=127.0.0.1
IMMICH_PORT=__PORT__
IMMICH_MACHINE_LEARNING_URL=http://127.0.0.1:__PORT_MACHINELEARNING__

## Database
Expand Down
8 changes: 4 additions & 4 deletions conf/immich-machine-learning-start.sh
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
#!/bin/bash

set -a
source "__INSTALL_DIR__/env"
source "__INSTALL_DIR__/env-machine-learning"
set +a

cd "__INSTALL_DIR__/app/machine-learning"
source venv/bin/activate

: "${MACHINE_LEARNING_HOST:=127.0.0.1}"
: "${MACHINE_LEARNING_PORT:=__PORT_MACHINELEARNING__}"
: "${IMMICH_HOST:=127.0.0.1}"
: "${IMMICH_PORT:=__PORT_MACHINELEARNING__}"
: "${MACHINE_LEARNING_WORKERS:=1}"
: "${MACHINE_LEARNING_WORKER_TIMEOUT:=120}"

exec gunicorn app.main:app \
-k app.config.CustomUvicornWorker \
-b "$IMMICH_HOST":"$IMMICH_PORT" \
-w "$MACHINE_LEARNING_WORKERS" \
-b "$MACHINE_LEARNING_HOST":"$MACHINE_LEARNING_PORT" \
-t "$MACHINE_LEARNING_WORKER_TIMEOUT" \
--log-config-json log_conf.json \
--graceful-timeout 0
2 changes: 1 addition & 1 deletion conf/immich-machine-learning.service
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Restart=on-failure
User=__APP__
Group=__APP__
WorkingDirectory=__INSTALL_DIR__/app
EnvironmentFile=__INSTALL_DIR__/env
EnvironmentFile=__INSTALL_DIR__/env-machine-learning
ExecStart=__INSTALL_DIR__/app/machine-learning/start.sh
StandardOutput=append:/var/log/__APP__/__APP__-machine-learning.log
StandardError=inherit
Expand Down
54 changes: 0 additions & 54 deletions conf/immich-microservices.service

This file was deleted.

2 changes: 1 addition & 1 deletion conf/immich-server-start.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

set -a
. "__INSTALL_DIR__/env"
. "__INSTALL_DIR__/env-server"
set +a

cd "__INSTALL_DIR__/app"
Expand Down
3 changes: 1 addition & 2 deletions conf/immich-server.service
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ Documentation=https://github.com/immich-app/immich
Requires=redis-server.service
Requires=postgresql.service
Requires=immich-machine-learning.service
Requires=immich-microservices.service
After=network.target

[Service]
Expand All @@ -14,7 +13,7 @@ User=__APP__
Group=__APP__
WorkingDirectory=__INSTALL_DIR__/app
Environment="__YNH_NODE_LOAD_PATH__"
EnvironmentFile=__INSTALL_DIR__/env
EnvironmentFile=__INSTALL_DIR__/env-server
ExecStart=__YNH_NODE__ __INSTALL_DIR__/app/dist/main __APP__
StandardOutput=append:/var/log/__APP__/__APP__-server.log
StandardError=inherit
Expand Down
3 changes: 2 additions & 1 deletion doc/PRE_INSTALL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
As the pyhton version shipped in Debian stable is not always supported, a recent version could be built during the installation process. It may take a while to achieve that (15 to 60 minutes).

This package provides support for the JPEG, PNG, WebP, AVIF (limited to 8-bit depth), TIFF, GIF and SVG (input) image formats.
HEIC/HEIF file format is not supported (see cf. https://github.com/YunoHost-Apps/immich_ynh/issues/40#issuecomment-2096788600).
**HEIC/HEIF file format is not supported** (see cf. https://github.com/YunoHost-Apps/immich_ynh/issues/40#issuecomment-2096788600).

Please ensure **your mobile app and server are on the same version**. Otherwise, you won't be able to access the app.
3 changes: 2 additions & 1 deletion doc/PRE_INSTALL_fr.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Comme la version python livrée dans Debian stable n'est pas toujours prise en charge, une version récente pourrait être construite pendant le processus d'installation. Cela peut prendre un certain temps pour y parvenir (15 à 60 minutes).

Ce package supporte les formats d'images suivant : JPEG, PNG, WebP, AVIF (limité à profondeur de couleur de 8 bits), TIFF, GIF et SVG.
Le format HEIC/HEIF n'est pas supporté (cf. https://github.com/YunoHost-Apps/immich_ynh/issues/40#issuecomment-2096788600).
**Le format HEIC/HEIF n'est pas supporté** (cf. https://github.com/YunoHost-Apps/immich_ynh/issues/40#issuecomment-2096788600).

Assurez-vous que **l'application mobile et le serveur sont sur la même version**. Dans le cas contraire vous risquez de ne pas pouvoir accèder à l'application.
1 change: 0 additions & 1 deletion manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ ram.runtime = "500M"

[resources.ports]
main.default = 3001
microservices.default = 3002
machinelearning.default = 3003

[resources.system_user]
Expand Down
5 changes: 2 additions & 3 deletions scripts/_common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,7 @@ myynh_install_immich() {
cp -a "$source_dir/server/resources" "$install_dir/app/"
cp -a "$source_dir/server/package.json" "$install_dir/app/"
cp -a "$source_dir/server/package-lock.json" "$install_dir/app/"
cp -a "$source_dir/server/start-microservices.sh" "$install_dir/app/"
cp -a "$source_dir/server/start-server.sh" "$install_dir/app/"
cp -a "$source_dir/server/start*.sh" "$install_dir/app/"
cp -a "$source_dir/LICENSE" "$install_dir/app/"
# Install custom start.sh script
ynh_add_config --template="immich-server-start.sh" --destination="$install_dir/app/start.sh"
Expand Down Expand Up @@ -187,7 +186,7 @@ myynh_install_immich() {
cd "$install_dir/app"
ynh_exec_warn_less "$ynh_npm" install sharp

# Use 127.0.0.1 for microservices
# Use 127.0.0.1
sed -i -e "[email protected](port)@app.listen(port, '127.0.0.1')@g" "$install_dir/app/dist/main.js"

# Install geonames
Expand Down
1 change: 0 additions & 1 deletion scripts/backup
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ ynh_backup --src_path="$data_dir" --is_big
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"

ynh_backup --src_path="/etc/systemd/system/$app-server.service"
ynh_backup --src_path="/etc/systemd/system/$app-microservices.service"
ynh_backup --src_path="/etc/systemd/system/$app-machine-learning.service"

ynh_backup --src_path="/etc/logrotate.d/$app"
Expand Down
2 changes: 0 additions & 2 deletions scripts/change_url
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ source /usr/share/yunohost/helpers
#=================================================
ynh_script_progression --message="Stopping $app's systemd service..." --weight=1

ynh_systemd_action --service_name="$app-microservices" --action="stop" --log_path="/var/log/$app/$app-microservices.log"
ynh_systemd_action --service_name="$app-machine-learning" --action="stop" --log_path="/var/log/$app/$app-machine-learning.log"
ynh_systemd_action --service_name="$app-server" --action="stop" --log_path="/var/log/$app/$app-server.log"

Expand All @@ -31,7 +30,6 @@ ynh_change_url_nginx_config
#=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=1

ynh_systemd_action --service_name="$app-microservices" --action="start" --line_match="Immich Microservices is listening" --log_path="/var/log/$app/$app-microservices.log"
ynh_systemd_action --service_name="$app-machine-learning" --action="start" --line_match="Application startup complete" --log_path="/var/log/$app/$app-machine-learning.log"
ynh_systemd_action --service_name="$app-server" --action="start" --line_match="Immich Server is listening" --log_path="/var/log/$app/$app-server.log"

Expand Down
13 changes: 7 additions & 6 deletions scripts/install
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,13 @@ myynh_install_immich
#=================================================
ynh_script_progression --message="Adding a configuration file..."

ynh_add_config --template="env" --destination="$install_dir/env"
chmod 600 "$install_dir/env"
chown $app:$app "$install_dir/env"
ynh_add_config --template="env-server" --destination="$install_dir/env-server"
chmod 600 "$install_dir/env-server"
chown $app:$app "$install_dir/env-server"

ynh_add_config --template="env-machine-learning" --destination="$install_dir/env-machine-learning"
chmod 600 "$install_dir/env-machine-learning"
chown $app:$app "$install_dir/env-machine-learning"

#=================================================
# SYSTEM CONFIGURATION
Expand All @@ -68,11 +72,9 @@ ynh_script_progression --message="Adding system configurations related to $app..
ynh_add_nginx_config

ynh_add_systemd_config --service="$app-server" --template="immich-server.service"
ynh_add_systemd_config --service="$app-microservices" --template="immich-microservices.service"
ynh_add_systemd_config --service="$app-machine-learning" --template="immich-machine-learning.service"

yunohost service add "$app-server" --description="Immich Server" --log="/var/log/$app/$app-server.log"
yunohost service add "$app-microservices" --description="Immich Microservices" --log="/var/log/$app/$app-microservices.log"
yunohost service add "$app-machine-learning" --description="Immich Machine Learning" --log="/var/log/$app/$app-machine-learning.log"

ynh_multimedia_build_main_dir
Expand All @@ -87,7 +89,6 @@ ynh_add_fail2ban_config --logpath="/var/log/$app/$app-server.log" --failregex="$
#=================================================
ynh_script_progression --message="Starting a systemd service..."

ynh_systemd_action --service_name="$app-microservices" --action="start" --line_match="Immich Microservices is listening" --log_path="/var/log/$app/$app-microservices.log"
ynh_systemd_action --service_name="$app-machine-learning" --action="start" --line_match="Application startup complete" --log_path="/var/log/$app/$app-machine-learning.log"
ynh_systemd_action --service_name="$app-server" --action="start" --line_match="Immich Server is listening" --log_path="/var/log/$app/$app-server.log"

Expand Down
4 changes: 0 additions & 4 deletions scripts/remove
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,12 @@ ynh_script_progression --message="Removing system configurations related to $app
if ynh_exec_warn_less yunohost service status "$app-server" >/dev/null; then
yunohost service remove "$app-server"
fi
if ynh_exec_warn_less yunohost service status "$app-microservices" >/dev/null; then
yunohost service remove "$app-microservices"
fi
if ynh_exec_warn_less yunohost service status "$app-machine-learning" >/dev/null; then
yunohost service remove "$app-machine-learning"
fi

# Remove the dedicated systemd config
ynh_remove_systemd_config --service="immich-server"
ynh_remove_systemd_config --service="immich-microservices"
ynh_remove_systemd_config --service="immich-machine-learning"

# Remove the app-specific fail2ban config
Expand Down
4 changes: 0 additions & 4 deletions scripts/restore
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,12 @@ ynh_script_progression --message="Restoring system configurations related to $ap
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"

ynh_restore_file --origin_path="/etc/systemd/system/$app-server.service"
ynh_restore_file --origin_path="/etc/systemd/system/$app-microservices.service"
ynh_restore_file --origin_path="/etc/systemd/system/$app-machine-learning.service"

systemctl enable "$app-server.service" --quiet
systemctl enable "$app-microservices.service" --quiet
systemctl enable "$app-machine-learning.service" --quiet

yunohost service add "$app-server" --description="Immich Server" --log="/var/log/$app/$app-server.log"
yunohost service add "$app-microservices" --description="Immich Microservices" --log="/var/log/$app/$app-microservices.log"
yunohost service add "$app-machine-learning" --description="Immich Machine Learning" --log="/var/log/$app/$app-machine-learning.log"

ynh_multimedia_build_main_dir
Expand All @@ -89,7 +86,6 @@ ynh_restore_file --origin_path="/var/log/$app/"
#=================================================
ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1

ynh_systemd_action --service_name="$app-microservices" --action="start" --line_match="Immich Microservices is listening" --log_path="/var/log/$app/$app-microservices.log"
ynh_systemd_action --service_name="$app-machine-learning" --action="start" --line_match="Application startup complete" --log_path="/var/log/$app/$app-machine-learning.log"
ynh_systemd_action --service_name="$app-server" --action="start" --line_match="Immich Server is listening" --log_path="/var/log/$app/$app-server.log"

Expand Down
28 changes: 19 additions & 9 deletions scripts/upgrade
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,22 @@ source /usr/share/yunohost/helpers
ynh_script_progression --message="Stopping a systemd service..." --weight=1

ynh_systemd_action --service_name="$app-server" --action="stop"
ynh_systemd_action --service_name="$app-microservices" --action="stop"
ynh_systemd_action --service_name="$app-machine-learning" --action="stop"

#=================================================
# ENSURE DOWNWARD COMPATIBILITY
#=================================================
#ynh_script_progression --message="Ensuring downward compatibility..." --weight=1
ynh_script_progression --message="Ensuring downward compatibility..." --weight=1

if ynh_compare_current_package_version --comparison lt --version 1.106.4~ynh1
then
ynh_systemd_action --service_name="$app-microservices" --action="stop"
if ynh_exec_warn_less yunohost service status "$app-microservices" >/dev/null; then
yunohost service remove "$app-microservices"
fi
ynh_remove_systemd_config --service="immich-microservices"
ynh_secure_remove --file="/var/log/$app/$app-microservices.log"
fi

#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
Expand Down Expand Up @@ -59,9 +68,14 @@ ynh_script_progression --message="Updating $app's configuration files..." --weig

db_pwd=$(ynh_app_setting_get --app="$app" --key=psql_pwd)
db_port=$(ynh_app_setting_get --app="$app" --key=psql_port)
ynh_add_config --template="env" --destination="$install_dir/env"
chmod 600 "$install_dir/env"
chown $app:$app "$install_dir/env"

ynh_add_config --template="env-server" --destination="$install_dir/env-server"
chmod 600 "$install_dir/env-server"
chown $app:$app "$install_dir/env-server"

ynh_add_config --template="env-machine-learning" --destination="$install_dir/env-machine-learning"
chmod 600 "$install_dir/env-machine-learning"
chown $app:$app "$install_dir/env-machine-learning"

#=================================================
# REAPPLY SYSTEM CONFIGURATIONS
Expand All @@ -71,10 +85,8 @@ ynh_script_progression --message="Upgrading system configurations related to $ap
ynh_add_nginx_config

ynh_add_systemd_config --service="$app-server" --template="immich-server.service"
ynh_add_systemd_config --service="$app-microservices" --template="immich-microservices.service"
ynh_add_systemd_config --service="$app-machine-learning" --template="immich-machine-learning.service"

yunohost service add "$app-microservices" --description="Immich Microservices" --log="/var/log/$app/$app-microservices.log"
yunohost service add "$app-machine-learning" --description="Immich Machine Learning" --log="/var/log/$app/$app-machine-learning.log"
yunohost service add "$app-server" --description="Immich Server" --log="/var/log/$app/$app-server.log"

Expand All @@ -89,8 +101,6 @@ ynh_add_fail2ban_config --logpath="/var/log/$app/$app-server.log" --failregex="$
# START SYSTEMD SERVICE
#=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=1

ynh_systemd_action --service_name="$app-microservices" --action="start" --line_match="Immich Microservices is listening" --log_path="/var/log/$app/$app-microservices.log"
ynh_systemd_action --service_name="$app-machine-learning" --action="start" --line_match="Application startup complete" --log_path="/var/log/$app/$app-machine-learning.log"
ynh_systemd_action --service_name="$app-server" --action="start" --line_match="Immich Server is listening" --log_path="/var/log/$app/$app-server.log"

Expand Down

0 comments on commit 53bc453

Please sign in to comment.