mirror of
https://github.com/YunoHost-Apps/mumbleserver_ynh.git
synced 2024-09-03 19:46:03 +02:00
mumble-web integration follow-up
include nginx, mumble-web port, systemd, create a dedicated user, display script progression
This commit is contained in:
parent
d64b9ecb73
commit
6da29483ba
11 changed files with 333 additions and 50 deletions
|
@ -2,23 +2,21 @@
|
||||||
auto_remove=1
|
auto_remove=1
|
||||||
; Manifest
|
; Manifest
|
||||||
domain="domain.tld" (DOMAIN)
|
domain="domain.tld" (DOMAIN)
|
||||||
|
path="/path" (PATH)
|
||||||
|
is_public=1 (PUBLIC|public=1|private=0)
|
||||||
welcometext="Welcome to my mumble server"
|
welcometext="Welcome to my mumble server"
|
||||||
registername="Root"
|
registername="Root"
|
||||||
mumbleweb=1
|
mumbleweb=1
|
||||||
; Checks
|
; Checks
|
||||||
pkg_linter=1
|
pkg_linter=1
|
||||||
setup_sub_dir=0
|
setup_sub_dir=1
|
||||||
setup_root=0
|
setup_root=1
|
||||||
setup_nourl=1
|
setup_nourl=1
|
||||||
setup_private=0
|
setup_private=1
|
||||||
setup_public=0
|
setup_public=1
|
||||||
upgrade=0
|
upgrade=1
|
||||||
# latest published in community.json
|
backup_restore=1
|
||||||
backup_restore=0
|
multi_instance=1
|
||||||
multi_instance=0
|
|
||||||
wrong_user=0
|
|
||||||
wrong_path=0
|
|
||||||
incorrect_path=0
|
|
||||||
port_already_use=0
|
port_already_use=0
|
||||||
;;; Levels
|
;;; Levels
|
||||||
Level 1=auto
|
Level 1=auto
|
||||||
|
|
6
conf/app.src
Normal file
6
conf/app.src
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
SOURCE_URL=https://github.com/Johni0702/mumble-web/archive/8f97d6326cfdafd89995d91b039a568c3a479276.tar.gz
|
||||||
|
SOURCE_SUM=8e54bba1259472e2f50b72dceae8e2a1637293bf3682c3fddefb2a94630bddeb
|
||||||
|
SOURCE_SUM_PRG=sha256sum
|
||||||
|
ARCH_FORMAT=tar.gz
|
||||||
|
SOURCE_IN_SUBDIR=true
|
||||||
|
SOURCE_FILENAME=
|
|
@ -1,15 +1,15 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Mumble web interface
|
Description=Mumble web interface (app: __APP__)
|
||||||
Documentation=https://github.com/johni0702/mumble-web
|
Documentation=https://github.com/johni0702/mumble-web
|
||||||
Requires=network.target mumble-server.service
|
Requires=network.target mumble-server.service
|
||||||
After=network.target mumble-server.service
|
After=network.target mumble-server.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=www-data
|
User=__APP__
|
||||||
Environment="PATH=__ENV_PATH__"
|
Environment="PATH=__ENV_PATH__"
|
||||||
Environment=NODE_ENV=production
|
Environment=NODE_ENV=production
|
||||||
ExecStart=/usr/bin/websockify --web=/usr/lib/node_modules/mumble-web/dist --ssl-target localhost:64737 localhost:64738
|
ExecStart=/usr/bin/websockify --web=__FINALPATH__/dist/ --ssl-target localhost:__PORT_WEB__ localhost:__PORT__
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
18
conf/nginx.conf
Normal file
18
conf/nginx.conf
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent;
|
||||||
|
location __PATH__/ {
|
||||||
|
|
||||||
|
# Path to source
|
||||||
|
alias __FINALPATH__/dist/ ;
|
||||||
|
|
||||||
|
# Force usage of https
|
||||||
|
if ($scheme = http) {
|
||||||
|
rewrite ^ https://$server_name$request_uri? permanent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
location __PATH__/demo/ {
|
||||||
|
proxy_pass http://localhost:__PORT_WEB__;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection $connection_upgrade;
|
||||||
|
}
|
|
@ -13,7 +13,7 @@
|
||||||
"email": "jean-baptiste@holcroft.fr"
|
"email": "jean-baptiste@holcroft.fr"
|
||||||
},
|
},
|
||||||
"requirements": {
|
"requirements": {
|
||||||
"yunohost": ">= 3.4.0"
|
"yunohost": ">= 3.7.0"
|
||||||
},
|
},
|
||||||
"version": "1.2.8~ynh7",
|
"version": "1.2.8~ynh7",
|
||||||
"multi_instance": true,
|
"multi_instance": true,
|
||||||
|
@ -29,8 +29,29 @@
|
||||||
},
|
},
|
||||||
"example": "domain.org"
|
"example": "domain.org"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "path",
|
||||||
|
"type": "path",
|
||||||
|
"ask": {
|
||||||
|
"en": "Choose a path for mumble web"
|
||||||
|
},
|
||||||
|
"example": "/web",
|
||||||
|
"default": "/web"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "is_public",
|
||||||
|
"type": "boolean",
|
||||||
|
"ask": {
|
||||||
|
"en": "Is it a public application?"
|
||||||
|
},
|
||||||
|
"help": {
|
||||||
|
"en": "Set to no to limit access to logged YunoHost users."
|
||||||
|
},
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "welcometext",
|
"name": "welcometext",
|
||||||
|
"type": "string",
|
||||||
"ask": {
|
"ask": {
|
||||||
"en": "Choose a welcome text for your server",
|
"en": "Choose a welcome text for your server",
|
||||||
"fr": "Choisissez un message de bienvenue pour le serveur"
|
"fr": "Choisissez un message de bienvenue pour le serveur"
|
||||||
|
@ -40,6 +61,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "registername",
|
"name": "registername",
|
||||||
|
"type": "string",
|
||||||
"ask": {
|
"ask": {
|
||||||
"en": "Choose a name for the root channel (your mumble server name)",
|
"en": "Choose a name for the root channel (your mumble server name)",
|
||||||
"fr": "Entrez un nom pour le channel racine (le nom de votre serveur mumble)"
|
"fr": "Entrez un nom pour le channel racine (le nom de votre serveur mumble)"
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
pkg_dependencies="mumble-server mailutils websockify"
|
||||||
|
|
||||||
# Send an email to inform the administrator
|
# Send an email to inform the administrator
|
||||||
#
|
#
|
||||||
# usage: ynh_send_readme_to_admin app_message [recipients]
|
# usage: ynh_send_readme_to_admin app_message [recipients]
|
||||||
|
@ -61,3 +63,16 @@ $(yunohost tools diagnosis | grep -B 100 "services:" | sed '/services:/d')"
|
||||||
echo "$mail_message" | $mail_bin -a "Content-Type: text/plain; charset=UTF-8" -s "$mail_subject" "$recipients"
|
echo "$mail_message" | $mail_bin -a "Content-Type: text/plain; charset=UTF-8" -s "$mail_subject" "$recipients"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Execute a command as another user
|
||||||
|
# usage: ynh_exec_as USER COMMAND [ARG ...]
|
||||||
|
ynh_exec_as() {
|
||||||
|
local USER=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
if [[ $USER = $(whoami) ]]; then
|
||||||
|
eval "$@"
|
||||||
|
else
|
||||||
|
sudo -u "$USER" "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
@ -6,12 +6,7 @@
|
||||||
# IMPORT GENERIC HELPERS
|
# IMPORT GENERIC HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ ! -e _common.sh ]; then
|
source ../settings/scripts/_common.sh
|
||||||
# Get the _common.sh file if it's not in the current directory
|
|
||||||
cp ../settings/scripts/_common.sh ./_common.sh
|
|
||||||
chmod a+rx _common.sh
|
|
||||||
fi
|
|
||||||
source _common.sh
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -29,17 +24,43 @@ ynh_abort_if_errors
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
final_path=$(ynh_app_setting_get $app final_path)
|
final_path=$(ynh_app_setting_get $app final_path)
|
||||||
|
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD BACKUP STEPS
|
# STANDARD BACKUP STEPS
|
||||||
|
#=================================================
|
||||||
|
# STOP SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Stopping a systemd service..." --time --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name="$app" --action="stop"
|
||||||
|
ynh_systemd_action --service_name="$app-web" --action="stop"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE APP MAIN DIR
|
# BACKUP THE APP MAIN DIR
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Backing up the main app directory..." --time --weight=1
|
||||||
|
|
||||||
ynh_backup "$final_path"
|
ynh_backup "$final_path"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# BACKUP THE NGINX CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Backing up nginx web server configuration..." --time --weight=1
|
||||||
|
|
||||||
|
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# SPECIFIC BACKUP
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP SYSTEMD
|
# BACKUP SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_backup "/etc/systemd/system/$app.service"
|
ynh_backup "/etc/systemd/system/$app.service"
|
||||||
|
ynh_backup "/etc/systemd/system/$app-web.service"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." --time --last
|
||||||
|
|
|
@ -24,11 +24,13 @@ ynh_abort_if_errors
|
||||||
|
|
||||||
# Retrieve arguments
|
# Retrieve arguments
|
||||||
domain=$YNH_APP_ARG_DOMAIN
|
domain=$YNH_APP_ARG_DOMAIN
|
||||||
|
path=$YNH_APP_ARG_PATH
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
welcometext=$YNH_APP_ARG_WELCOMETEXT
|
welcometext=$YNH_APP_ARG_WELCOMETEXT
|
||||||
registerName=$YNH_APP_ARG_REGISTERNAME
|
registerName=$YNH_APP_ARG_REGISTERNAME
|
||||||
instance_id=$YNH_APP_INSTANCE_NUMBER
|
instance_id=$YNH_APP_INSTANCE_NUMBER
|
||||||
mumbleweb=$YNH_APP_ARG_MUMBLEWEB
|
mumbleweb=$YNH_APP_ARG_MUMBLEWEB
|
||||||
|
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||||
|
|
||||||
server_password=$(ynh_string_random)
|
server_password=$(ynh_string_random)
|
||||||
su_passwd=$(ynh_string_random)
|
su_passwd=$(ynh_string_random)
|
||||||
|
@ -53,6 +55,7 @@ ynh_app_setting_set "$app" welcometext "$welcometext"
|
||||||
ynh_app_setting_set "$app" registerName "$registerName"
|
ynh_app_setting_set "$app" registerName "$registerName"
|
||||||
ynh_app_setting_set "$app" instance_id "$instance_id"
|
ynh_app_setting_set "$app" instance_id "$instance_id"
|
||||||
ynh_app_setting_set "$app" mumbleweb "$mumbleweb"
|
ynh_app_setting_set "$app" mumbleweb "$mumbleweb"
|
||||||
|
ynh_app_setting_set "$app" is_public "$is_public"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD MODIFICATIONS
|
# STANDARD MODIFICATIONS
|
||||||
|
@ -66,35 +69,61 @@ ynh_app_setting_set "$app" port "$port"
|
||||||
# Open port in firewall
|
# Open port in firewall
|
||||||
yunohost firewall allow Both "$port"
|
yunohost firewall allow Both "$port"
|
||||||
|
|
||||||
|
if [ "$mumbleweb" -eq 1 ] ; then
|
||||||
|
port_web=$(ynh_find_port 64738)
|
||||||
|
ynh_app_setting_set "$app" port_web "$port_web"
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INSTALL DEPENDENCIES
|
# INSTALL DEPENDENCIES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Install Mumble Debian package via apt
|
# Install Mumble Debian package via apt
|
||||||
ynh_install_app_dependencies mumble-server mailutils websockify
|
ynh_install_app_dependencies $pkg_dependencies
|
||||||
|
|
||||||
ynh_install_nodejs --nodejs_version="10"
|
if [ "$mumbleweb" -eq 1 ] ; then
|
||||||
|
ynh_install_nodejs --nodejs_version="10"
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INSTALL Mumble-web
|
# INSTALL Mumble-web
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
|
|
||||||
|
ynh_app_setting_set "$app" final_path "$final_path"
|
||||||
|
mkdir -p "$final_path"
|
||||||
|
|
||||||
|
|
||||||
if [ "$mumbleweb" -eq 1 ] ; then
|
if [ "$mumbleweb" -eq 1 ] ; then
|
||||||
ynh_use_nodejs
|
ynh_setup_source --dest_dir="$final_path"
|
||||||
(
|
|
||||||
npm install mumble-web@0.5.1
|
|
||||||
)
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# NGINX CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Configuring nginx web server..." --time --weight=1
|
||||||
|
|
||||||
|
### `ynh_add_nginx_config` will use the file conf/nginx.conf
|
||||||
|
|
||||||
|
# Create a dedicated nginx config
|
||||||
|
|
||||||
|
ynh_add_nginx_config "port_web"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# CREATE DEDICATED USER
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Configuring system user..." --weight=3
|
||||||
|
|
||||||
|
# Create a dedicated system user
|
||||||
|
ynh_system_user_create --username="$app" --home_dir="$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC SETUP
|
# SPECIFIC SETUP
|
||||||
#=================================================
|
#=================================================
|
||||||
# mumble server conf.ini
|
# mumble server conf.ini
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
mkdir -p "$final_path"
|
|
||||||
ynh_app_setting_set "$app" final_path "$final_path"
|
|
||||||
|
|
||||||
# Configuring with given settings
|
# Configuring with given settings
|
||||||
mumble_conf="$final_path/mumble-server.ini"
|
mumble_conf="$final_path/mumble-server.ini"
|
||||||
|
|
||||||
|
@ -110,13 +139,27 @@ ynh_replace_string "__DOMAIN__" "$domain" "$mumble_conf"
|
||||||
|
|
||||||
ynh_store_file_checksum "$mumble_conf"
|
ynh_store_file_checksum "$mumble_conf"
|
||||||
|
|
||||||
|
if [ "$mumbleweb" -eq 1 ] ; then
|
||||||
|
ynh_use_nodejs
|
||||||
|
(
|
||||||
|
cd "$final_path"
|
||||||
|
chown -R "$app": "$final_path"
|
||||||
|
ynh_exec_as "$app" PATH="$nodejs_path:$PATH" "$nodejs_path/npm" install --save --loglevel warn
|
||||||
|
ynh_exec_as "$app" PATH="$nodejs_path:$PATH" "$nodejs_path/npm" run build
|
||||||
|
ls -lah
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Create a dedicated systemd config
|
# Create a dedicated systemd config
|
||||||
ynh_add_systemd_config
|
ynh_add_systemd_config
|
||||||
ynh_add_systemd_config mumble-web
|
|
||||||
|
if [ "$mumbleweb" -eq 1 ] ; then
|
||||||
|
ynh_add_systemd_config "$app-web" mumble-web.service
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALIZATION
|
# GENERIC FINALIZATION
|
||||||
|
@ -155,6 +198,25 @@ yunohost service add "$app" -l "/var/log/mumble-server/$app.log"
|
||||||
|
|
||||||
systemctl restart "$app"
|
systemctl restart "$app"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# SETUP SSOWAT
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Configuring SSOwat..." --time --weight=1
|
||||||
|
|
||||||
|
# Make app public if necessary
|
||||||
|
if [ "$is_public" -eq 1 ]
|
||||||
|
then
|
||||||
|
# unprotected_uris allows SSO credentials to be passed anyway.
|
||||||
|
ynh_app_setting_set --app="$app" --key=unprotected_uris --value="/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# RELOAD NGINX
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reloading nginx web server..." --time --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SEND README TO ADMIN
|
# SEND README TO ADMIN
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -175,3 +237,10 @@ Are you facing an issue, want to improve this app or say thank you?
|
||||||
Please open a new issue in this project: https://github.com/YunoHost-Apps/mumbleserver_ynh
|
Please open a new issue in this project: https://github.com/YunoHost-Apps/mumbleserver_ynh
|
||||||
"
|
"
|
||||||
ynh_send_readme_to_admin "$message"
|
ynh_send_readme_to_admin "$message"
|
||||||
|
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Installation of $app completed" --time --last
|
||||||
|
|
|
@ -16,6 +16,7 @@ source /usr/share/yunohost/helpers
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
domain=$(ynh_app_setting_get "$app" domain)
|
domain=$(ynh_app_setting_get "$app" domain)
|
||||||
|
path=$(ynh_app_setting_get "$app" path)
|
||||||
port=$(ynh_app_setting_get "$app" port)
|
port=$(ynh_app_setting_get "$app" port)
|
||||||
final_path=$(ynh_app_setting_get "$app" final_path)
|
final_path=$(ynh_app_setting_get "$app" final_path)
|
||||||
|
|
||||||
|
@ -59,6 +60,14 @@ ynh_remove_nodejs
|
||||||
# Remove the app directory securely
|
# Remove the app directory securely
|
||||||
ynh_secure_remove "$final_path"
|
ynh_secure_remove "$final_path"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# REMOVE NGINX CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Removing nginx web server configuration..." --time --weight=1
|
||||||
|
|
||||||
|
# Remove the dedicated nginx config
|
||||||
|
ynh_remove_nginx_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CLOSE A PORT
|
# CLOSE A PORT
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -76,3 +85,13 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_secure_remove "/var/log/mumble-server/$app.log"
|
ynh_secure_remove "/var/log/mumble-server/$app.log"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC FINALIZATION
|
||||||
|
#=================================================
|
||||||
|
# REMOVE DEDICATED USER
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Removing the dedicated system user..." --time --weight=1
|
||||||
|
|
||||||
|
# Delete a system user
|
||||||
|
ynh_system_user_delete --username="$app"
|
||||||
|
|
|
@ -6,12 +6,7 @@
|
||||||
# IMPORT GENERIC HELPERS
|
# IMPORT GENERIC HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ ! -e _common.sh ]; then
|
source ../settings/scripts/_common.sh
|
||||||
# Get the _common.sh file if it's not in the current directory
|
|
||||||
cp ../settings/scripts/_common.sh ./_common.sh
|
|
||||||
chmod a+rx _common.sh
|
|
||||||
fi
|
|
||||||
source _common.sh
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -27,31 +22,43 @@ ynh_abort_if_errors
|
||||||
|
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
final_path=$(ynh_app_setting_get "$app" final_path)
|
domain=$(ynh_app_setting_get --app="$app" --key=domain)
|
||||||
|
path_url=$(ynh_app_setting_get --app="$app" --key=path)
|
||||||
|
final_path=$(ynh_app_setting_get --app"$app" --key=final_path)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CHECK IF THE APP CAN BE RESTORED
|
# CHECK IF THE APP CAN BE RESTORED
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
test ! -d "$final_path" \
|
ynh_script_progression --message="Validating restoration parameters..." --time --weight=1
|
||||||
|| ynh_die "There is already a directory: $final_path "
|
|
||||||
|
ynh_webpath_available --domain=$domain --path_url=$path_url \
|
||||||
|
|| ynh_die --message="Path not available: ${domain}${path_url}"
|
||||||
|
test ! -d $final_path \
|
||||||
|
|| ynh_die --message="There is already a directory: $final_path "
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD RESTORATION STEPS
|
# STANDARD RESTORATION STEPS
|
||||||
|
#=================================================
|
||||||
|
# RESTORE THE NGINX CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE THE APP MAIN DIR
|
# RESTORE THE APP MAIN DIR
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Restoring the app main directory..." --time --weight=1
|
||||||
|
|
||||||
ynh_restore_file "$final_path"
|
ynh_restore_file "$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC RESTORATION
|
# RECREATE THE DEDICATED USER
|
||||||
#=================================================
|
|
||||||
# REINSTALL DEPENDENCIES
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Recreating the dedicated system user..." --time --weight=1
|
||||||
|
|
||||||
# Define and install dependencies
|
# Create the dedicated user (if not existing)
|
||||||
ynh_install_app_dependencies mumble-server mailutils
|
ynh_system_user_create --username="$app"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE USER RIGHTS
|
# RESTORE USER RIGHTS
|
||||||
|
@ -61,6 +68,16 @@ ynh_install_app_dependencies mumble-server mailutils
|
||||||
chmod -R 770 "$final_path"
|
chmod -R 770 "$final_path"
|
||||||
chown -R :mumble-server "$final_path"
|
chown -R :mumble-server "$final_path"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# SPECIFIC RESTORATION
|
||||||
|
#=================================================
|
||||||
|
# REINSTALL DEPENDENCIES
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reinstalling dependencies..." --time --weight=1
|
||||||
|
|
||||||
|
# Define and install dependencies
|
||||||
|
ynh_install_app_dependencies $pkg_dependencies
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# Add user to ssl-cert so it can read certificates
|
# Add user to ssl-cert so it can read certificates
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -84,8 +101,33 @@ yunohost service add "$app" -l "/var/log/mumble-server/$app.log"
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE SYSTEMD
|
# RESTORE SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Restoring the systemd configuration..." --time --weight=1
|
||||||
|
|
||||||
ynh_restore_file "/etc/systemd/system/$app.service"
|
ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
|
||||||
systemctl enable "$app.service"
|
systemctl enable "$app.service"
|
||||||
|
|
||||||
systemctl restart "$app"
|
ynh_restore_file --origin_path="/etc/systemd/system/$app-web.service"
|
||||||
|
systemctl enable "$app-web.service"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# START SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Starting a systemd service..." --time --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name="$app" --action="start"
|
||||||
|
ynh_systemd_action --service_name="$app-web" --action="start"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC FINALIZATION
|
||||||
|
#=================================================
|
||||||
|
# RELOAD NGINX AND PHP-FPM
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reloading nginx web server..." --time --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Restoration completed for $app" --time --last
|
||||||
|
|
|
@ -15,12 +15,15 @@ source /usr/share/yunohost/helpers
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
domain=$(ynh_app_setting_get "$app" domain)
|
domain=$(ynh_app_setting_get "$app" domain)
|
||||||
|
path_url=$(ynh_app_setting_get --app="$app" --key=path)
|
||||||
|
is_public=$(ynh_app_setting_get --app="$app" --key=is_public)
|
||||||
no_sso=$(ynh_app_setting_get "$app" no_sso)
|
no_sso=$(ynh_app_setting_get "$app" no_sso)
|
||||||
server_password=$(ynh_app_setting_get "$app" server_password)
|
server_password=$(ynh_app_setting_get "$app" server_password)
|
||||||
su_passwd=$(ynh_app_setting_get "$app" su_passwd)
|
su_passwd=$(ynh_app_setting_get "$app" su_passwd)
|
||||||
welcometext=$(ynh_app_setting_get "$app" welcometext)
|
welcometext=$(ynh_app_setting_get "$app" welcometext)
|
||||||
registerName=$(ynh_app_setting_get "$app" registerName)
|
registerName=$(ynh_app_setting_get "$app" registerName)
|
||||||
port=$(ynh_app_setting_get "$app" port)
|
port=$(ynh_app_setting_get "$app" port)
|
||||||
|
port_web=$(ynh_app_setting_get "$app" port_web)
|
||||||
final_path=$(ynh_app_setting_get "$app" final_path)
|
final_path=$(ynh_app_setting_get "$app" final_path)
|
||||||
instance_id=$(ynh_app_setting_get "$app" instance_id)
|
instance_id=$(ynh_app_setting_get "$app" instance_id)
|
||||||
mumbleweb=$(ynh_app_setting_get "$app" mumbleweb)
|
mumbleweb=$(ynh_app_setting_get "$app" mumbleweb)
|
||||||
|
@ -109,15 +112,49 @@ ynh_abort_if_errors
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD UPGRADE STEPS
|
# STANDARD UPGRADE STEPS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
# STOP SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Stopping a systemd service..." --time --weight=1
|
||||||
|
|
||||||
# source and user are provided by debian's package, no web interface
|
ynh_systemd_action --service_name="$app" --action="stop"
|
||||||
|
ynh_systemd_action --service_name="$app-web" --action="stop"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
if [ "$mumbleweb" -eq 1 ] ; then
|
||||||
|
then
|
||||||
|
ynh_script_progression --message="Upgrading source files..." --time --weight=1
|
||||||
|
|
||||||
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
|
ynh_setup_source --dest_dir="$final_path"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# NGINX CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Upgrading nginx web server configuration..." --time --weight=1
|
||||||
|
|
||||||
|
# Create a dedicated nginx config
|
||||||
|
ynh_add_nginx_config "port_web"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INSTALL DEPENDENCIES
|
# INSTALL DEPENDENCIES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Upgrading dependencies..." --time --weight=1
|
||||||
|
|
||||||
# Install Mumble Debian package via apt
|
# Install Mumble Debian package via apt
|
||||||
ynh_install_app_dependencies mumble-server mailutils websockify
|
ynh_install_app_dependencies $pkg_dependencies
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# CREATE DEDICATED USER
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Making sure dedicated system user exists..." --time --weight=1
|
||||||
|
|
||||||
|
# Create a dedicated user (if not existing)
|
||||||
|
ynh_system_user_create --username="$app"
|
||||||
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC UPGRADE
|
# SPECIFIC UPGRADE
|
||||||
|
@ -144,13 +181,30 @@ ynh_replace_string "__DOMAIN__" "$domain" "$mumble_conf"
|
||||||
|
|
||||||
ynh_store_file_checksum "$mumble_conf"
|
ynh_store_file_checksum "$mumble_conf"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# SETUP SSOWAT
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Upgrading SSOwat configuration..." --time --weight=1
|
||||||
|
|
||||||
|
# Make app public if necessary
|
||||||
|
if [ "$is_public" -eq 1 ]
|
||||||
|
then
|
||||||
|
# unprotected_uris allows SSO credentials to be passed anyway
|
||||||
|
ynh_app_setting_set --app="$app" --key=unprotected_uris --value="/"
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Upgrading systemd configuration..." --time --weight=1
|
||||||
|
|
||||||
# Create a dedicated systemd config
|
# Create a dedicated systemd config
|
||||||
ynh_add_systemd_config
|
ynh_add_systemd_config
|
||||||
|
|
||||||
|
if [ "$mumbleweb" -eq 1 ] ; then
|
||||||
|
ynh_add_systemd_config "$app-web" mumble-web.service
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALIZATION
|
# GENERIC FINALIZATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -186,7 +240,20 @@ systemctl disable mumble-server
|
||||||
# Add Mumble as a YunoHost service
|
# Add Mumble as a YunoHost service
|
||||||
yunohost service add "$app" -l "/var/log/mumble-server/$app.log"
|
yunohost service add "$app" -l "/var/log/mumble-server/$app.log"
|
||||||
|
|
||||||
systemctl restart "$app"
|
#=================================================
|
||||||
|
# START SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Starting a systemd service..." --time --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name="$app" --action="start"
|
||||||
|
ynh_systemd_action --service_name="$app-web" --action="start"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# RELOAD NGINX
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reloading nginx web server..." --time --weight=1
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SEND README TO ADMIN
|
# SEND README TO ADMIN
|
||||||
|
@ -210,3 +277,9 @@ Are you facing an issue, want to improve this app or say thank you?
|
||||||
Please open a new issue in this project: https://github.com/YunoHost-Apps/mumbleserver_ynh
|
Please open a new issue in this project: https://github.com/YunoHost-Apps/mumbleserver_ynh
|
||||||
"
|
"
|
||||||
ynh_send_readme_to_admin "$message"
|
ynh_send_readme_to_admin "$message"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# END OF SCRIPT
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_script_progression --message="Upgrade of $app completed" --time --last
|
||||||
|
|
Loading…
Add table
Reference in a new issue