From c87adbf2148d043383807d39447e1fe468d6d53c Mon Sep 17 00:00:00 2001 From: Jimmy Monin Date: Sun, 11 Sep 2016 10:16:37 +0200 Subject: [PATCH] Add backup/restore functionality and a nicer README.md --- README.md | 36 ++++++++++++++++++++++++++++++--- manifest.json | 4 ++-- scripts/backup | 27 +++++++++++++++++++++++++ scripts/restore | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 scripts/backup create mode 100644 scripts/restore diff --git a/README.md b/README.md index 6c4ec90..35c0ae0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,34 @@ -ynh_piwigo -========== +Piwigo for YunoHost +--------------------- -L'upload des fichiers via le formulaire flash ne fonctionne pas en https, celui ci est remplacé dans la prochaine version de piwigo par un formulaire en html5. +[Piwigo](http://piwigo.org) is a photo gallery software for the web, built by an active community of users and developers. + +Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and opensource. + +**Shipped version:** 2.8.2 + +![](http://piwigo.org/screenshots/homepage/piwigo-batch-manager.png) + +## Features + +In addition to Piwigo core features, the following are made available with +this package: + + * Integrate with YunoHost users and SSO: + * private mode: limit access to Yunohost users + * public mode: + * SSO for YunoHost users + * allow other users management, and guest mode + * Allow one YunoHost user to be the administrator (set at the installation) + +## Limitations + +No limitation known. +Upgrade scripts to be designed/updated when a new Piwigo release comes up. + + +## Links + + * Report a bug: https://github.com/JimboJoe/piwigo_ynh/issues + * Piwigo website: http://piwigo.org/ + * YunoHost website: https://yunohost.org/ diff --git a/manifest.json b/manifest.json index 0c1d4be..5906d62 100644 --- a/manifest.json +++ b/manifest.json @@ -9,8 +9,8 @@ "url": "http://piwigo.org", "license": "free", "maintainer": { - "name": "monsieur-a", - "email": "simon@monsieur-a.fr", + "name": "JimboJoe", + "email": "jimmy@monin.net", "url": "http://piwigo.org" }, "requirements": { diff --git a/scripts/backup b/scripts/backup new file mode 100644 index 0000000..5a883a2 --- /dev/null +++ b/scripts/backup @@ -0,0 +1,27 @@ +#!/bin/bash + +# Exit on command errors and treat unset variables as an error +set -eu + +app=$YNH_APP_INSTANCE_NAME + +# Source YunoHost helpers +source /usr/share/yunohost/helpers + +# Backup sources & data +# Note: the last argument is where to save this path, see the restore script. +ynh_backup "/var/www/${app}" "sources" + +# Copy the data directory +DATADIR="/home/yunohost.app/${app}" +ynh_backup "$DATADIR" "data" + +# Dump the database +dbname=$app +dbuser=$app +dbpass=$(ynh_app_setting_get "$app" mysqlpwd) +mysqldump -u "$dbuser" -p"$dbpass" --no-create-db "$dbname" > ./dump.sql + +# Copy NGINX configuration +domain=$(ynh_app_setting_get "$app" domain) +ynh_backup "/etc/nginx/conf.d/${domain}.d/${app}.conf" "nginx.conf" diff --git a/scripts/restore b/scripts/restore new file mode 100644 index 0000000..6e67c94 --- /dev/null +++ b/scripts/restore @@ -0,0 +1,54 @@ +#!/bin/bash + +# Note: each files and directories you've saved using the ynh_backup helper +# will be located in the current directory, regarding the last argument. + +# Exit on command errors and treat unset variables as an error +set -eu + +app=$YNH_APP_INSTANCE_NAME + +# Source YunoHost helpers +source /usr/share/yunohost/helpers + +# Retrieve old app settings +domain=$(ynh_app_setting_get "$app" domain) +path=$(ynh_app_setting_get "$app" path) + +# Check domain/path availability +sudo yunohost app checkurl "${domain}${path}" -a "$app" \ + || ynh_die "Path not available: ${domain}${path}" + +# Restore sources & data +src_path="/var/www/${app}" +sudo cp -a ./sources "$src_path" + +# Restore permissions to app files +# you may need to make some file and/or directory writeable by www-data (nginx user) +sudo chown -R root: "$src_path" + +# Copy the data directory +DATADIR="/home/yunohost.app/${app}" +sudo mkdir -p "$DATADIR" +sudo cp -a ./data/. "$DATADIR" + +# Fix permissions +sudo chown -R www-data:www-data $src_path +sudo chown -R www-data:www-data $DATADIR +sudo chmod 777 $src_path/_data +sudo chmod 777 $src_path/upload +sudo chmod 755 -R $src_path/galleries + +# Create and restore the database +dbname=$app +dbuser=$app +dbpass=$(ynh_app_setting_get "$app" mysqlpwd) +ynh_mysql_create_db "$dbname" "$dbuser" "$dbpass" +ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" < ./dump.sql + + +# Restore NGINX configuration +sudo cp -a ./nginx.conf "/etc/nginx/conf.d/${domain}.d/${app}.conf" + +# Restart webserver +sudo service nginx reload