install 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash
  2. source _common.sh
  3. source /usr/share/yunohost/helpers
  4. ynh_script_progression "Copie des sources de l'application..."
  5. cp -a "$YNH_APP_BASEDIR/sources/." "$install_dir/"
  6. ynh_script_progression "Création du virtualenv Python et installation des dépendances..."
  7. python3 -m venv "$install_dir/venv"
  8. "$install_dir/venv/bin/pip" install --upgrade pip wheel --quiet
  9. "$install_dir/venv/bin/pip" install -r "$install_dir/requirements.txt" --quiet
  10. ynh_script_progression "Création de la structure de données..."
  11. mkdir -p "$data_dir/keys" "$data_dir/logs"
  12. ynh_script_progression "Génération des secrets..."
  13. secret_key=$(ynh_string_random --length=64)
  14. api_token=$(ynh_string_random --length=64)
  15. ynh_app_setting_set --key=secret_key --value="$secret_key"
  16. ynh_app_setting_set --key=api_token --value="$api_token"
  17. ynh_script_progression "Génération du fichier de configuration..."
  18. ynh_config_add --template="app.conf" --destination="$install_dir/config.py"
  19. ynh_script_progression "Initialisation de la base de données..."
  20. "$install_dir/venv/bin/python3" "$install_dir/init_db.py" "$install_dir/config.py"
  21. ynh_script_progression "Configuration des permissions..."
  22. chown -R "$app:$app" "$install_dir" "$data_dir"
  23. chmod 600 "$install_dir/config.py"
  24. chmod 700 "$data_dir/keys"
  25. ynh_script_progression "Ajout des règles sudo..."
  26. ynh_config_add --template="sudoers" --destination="/etc/sudoers.d/$app"
  27. chmod 440 "/etc/sudoers.d/$app"
  28. ynh_script_progression "Configuration du service systemd..."
  29. ynh_config_add_systemd
  30. yunohost service add "$app" \
  31. --description="Backup Manager ($instance_name)" \
  32. --log="$data_dir/logs/backupmanager.log"
  33. ynh_script_progression "Configuration de nginx..."
  34. ynh_config_add_nginx
  35. ynh_script_progression "Démarrage du service..."
  36. ynh_systemctl --action="start" --service="$app"
  37. ynh_script_progression "Installation terminée !"
  38. ynh_print_info "Token API : $api_token"
  39. ynh_print_info "Conservez ce token, il ne sera plus affiché."