66 lines
2.7 KiB
Bash
Executable File
66 lines
2.7 KiB
Bash
Executable File
#!/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"
|