aboutsummaryrefslogtreecommitdiff
path: root/scripts/upgrade
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/upgrade')
-rw-r--r--scripts/upgrade91
1 files changed, 67 insertions, 24 deletions
diff --git a/scripts/upgrade b/scripts/upgrade
index 85fb1f4..d9e4cac 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -12,6 +12,7 @@ source /usr/share/yunohost/helpers
#=================================================
# LOAD SETTINGS
#=================================================
+ynh_print_info "Loading installation settings..."
# See comments in install script
app=$YNH_APP_INSTANCE_NAME
@@ -31,6 +32,7 @@ port_stream=$(ynh_app_setting_get "$app" port_stream)
#=================================================
# ENSURE DOWNWARD COMPATIBILITY
#=================================================
+ynh_print_info "Ensuring downward compatibility..."
# If db_name doesn't exist, create it
if [ -z "$db_name" ]; then
@@ -62,6 +64,7 @@ fi
#=================================================
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
#=================================================
+ynh_print_info "Backing up the app before upgrading (may take a while)..."
# Backup the current version of the app
ynh_backup_before_upgrade
@@ -85,27 +88,6 @@ fi
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
#=================================================
-# INSTALL DEPENDENCIES
-#=================================================
-
-ynh_install_nodejs 8
-
-# TODO: use the same mecanism with other files
-ynh_install_app_dependencies \
- `# debian packages ` \
- imagemagick libpq-dev libxml2-dev libxslt1-dev file curl apt-transport-https pkg-config libprotobuf-dev protobuf-compiler libicu-dev libidn11-dev \
- `# redis ` \
- redis-server redis-tools \
- `# postgresql ` \
- postgresql postgresql-contrib \
- `# Ruby ` \
- autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev \
- `# ffmpeg from backports ` \
- ffmpeg \
- `# Yarn ` \
- yarn
-
-#=================================================
# STANDARD UPGRADE STEPS
#=================================================
@@ -116,6 +98,11 @@ yunohost service stop "$app-web"
yunohost service stop "$app-sidekiq"
yunohost service stop "$app-streaming"
+#=================================================
+# DOWNLOAD, CHECK AND UNPACK SOURCE
+#=================================================
+ynh_print_info "Upgrading source files..."
+
# Download Mastodon
mv "$final_path/live" "$final_path/live_back"
ynh_setup_source "$final_path/live" "app-mastodon"
@@ -131,6 +118,8 @@ ynh_secure_remove $final_path/live/config/initializers/timeout.rb
#=================================================
# NGINX CONFIGURATION
#=================================================
+ynh_print_info "Upgrading nginx web server configuration..."
+
ynh_replace_string "__PORT_WEB__" "$port_web" "../conf/nginx.conf"
ynh_replace_string "__PORT_STREAM__" "$port_stream" "../conf/nginx.conf"
ynh_add_nginx_config
@@ -142,6 +131,42 @@ ynh_setup_source "$final_path/.rbenv/plugins/ruby-build" "app-ruby-build"
chown -R "$app": "$final_path"
+#=================================================
+# UPGRADE DEPENDENCIES
+#=================================================
+ynh_print_info "Upgrading dependencies..."
+
+ynh_install_nodejs 8
+
+# TODO: use the same mecanism with other files
+ynh_install_app_dependencies \
+ `# debian packages ` \
+ imagemagick libpq-dev libxml2-dev libxslt1-dev file curl apt-transport-https pkg-config libprotobuf-dev protobuf-compiler libicu-dev libidn11-dev \
+ `# redis ` \
+ redis-server redis-tools \
+ `# postgresql ` \
+ postgresql postgresql-contrib \
+ `# Ruby ` \
+ autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev \
+ `# ffmpeg from backports ` \
+ ffmpeg \
+ `# Yarn ` \
+ yarn
+
+#=================================================
+# CREATE DEDICATED USER
+#=================================================
+ynh_print_info "Making sure dedicated system user exists..."
+
+# Create a dedicated user (if not existing)
+ynh_system_user_create $app
+
+#=================================================
+# SPECIFIC UPGRADE
+#=================================================
+# ...
+#=================================================
+
# Install ruby 2.6.0
(
exec_as "$app" $final_path/.rbenv/bin/rbenv install -s 2.6.0 || true
@@ -193,6 +218,7 @@ chown -R "$app": "$final_path"
#=================================================
# SETUP SYSTEMD
#=================================================
+ynh_print_info "Upgrading systemd configuration..."
# Create a dedicated systemd config
ynh_replace_string "__PORT_WEB__" "$port_web" "../conf/mastodon-web.service"
@@ -225,19 +251,36 @@ ynh_replace_string "__USER__" "$app" ../conf/cron
sudo cp -f ../conf/cron /etc/cron.d/$app
#=================================================
-# RELOAD NGINX
+# GENERIC FINALIZATION
+#=================================================
+# SECURE FILES AND DIRECTORIES
#=================================================
-systemctl reload nginx
+# Set permissions on app files
+#chown -R root: $final_path
#=================================================
# SETUP SSOWAT
#=================================================
+ynh_print_info "Upgrading SSOwat configuration..."
ynh_app_setting_set "$app" unprotected_uris "/"
#=================================================
-# RELOAD ssowatconf
+# RELOAD SSOWATCONF
#=================================================
sudo yunohost app ssowatconf
+
+#=================================================
+# RELOAD NGINX
+#=================================================
+ynh_print_info "Reloading nginx web server..."
+
+systemctl reload nginx
+
+#=================================================
+# END OF SCRIPT
+#=================================================
+
+ynh_print_info "Upgrade of $app completed"