diff --git a/conf/systemd.service b/conf/systemd.service index 0cac9de..85ff564 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -71,7 +71,17 @@ NoNewPrivileges=yes PrivateTmp=yes PrivateDevices=yes DevicePolicy=closed -ProtectHome=yes +# ⚠️ `yes` ne convient PAS ici, et c'est contre-intuitif. +# Le `data_dir` de YunoHost vit sous `/home/yunohost.app/__APP__`. `ProtectHome=yes` +# rend `/home` inaccessible et vide dans le namespace du service : la base devient +# introuvable, et le démarrage meurt sur « SQLite Error 14: unable to open database +# file ». `ReadWritePaths=` ne suffit pas à percer cette protection — mesuré sur une +# unité de test : `yes` + `ReadWritePaths` échoue, `tmpfs` + `BindPaths` réussit. +# +# `tmpfs` conserve l'essentiel du bénéfice : les répertoires personnels du serveur +# restent invisibles au service, seul son propre répertoire de données est remonté. +ProtectHome=tmpfs +BindPaths=__DATA_DIR__ ProtectHostname=yes ProtectClock=yes ProtectControlGroups=yes diff --git a/manifest.toml b/manifest.toml index 03c2a05..c2798b6 100644 --- a/manifest.toml +++ b/manifest.toml @@ -7,7 +7,7 @@ name = "MaBibli" description.fr = "Gestion de bibliothèque personnelle : catalogue, prêts et scan ISBN" description.en = "Personal library manager: catalogue, loans and ISBN scanning" -version = "0.1.0~ynh2" +version = "0.1.0~ynh3" maintainers = ["mathieu"]