mirror of
https://github.com/YunoHost-Apps/immich_ynh.git
synced 2024-09-03 20:36:24 +02:00
Fix breaking changes
This commit is contained in:
parent
37b5741adb
commit
53bc45342f
17 changed files with 52 additions and 98 deletions
11
conf/env-machine-learning
Normal file
11
conf/env-machine-learning
Normal file
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
[Unit]
|
||||
Description=Immich microservices
|
||||
Documentation=https://github.com/immich-app/immich
|
||||
Requires=redis-server.service
|
||||
Requires=postgresql.service
|
||||
After=network.target
|
||||
PartOf=immich-server.service
|
||||
Before=immich-server.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Restart=on-failure
|
||||
User=__APP__
|
||||
Group=__APP__
|
||||
WorkingDirectory=__INSTALL_DIR__/app
|
||||
Environment="__YNH_NODE_LOAD_PATH__"
|
||||
EnvironmentFile=__INSTALL_DIR__/env
|
||||
ExecStart=__YNH_NODE__ __INSTALL_DIR__/app/dist/main microservices
|
||||
StandardOutput=append:/var/log/__APP__/__APP__-microservices.log
|
||||
StandardError=inherit
|
||||
Restart=on-failure
|
||||
|
||||
# Sandboxing options to harden security
|
||||
# Depending on specificities of your service/app, you may need to tweak these
|
||||
# .. but this should be a good baseline
|
||||
# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
|
||||
NoNewPrivileges=yes
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
||||
RestrictNamespaces=yes
|
||||
RestrictRealtime=yes
|
||||
DevicePolicy=closed
|
||||
ProtectSystem=full
|
||||
ProtectControlGroups=yes
|
||||
ProtectKernelModules=yes
|
||||
ProtectKernelTunables=yes
|
||||
LockPersonality=yes
|
||||
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
|
||||
|
||||
# Denying access to capabilities that should not be relevant for webapps
|
||||
# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html
|
||||
CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD
|
||||
CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE
|
||||
CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT
|
||||
CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK
|
||||
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM
|
||||
CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG
|
||||
CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE
|
||||
CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW
|
||||
CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG
|
||||
|
||||
[Install]
|
||||
WantedBy=immich-server.service
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -a
|
||||
. "__INSTALL_DIR__/env"
|
||||
. "__INSTALL_DIR__/env-server"
|
||||
set +a
|
||||
|
||||
cd "__INSTALL_DIR__/app"
|
||||
|
|
|
@ -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]
|
||||
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -49,7 +49,6 @@ ram.runtime = "500M"
|
|||
|
||||
[resources.ports]
|
||||
main.default = 3001
|
||||
microservices.default = 3002
|
||||
machinelearning.default = 3003
|
||||
|
||||
[resources.system_user]
|
||||
|
|
|
@ -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"
|
||||
|
@ -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 "s@app.listen(port)@app.listen(port, '127.0.0.1')@g" "$install_dir/app/dist/main.js"
|
||||
|
||||
# Install geonames
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
|
Loading…
Reference in a new issue