Paquet YunoHost de MaBibli 1.0.0
Installe l'archive self-contained publiée en release du dépôt du code, amd64 ou arm64 selon la machine. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Executable
+65
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# TÉLÉCHARGEMENT ET VÉRIFICATION DES BINAIRES
|
||||
#=================================================
|
||||
ynh_script_progression "Installation des fichiers..."
|
||||
|
||||
# `ynh_setup_source` télécharge l'archive déclarée dans le manifeste, **vérifie son
|
||||
# sha256** et la décompresse. Aucune compilation n'a lieu ici : l'archive est un
|
||||
# publish self-contained, elle embarque son propre runtime .NET. C'est ce qui évite
|
||||
# d'installer le SDK .NET sur le serveur YunoHost.
|
||||
#
|
||||
# En cas d'empreinte incorrecte ou de téléchargement interrompu, le helper interrompt
|
||||
# le script ; YunoHost déclenche alors `remove` pour nettoyer, et rien n'a encore été
|
||||
# configuré à ce stade.
|
||||
ynh_setup_source --dest_dir="$install_dir"
|
||||
|
||||
# L'archive est un tar : le bit exécutable devrait survivre, mais un tar reconstruit
|
||||
# à la main pourrait l'avoir perdu, et l'unité systemd échouerait sans raison lisible.
|
||||
chmod +x "$install_dir/$mabibli_binaire"
|
||||
|
||||
#=================================================
|
||||
# RÉPERTOIRE DE DONNÉES
|
||||
#=================================================
|
||||
ynh_script_progression "Préparation du répertoire de données..."
|
||||
|
||||
# `data_dir` est créé par la ressource du manifeste. La base y sera créée au premier
|
||||
# démarrage : l'application applique ses migrations EF Core toute seule, il n'y a
|
||||
# aucune étape d'initialisation manuelle.
|
||||
chown "$app:$app" "$data_dir"
|
||||
chmod 750 "$data_dir"
|
||||
|
||||
#=================================================
|
||||
# CONFIGURATION NGINX ET SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression "Configuration de NGINX et du service..."
|
||||
|
||||
ynh_config_add_nginx
|
||||
ynh_config_add_systemd
|
||||
|
||||
# Les journaux partent dans journald (cf. `StandardOutput=journal`), il n'y a donc
|
||||
# pas de fichier de log à faire tourner par logrotate.
|
||||
yunohost service add "$app" --description="Bibliothèque personnelle MaBibli"
|
||||
|
||||
#=================================================
|
||||
# DÉMARRAGE DU SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression "Démarrage de $app..."
|
||||
|
||||
# « Application started » est la ligne émise par ASP.NET Core une fois l'écoute
|
||||
# ouverte — vérifié sur le publish réel. Attendre cette ligne plutôt qu'un simple
|
||||
# `systemctl start` permet à l'installation d'échouer franchement si les migrations
|
||||
# EF Core ne passent pas, au lieu de rendre la main sur un service en boucle de
|
||||
# redémarrage.
|
||||
ynh_systemctl --service="$app" --action="start" --log_path="systemd" \
|
||||
--wait_until="Application started" --timeout=60
|
||||
|
||||
#=================================================
|
||||
# FIN DU SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression "Installation de $app terminée"
|
||||
Reference in New Issue
Block a user