1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/mumbleserver_ynh.git synced 2024-09-03 19:46:03 +02:00
This commit is contained in:
Éric Gaspar 2023-04-07 19:09:18 +02:00
parent d6ae6356b7
commit c3ad79d402
9 changed files with 143 additions and 88 deletions

View file

@ -13,7 +13,7 @@
; Path to database. If blank, will search for
; murmur.sqlite in default locations or create it if not found.
database=__FINALPATH__/mumble-server.sqlite
database=__INSTALL_DIR__/mumble-server.sqlite
; Murmur defaults to using SQLite with its default rollback journal.
; In some situations, using SQLite's write-ahead log (WAL) can be

View file

@ -8,7 +8,7 @@ User=mumble-server
Group=mumble-server
Type=forking
RuntimeDirectory=mumble-server
ExecStart=/usr/sbin/murmurd -ini __FINALPATH__/mumble-server.ini
ExecStart=/usr/sbin/murmurd -ini __INSTALL_DIR__/mumble-server.ini
PIDFile=/var/run/mumble-server/__APP__.pid
ExecReload=/bin/kill -s HUP $MAINPID
PrivateDevices=true
@ -17,7 +17,7 @@ ProtectHome=true
ProtectSystem=strict
ProtectControlGroups=yes
ProtectKernelModules=yes
ReadWritePaths=__FINALPATH__ /var/log/mumble-server /var/run/mumble-server
ReadWritePaths=__INSTALL_DIR__ /var/log/mumble-server /var/run/mumble-server
[Install]
WantedBy=multi-user.target

55
manifest.toml Normal file
View file

@ -0,0 +1,55 @@
packaging_format = 2
id = "mumbleserver"
name = "Mumble Server"
description.en = "Low-latency, high quality voice chat software (VoIP)"
description.fr = "Logiciel libre de voix sur IP (VoIP)"
version = "1.3.4~ynh1"
maintainers = []
[upstream]
license = "BSD-3-Clause"
website = "https://mumble.info"
admindoc = "https://wiki.mumble.info/wiki/Main_Page"
code = "https://github.com/mumble-voip/mumble"
cpe = "???" # FIXME: optional but recommended if relevant, this is meant to contain the Common Platform Enumeration, which is sort of a standard id for applications defined by the NIST. In particular, Yunohost may use this is in the future to easily track CVE (=security reports) related to apps. The CPE may be obtained by searching here: https://nvd.nist.gov/products/cpe/search. For example, for Nextcloud, the CPE is 'cpe:2.3:a:nextcloud:nextcloud' (no need to include the version number)
fund = "???" # FIXME: optional but recommended (or remove if irrelevant / not applicable). This is meant to be an URL where people can financially support this app, especially when its development is based on volunteers and/or financed by its community. YunoHost may later advertise it in the webadmin.
[integration]
yunohost = ">= 11.0.9"
architectures = "all" # FIXME: can be replaced by a list of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386"]
multi_instance = true
ldap = "?" # FIXME: replace with true, false, or "not_relevant". Not to confuse with the "sso" key : the "ldap" key corresponds to wether or not a user *can* login on the app using its YunoHost credentials.
sso = "?" # FIXME: replace with true, false, or "not_relevant". Not to confuse with the "ldap" key : the "sso" key corresponds to wether or not a user is *automatically logged-in* on the app when logged-in on the YunoHost portal.
disk = "50M" # FIXME: replace with an **estimate** minimum disk requirement. e.g. 20M, 400M, 1G, ...
ram.build = "50M" # FIXME: replace with an **estimate** minimum ram requirement. e.g. 50M, 400M, 1G, ...
ram.runtime = "50M" # FIXME: replace with an **estimate** minimum ram requirement. e.g. 50M, 400M, 1G, ...
[install]
[install.domain]
# this is a generic question - ask strings are automatically handled by Yunohost's core
type = "domain"
full_domain = true
[install.welcometext]
ask.en = "Choose a welcome text for your server"
ask.fr = "Choisissez un message de bienvenue pour le serveur"
type = "string"
example = "Welcome to my Mumble server"
default = "Welcome"
[install.registername]
ask.en = "Choose a name for the root channel (your Mumble server name)"
ask.fr = "Entrez un nom pour le channel racine (le nom de votre serveur Mumble)"
type = "string"
example = "Root"
default = "Root"
[resources]
[resources.system_user]
[resources.install_dir]
[resources.permissions]

View file

@ -5,7 +5,7 @@
#=================================================
# dependencies used by the app
pkg_dependencies="mumble-server mailutils"
#REMOVEME? pkg_dependencies="mumble-server mailutils"
#=================================================
# PERSONAL HELPERS

View file

@ -15,16 +15,16 @@ source /usr/share/yunohost/helpers
#=================================================
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
#REMOVEME? ynh_abort_if_errors
#=================================================
# LOAD SETTINGS
#=================================================
ynh_print_info --message="Loading installation settings..."
#REMOVEME? ynh_print_info --message="Loading installation settings..."
app=$YNH_APP_INSTANCE_NAME
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#=================================================
# DECLARE DATA AND CONF FILES TO BACKUP
@ -35,7 +35,7 @@ ynh_print_info --message="Declaring files to be backed up..."
# BACKUP THE APP MAIN DIR
#=================================================
ynh_backup --src_path="$final_path"
ynh_backup --src_path="$install_dir"
#=================================================
# BACKUP SYSTEMD

View file

@ -15,22 +15,22 @@ source /usr/share/yunohost/helpers
# MANAGE SCRIPT FAILURE
#=================================================
ynh_clean_setup () {
#REMOVEME? ynh_clean_setup () {
ynh_clean_check_starting
}
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
#REMOVEME? ynh_abort_if_errors
#=================================================
# RETRIEVE ARGUMENTS FROM THE MANIFEST
#=================================================
domain=$YNH_APP_ARG_DOMAIN
welcometext=$YNH_APP_ARG_WELCOMETEXT
registername=$YNH_APP_ARG_REGISTERNAME
#REMOVEME? domain=$YNH_APP_ARG_DOMAIN
#REMOVEME? welcometext=$YNH_APP_ARG_WELCOMETEXT
#REMOVEME? registername=$YNH_APP_ARG_REGISTERNAME
instance_id=$YNH_APP_INSTANCE_NUMBER
app=$YNH_APP_INSTANCE_NAME
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
server_password=$(ynh_string_random)
su_passwd=$(ynh_string_random)
@ -38,20 +38,20 @@ su_passwd=$(ynh_string_random)
#=================================================
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
#=================================================
ynh_script_progression --message="Validating installation parameters..." --weight=1
#REMOVEME? ynh_script_progression --message="Validating installation parameters..." --weight=1
final_path=/var/www/$app
test ! -e "$final_path" || ynh_die --message="This path already contains a folder"
#REMOVEME? install_dir=/var/www/$app
#REMOVEME? test ! -e "$install_dir" || ynh_die --message="This path already contains a folder"
#=================================================
# STORE SETTINGS FROM MANIFEST
#=================================================
ynh_script_progression --message="Storing installation settings..." --weight=2
#REMOVEME? ynh_script_progression --message="Storing installation settings..." --weight=2
# Save app settings
ynh_app_setting_set --app=$app --key=domain --value="$domain"
#REMOVEME? ynh_app_setting_set --app=$app --key=domain --value="$domain"
ynh_app_setting_set --app=$app --key=no_sso --value="true"
ynh_app_setting_set --app=$app --key=server_password --value="$server_password"
#REMOVEME? ynh_app_setting_set --app=$app --key=server_password --value="$server_password"
ynh_app_setting_set --app=$app --key=su_passwd --value="$su_passwd"
ynh_app_setting_set --app=$app --key=welcometext --value="$welcometext"
ynh_app_setting_set --app=$app --key=registername --value="$registername"
@ -62,11 +62,11 @@ ynh_app_setting_set --app=$app --key=instance_id --value="$instance_id"
#=================================================
# FIND AND OPEN A PORT
#=================================================
ynh_script_progression --message="Finding an available port..." --weight=1
#REMOVEME? ynh_script_progression --message="Finding an available port..." --weight=1
# Find an available port
port=$(ynh_find_port --port=64738)
ynh_app_setting_set --app=$app --key=port --value=$port
#REMOVEME? port=$(ynh_find_port --port=64738)
#REMOVEME? ynh_app_setting_set --app=$app --key=port --value=$port
# Open the port
ynh_script_progression --message="Configuring firewall..." --weight=1
@ -75,9 +75,9 @@ ynh_exec_warn_less yunohost firewall allow Both $port
#=================================================
# INSTALL DEPENDENCIES
#=================================================
ynh_script_progression --message="Installing dependencies..." --weight=4
#REMOVEME? ynh_script_progression --message="Installing dependencies..." --weight=4
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
#REMOVEME? ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
#=================================================
# SPECIFIC SETUP
@ -86,16 +86,16 @@ ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
#=================================================
ynh_script_progression --message="Adding a configuration file..."
mkdir -p "$final_path"
ynh_app_setting_set --app=$app --key=final_path --value=$final_path
mkdir -p "$install_dir"
#REMOVEME? ynh_app_setting_set --app=$app --key=install_dir --value=$install_dir
# Configuring with given settings
mumble_conf="$final_path/mumble-server.ini"
mumble_conf="$install_dir/mumble-server.ini"
ynh_add_config --template="../conf/mumble-server.ini" --destination="$mumble_conf"
chmod -R 770 "$final_path"
chown -R :mumble-server "$final_path"
chmod -R 770 "$install_dir"
chown -R :mumble-server "$install_dir"
#=================================================
# ADD USER TO SSL-CERT
@ -153,11 +153,11 @@ Password to join server: $server_password
SuperUser Password : $su_passwd
Welcome text : $welcometext
Root channel (your Mumble server name): $registername
Final path (where to find your files) : $final_path
Final path (where to find your files) : $install_dir
Mumble configuration file : $mumble_conf
Note about config file: this package will regenerate the config file on upgrade.
If you changed it manually and upgrade mumble, you'll find a backup in $final_path.
If you changed it manually and upgrade mumble, you'll find a backup in $install_dir.
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

View file

@ -12,13 +12,13 @@ source /usr/share/yunohost/helpers
#=================================================
# LOAD SETTINGS
#=================================================
ynh_script_progression --message="Loading installation settings..." --weight=1
#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1
app=$YNH_APP_INSTANCE_NAME
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=domain)
port=$(ynh_app_setting_get --app=$app --key=port)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain)
#REMOVEME? port=$(ynh_app_setting_get --app=$app --key=port)
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#=================================================
# STANDARD REMOVE
@ -44,18 +44,18 @@ ynh_remove_systemd_config
#=================================================
# REMOVE APP MAIN DIR
#=================================================
ynh_script_progression --message="Removing app main directory..." --weight=2
#REMOVEME? ynh_script_progression --message="Removing app main directory..." --weight=2
# Remove the app directory securely
ynh_secure_remove --file="$final_path"
#REMOVEME? ynh_secure_remove --file="$install_dir"
#=================================================
# REMOVE DEPENDENCIES
#=================================================
ynh_script_progression --message="Removing dependencies..." --weight=1
#REMOVEME? ynh_script_progression --message="Removing dependencies..." --weight=1
# Remove metapackage and its dependencies
ynh_remove_app_dependencies
#REMOVEME? ynh_remove_app_dependencies
#=================================================
# CLOSE A PORT

View file

@ -14,29 +14,29 @@ source /usr/share/yunohost/helpers
# MANAGE SCRIPT FAILURE
#=================================================
ynh_clean_setup () {
#REMOVEME? ynh_clean_setup () {
ynh_clean_check_starting
}
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
#REMOVEME? ynh_abort_if_errors
#=================================================
# LOAD SETTINGS
#=================================================
ynh_script_progression --message="Loading installation settings..." --weight=1
#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1
app=$YNH_APP_INSTANCE_NAME
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
port=$(ynh_app_setting_get --app=$app --key=port)
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#REMOVEME? port=$(ynh_app_setting_get --app=$app --key=port)
#=================================================
# CHECK IF THE APP CAN BE RESTORED
#=================================================
ynh_script_progression --message="Validating restoration parameters..." --weight=1
#REMOVEME? ynh_script_progression --message="Validating restoration parameters..." --weight=1
test ! -d $final_path \
|| ynh_die --message="There is already a directory: $final_path "
#REMOVEME? test ! -d $install_dir \
|| ynh_die --message="There is already a directory: $install_dir "
#=================================================
# STANDARD RESTORATION STEPS
@ -45,25 +45,25 @@ test ! -d $final_path \
#=================================================
ynh_script_progression --message="Restoring the app main directory..." --weight=2
ynh_restore_file --origin_path="$final_path"
ynh_restore_file --origin_path="$install_dir"
#=================================================
# SPECIFIC RESTORATION
#=================================================
# REINSTALL DEPENDENCIES
#=================================================
ynh_script_progression --message="Reinstalling dependencies..." --weight=4
#REMOVEME? ynh_script_progression --message="Reinstalling dependencies..." --weight=4
# Define and install dependencies
ynh_install_app_dependencies $pkg_dependencies
#REMOVEME? ynh_install_app_dependencies $pkg_dependencies
#=================================================
# RESTORE USER RIGHTS
#=================================================
# Restore permissions on app files
chmod -R 770 "$final_path"
chown -R :mumble-server "$final_path"
chmod -R 770 "$install_dir"
chown -R :mumble-server "$install_dir"
#=================================================
# Add user to ssl-cert so it can read certificates

View file

@ -12,19 +12,19 @@ source /usr/share/yunohost/helpers
#=================================================
# LOAD SETTINGS
#=================================================
ynh_script_progression --message="Loading installation settings..." --weight=1
#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1
app=$YNH_APP_INSTANCE_NAME
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=domain)
no_sso=$(ynh_app_setting_get --app=$app --key=no_sso)
server_password=$(ynh_app_setting_get --app=$app --key=server_password)
su_passwd=$(ynh_app_setting_get --app=$app --key=su_passwd)
welcometext=$(ynh_app_setting_get --app=$app --key=welcometext)
registername=$(ynh_app_setting_get --app=$app --key=registername)
port=$(ynh_app_setting_get --app=$app --key=port)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
instance_id=$(ynh_app_setting_get --app=$app --key=instance_id)
#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain)
#REMOVEME? no_sso=$(ynh_app_setting_get --app=$app --key=no_sso)
#REMOVEME? server_password=$(ynh_app_setting_get --app=$app --key=server_password)
#REMOVEME? su_passwd=$(ynh_app_setting_get --app=$app --key=su_passwd)
#REMOVEME? welcometext=$(ynh_app_setting_get --app=$app --key=welcometext)
#REMOVEME? registername=$(ynh_app_setting_get --app=$app --key=registername)
#REMOVEME? port=$(ynh_app_setting_get --app=$app --key=port)
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#REMOVEME? instance_id=$(ynh_app_setting_get --app=$app --key=instance_id)
#=================================================
# CHECK VERSION
@ -36,17 +36,17 @@ upgrade_type=$(ynh_check_app_version_changed)
#=================================================
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
#=================================================
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=5
#REMOVEME? ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=5
# Backup the current version of the app
ynh_backup_before_upgrade
ynh_clean_setup () {
#REMOVEME? ynh_backup_before_upgrade
#REMOVEME? ynh_clean_setup () {
ynh_clean_check_starting
# Restore it if the upgrade fails
ynh_restore_upgradebackup
#REMOVEME? ynh_restore_upgradebackup
}
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
#REMOVEME? ynh_abort_if_errors
#=================================================
# STANDARD UPGRADE STEPS
@ -62,10 +62,10 @@ ynh_systemd_action --service_name=$app --action="stop"
#=================================================
ynh_script_progression --message="Ensuring downward compatibility..." --weight=1
# If final_path doesn't exist, create it
if [ -z "$final_path" ]; then
final_path=/var/www/$app
ynh_app_setting_set "$app" final_path "$final_path"
# If install_dir doesn't exist, create it
if [ -z "$install_dir" ]; then
#REMOVEME? install_dir=/var/www/$app
#REMOVEME? ynh_app_setting_set "$app" install_dir "$install_dir"
fi
# test old time
@ -92,11 +92,11 @@ if [ -z "$server_password" ]; then
| head -1 \
| sed -r "s/.* (([a-z])*\.([a-z])*).*/\1/g")
ynh_app_setting_set --app=$app --key=server_password --value=$server_password
#REMOVEME? ynh_app_setting_set --app=$app --key=server_password --value=$server_password
ynh_app_setting_set --app=$app --key=welcometext --value=$welcometext
ynh_app_setting_set --app=$app --key=registername --value=$registername
ynh_app_setting_set --app=$app --key=su_passwd --value=$su_passwd
ynh_app_setting_set --app=$app --key=domain --value=$domain
#REMOVEME? ynh_app_setting_set --app=$app --key=domain --value=$domain
systemctl stop mumble-server
dpkg-reconfigure mumble-server --frontend=Noninteractive
@ -107,8 +107,8 @@ fi
# Fix SSO issue
# https://github.com/YunoHost-Apps/mumbleserver_ynh/issues/19
if [ -z "$domain" ]; then
domain=$(ynh_app_setting_get "$app" domain_mumble)
ynh_app_setting_set "$app" domain "$domain"
#REMOVEME? domain=$(ynh_app_setting_get "$app" domain_mumble)
#REMOVEME? ynh_app_setting_set "$app" domain "$domain"
ynh_app_setting_delete "$app" domain_mumble
fi
@ -125,7 +125,7 @@ if [ -z "$instance_id" ]; then
fi
if [ -z "$registername" ]; then
registername=$(ynh_app_setting_get "$app" registerName)
#REMOVEME? registername=$(ynh_app_setting_get "$app" registerName)
ynh_app_setting_set "$app" registername "$registername"
ynh_app_setting_delete "$app" registerName
fi
@ -133,9 +133,9 @@ fi
#=================================================
# UPGRADE DEPENDENCIES
#=================================================
ynh_script_progression --message="Upgrading dependencies..." --weight=6
#REMOVEME? ynh_script_progression --message="Upgrading dependencies..." --weight=6
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
#REMOVEME? ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
#=================================================
# SPECIFIC UPGRADE
@ -144,15 +144,15 @@ ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
#=================================================
ynh_script_progression --message="Updating a configuration file..." --weight=1
mkdir -p $final_path
mkdir -p $install_dir
# Configuring with given settings
mumble_conf="$final_path/mumble-server.ini"
mumble_conf="$install_dir/mumble-server.ini"
ynh_add_config --template="../conf/mumble-server.ini" --destination="$mumble_conf"
chmod -R 770 "$final_path"
chown -R :mumble-server "$final_path"
chmod -R 770 "$install_dir"
chown -R :mumble-server "$install_dir"
#=================================================
# Add user to ssl-cert so it can read certificates
@ -212,7 +212,7 @@ Password to join server: $server_password
SuperUser Password : $su_passwd
Welcome text : $welcometext
Root channel (your Mumble server name): $registername
Final path (where to find your files) : $final_path
Final path (where to find your files) : $install_dir
Mumble configuration file : $mumble_conf
Note about config file: this package will regenerate the config file on upgrade.