1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/mobilizon_ynh.git synced 2024-09-03 19:46:19 +02:00

Merge pull request #95 from YunoHost-Apps/uploads

Fix upload
This commit is contained in:
yalh76 2021-04-28 19:35:44 +02:00 committed by GitHub
commit 42aede06da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 97 additions and 13 deletions

View file

@ -28,8 +28,6 @@
upgrade=1 from_commit=cba843be0d7e00d7d7290f0d0da95807711a96d4
# 1.1.0~ynh1
upgrade=1 from_commit=5780e424cf3217bf9d25e5b24beb51f52b6b777e
# 1.1.0~ynh1
upgrade=1 from_commit=5780e424cf3217bf9d25e5b24beb51f52b6b777e
backup_restore=1
multi_instance=1
port_already_use=0
@ -52,5 +50,3 @@ Notification=all
name=1.0.7~ynh1
; commit=5780e424cf3217bf9d25e5b24beb51f52b6b777e
name=1.1.0~ynh1
; commit=5780e424cf3217bf9d25e5b24beb51f52b6b777e
name=1.1.0~ynh1

2
conf/uploads.exs Normal file
View file

@ -0,0 +1,2 @@
config :mobilizon, Mobilizon.Web.Upload.Uploader.Local, uploads: "__DATADIR__/uploads"

View file

@ -30,6 +30,7 @@ app=$YNH_APP_INSTANCE_NAME
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
domain=$(ynh_app_setting_get --app=$app --key=domain)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
#=================================================
# DECLARE DATA AND CONF FILES TO BACKUP
@ -56,6 +57,12 @@ ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_backup --src_path="/etc/systemd/system/$app.service"
#=================================================
# BACKUP VARIOUS FILES
#=================================================
ynh_backup --src_path="$datadir" --is_big
#=================================================
# BACKUP THE POSTGRESQL DATABASE
#=================================================

View file

@ -122,7 +122,7 @@ ynh_replace_string --match_string="$old_domain" --replace_string="$new_domain" -
ynh_store_file_checksum --file="$config"
chmod 400 "$config"
chown $app:www-data "$config"
chown $app:$app "$config"
#=================================================
# GENERIC FINALISATION

View file

@ -133,6 +133,24 @@ ynh_add_nginx_config
#=================================================
# SPECIFIC SETUP
#=================================================
# CREATE THE DATA DIRECTORY
#=================================================
ynh_script_progression --message="Creating the data directory..."
# Define app's data directory
datadir="/home/yunohost.app/${app}"
ynh_app_setting_set --app=$app --key=datadir --value="$datadir"
# Create app folders
mkdir -p "$datadir/"
mkdir -p "$datadir/uploads/"
chmod 750 "$datadir"
chmod -R o-rwx "$datadir"
chown -R $app:$app "$datadir"
#=================================================
# MAKE SETUP
#=================================================
@ -148,6 +166,8 @@ pushd $final_path/$app/js
sudo -u $app env PATH=$PATH NODE_BUILD_MEMORY=1024 yarn run build
popd
ynh_secure_remove --file="$final_path/$app/js"
ynh_script_progression --message="Building Elixir application (this is going to take a while...)"
pushd $final_path/$app
sudo -u "$app" MIX_ENV=prod mix local.hex --force
@ -159,6 +179,8 @@ popd
cat "../conf/ldap.exs" >> "$config"
cat "../conf/mail.exs" >> "$config"
ynh_replace_string --match_string="__DATADIR__" --replace_string="$datadir" --target_file="../conf/uploads.exs"
cat "../conf/uploads.exs" >> "$config"
pushd $final_path/$app
chmod o-rwx $config
@ -174,10 +196,12 @@ pushd $final_path/$app
sudo -u "$app" MIX_ENV=prod mix mobilizon.users.new "$admin_email" --admin --password "$password"
popd
ynh_secure_remove --file="$final_path/.cache"
ynh_store_file_checksum --file="$config"
chmod 400 "$config"
chown $app:www-data "$config"
chown $app:$app "$config"
#=================================================
# SETUP SYSTEMD

View file

@ -36,6 +36,7 @@ db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd)
port=$(ynh_app_setting_get --app=$app --key=port)
ynh_user_password=$(ynh_app_setting_get --app=$app --key=ynh_user_password)
admin_email=$(ynh_app_setting_get --app=$app --key=admin_email)
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
#=================================================
# CHECK IF THE APP CAN BE RESTORED
@ -80,6 +81,22 @@ chown -R $app:www-data "$final_path"
#=================================================
# SPECIFIC RESTORATION
#=================================================
# RECREATE THE DATA DIRECTORY
#=================================================
ynh_script_progression --message="Recreating the data directory..."
# Use --not_mandatory for the data directory, because if the backup has been made with BACKUP_CORE_ONLY, there's no data into the backup.
ynh_restore_file --origin_path="$datadir" --not_mandatory
# Create app folders
mkdir -p "$datadir/"
mkdir -p "$datadir/uploads/"
chmod 750 "$datadir"
chmod -R o-rwx "$datadir"
chown -R $app:$app "$datadir"
#=================================================
# REINSTALL DEPENDENCIES
#=================================================

View file

@ -28,6 +28,7 @@ db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd)
port=$(ynh_app_setting_get --app=$app --key=port)
secret=$(ynh_app_setting_get --app=$app --key=secret)
admin_email=$(ynh_app_setting_get --app=$app --key=admin_email)
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
#=================================================
# CHECK VERSION
@ -126,6 +127,44 @@ ynh_script_progression --message="Making sure dedicated system user exists..."
# Create a dedicated user (if not existing)
ynh_system_user_create --username=$app --home_dir="$final_path"
#=================================================
# CREATE DATADIR FOLDER
#=================================================
# If datadir doesn't exist, create it
if [ -z "$datadir" ]; then
ynh_script_progression --message="Create datadir folder..."
# Define app's data directory
datadir="/home/yunohost.app/${app}"
ynh_app_setting_set --app=$app --key=datadir --value="$datadir"
# Create app folders
mkdir -p "$datadir/"
mkdir -p "$datadir/uploads/"
chmod 750 "$datadir"
chmod -R o-rwx "$datadir"
chown -R $app:$app "$datadir"
rsync -a $final_path/$app/uploads/ $datadir/uploads/
config="$final_path/$app/config/prod.secret.exs"
ynh_backup_if_checksum_is_different --file="$config"
ynh_replace_string --match_string="__DATADIR__" --replace_string="$datadir" --target_file="../conf/uploads.exs"
cat "../conf/uploads.exs" >> "$config"
ynh_store_file_checksum --file="$config"
chmod 400 "$config"
chown $app:$app "$config"
ynh_secure_remove --file="$final_path/$app/uploads"
fi
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
@ -140,9 +179,6 @@ then
# Backup the config file in the temp dir
cp -af "$final_path/$app/config/prod.secret.exs" "$tmpdir/prod.secret.exs"
# Backup upload dir
rsync -a "$final_path/$app/uploads" "$tmpdir/."
# Remove the app directory securely
ynh_secure_remove --file="$final_path/$app"
@ -152,9 +188,6 @@ then
# Restore the config file
cp -af "$tmpdir/prod.secret.exs" "$final_path/$app/config/prod.secret.exs"
# Restore upload dir
rsync -a "$tmpdir/uploads" "$final_path/$app/."
# Remove the tmp directory securely
ynh_secure_remove --file="$tmpdir"
fi
@ -196,8 +229,11 @@ pushd $final_path/$app/js
sudo -u $app env PATH=$PATH yarn install
ynh_script_progression --message="Building NodeJS application (this is going to take a while...)"
sudo -u $app env PATH=$PATH NODE_BUILD_MEMORY=1024 yarn run build
sudo -u $app env PATH=$PATH yarn cache clean --all
popd
ynh_secure_remove --file="$final_path/$app/js"
ynh_script_progression --message="Building Elixir application (this is going to take a while...)"
pushd $final_path/$app
sudo -u "$app" MIX_ENV=prod mix local.hex --force
@ -207,6 +243,8 @@ pushd $final_path/$app
sudo -u "$app" MIX_ENV=prod mix ecto.migrate
popd
ynh_secure_remove --file="$final_path/.cache"
#=================================================
# RUN APP MIGRATIONS
#=================================================
@ -229,7 +267,7 @@ ynh_backup_if_checksum_is_different --file="$config"
ynh_store_file_checksum --file="$config"
chmod 400 "$config"
chown $app:www-data "$config"
chown $app:$app "$config"
#=================================================
# SETUP SYSTEMD