diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..c30ccee --- /dev/null +++ b/manifest.json @@ -0,0 +1,71 @@ +{ + "name": "Mumble Server", + "id": "mumbleserver", + "description": { + "en": "Mumble is an open source, low-latency, high quality voice chat software primarily intended for use while gaming.", + "fr": "Mumbleest un logiciel libre de voix sur IP (VoIP), son principal usage étant la communication pendant les parties de jeux en réseau." + }, + "developer": { + "name": "Thorvald Natvig", + "email": "BSD", + "url": "http://www.mumble.info" + }, + "multi_instance": "false", + "license": "Beerware", + "arguments": { + "install" : [ + { + "name": "domain", + "ask": { + "en": "Choose a domain for your Mumble Server", + "fr": "Choisissez un domaine pour votre serveur Mumble" + }, + "example": "domain.org" + }, + { + "name": "admin", + "ask": { + "en": "Choose an admin user for Mumble Server", + "fr": "Choisissez un administrateur pour le serveur Mumble" + }, + "example": "homer" + }, + { + "name": "password", + "ask": { + "en": "Choose a password for your mumble server. Type nothing if you don't want to set a password", + "fr": "Choisissez un mot de passe pour votre serveur Mumble. Ne rien rentrer si vous ne souhaitez pas mettre de mot de passe" + }, + "example": "super_secret_password" + }, + { + "name": "welcometext", + "ask": { + "en": "Choose a welcome text for your server", + "fr": "Choisissez un message de bienvenue pour le serveur" + }, + "example": "Welcome to my mumble server" + }, + { + "name": "port", + "ask": { + "en": "Choose a port for your server. Let as default if you don't want to change it", + "fr": "Entrez un port pour votre serveur. Laissez par défaut si vous ne voulez pas en changer" + }, + "example": "64738", + "default": "64738'" + }, + { + "name": "registername", + "ask": { + "en": "Choose a name for the root channel", + "fr": "Entrez un nom pour le channel racines" + }, + "example": "Root", + "default": "Root'" + }, + + + ] + } +} diff --git a/scripts/install b/scripts/install new file mode 100644 index 0000000..1c31cf3 --- /dev/null +++ b/scripts/install @@ -0,0 +1,39 @@ +#!/bin/bash +exec > >(tee /tmp/mumble-install.log) +exec 2>&1 +app=mumbleserver + +# Retrieve arguments +domain=$1 +admin=$2 +server_password=$3 +welcometext=$4 +port=$5 +registerName=$6 + +mumble_conf=/etc/mumble-server.ini + +# Save app settings +sudo yunohost app setting $app admin -v "$admin" + +# install via apt-get +sudo apt-get update +sudo apt-get install -y mumble-server + +#configuring with given settings +sudo sed -i "s/welcometext=.*/welcometext=$welcometext/g" $mumble_conf +sudo sed -i "s/port=.*/port=$port/g" $mumble_conf +sudo sed -i "s/serverpassword=.*/serverpassword=$server_password/g" $mumble_conf +sudo sed -i "s/registerName=.*/registerName=$registerName/g" $mumble_conf + +#generating random password for super-user +su_passwd=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p') + +#starting mumble server +sudo dpkg-reconfigure mumble-server + +#setting super-user password +sudo murmurd -supw $su_passwd +#restart mumble server +sudo /etc/init.d/mumble-server restart + diff --git a/scripts/remove b/scripts/remove new file mode 100644 index 0000000..ea74462 --- /dev/null +++ b/scripts/remove @@ -0,0 +1,20 @@ +#!/bin/bash + +db_user=emailPoubelle +db_name=$db_user +root_pwd=$(sudo cat /etc/yunohost/mysql) +domain=$(sudo yunohost app setting emailpoubelle domain) + +#removing emailpoubelle database +sudo mysql -u root -p$root_pwd -e "DROP DATABASE $db_name ; DROP USER $db_user@localhost ;" +#removing emailpoubelle directory +sudo rm -rf /var/www/emailpoubelle +#removing nginx conf +sudo rm -f /etc/nginx/conf.d/$domain.d/emailpoubelle.conf +#removing aliases +sudo sed -i "s@devnull:/dev/null@@g" /etc/aliases +sudo newaliases +sudo sed -i "s@virtual_alias_maps = hash:/var/www/emailpoubelle/var/virtual@@g" /etc/postfix/main.cf +sudo service postfix reload +sudo nginx reload +sudo yunohost app ssowatconf \ No newline at end of file diff --git a/scripts/upgrade b/scripts/upgrade new file mode 100644 index 0000000..35d5cf0 --- /dev/null +++ b/scripts/upgrade @@ -0,0 +1,67 @@ +#!/bin/bash + +# Retrieve arguments +domain=$(sudo yunohost app setting wordpress domain) +path=$(sudo yunohost app setting wordpress path) +admin_wordpress=$(sudo yunohost app setting wordpress admin) +language=$(sudo yunohost app setting wordpress language) +is_public=$(sudo yunohost app setting wordpress is_public) + +root_pwd=$(sudo cat /etc/yunohost/mysql) + +final_path=/var/www/wordpress + +db_name=wordpress + +if [[ "$admin_wordpress" = "" ]]; +then + mysql -u root -p$root_pwd $db_name -e "select MAX(user_login) from wp_users where user_status=0 INTO OUTFILE '/tmp/wordpressuser';" + admin_wordpress=$(cat /tmp/wordpressuser) + sudo rm -f /tmp/wordpressuser +fi + +if [[ "$language" = "" ]]; +then + language=$(sudo grep WPLANG $final_path/wp-config.php | cut -d"'" -f4) +fi + +if [[ "$is_public" = "" ]]; +then + mysql -u root -p$root_pwd $db_name -e "select option_value from wp_options WHERE option_name='active_plugins' INTO OUTFILE '/tmp/wordpressispublic';" + grep -q http-authentication /tmp/wordpressispublic + if [[ $? -eq 0 ]]; + then + is_public=Yes + else + is_public=No + fi + sudo rm -f /tmp/wordpressispublic +fi + +# Check if admin is not null +if [[ "$admin_wordpress" = "" || "$is_public" = "" || "$language" = "" ]]; then + echo "Unable to upgrade, please contact support" + exit 1 +fi + + +# Modify Nginx configuration file and copy it to Nginx conf directory +sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf* +sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf* + +if [ $is_public = "Yes" ]; +then + sudo cp ../conf/nginx.conf-public /etc/nginx/conf.d/$domain.d/wordpress.conf + grep -q "define('FORCE_SSL_ADMIN', true);" $final_path/wp-config.php + if [[ ! $? -eq 0 ]]; + then + echo "define('FORCE_SSL_ADMIN', true);" | sudo tee -a $final_path/wp-config.php + else + sudo sed -i "s@//define('FORCE_SSL_ADMIN@define('FORCE_SSL_ADMIN@g" $final_path/wp-config.php + fi +else + sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/wordpress.conf +fi + +# Reload Nginx +sudo service nginx reload