From 15ae6718500ed0a86cec95f67a7b7fe0e393dcbb Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sat, 10 Aug 2019 23:33:29 +0200 Subject: [PATCH 01/32] Upgrade to 2.9.3 --- README.md | 2 +- README_fr.md | 2 +- conf/app.src | 4 ++-- manifest.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6458570..9054a23 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to ## Overview Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly. -**Shipped version:** 2.9.2 +**Shipped version:** 2.9.3 ## Important points to read before installing diff --git a/README_fr.md b/README_fr.md index 803538f..bae565d 100644 --- a/README_fr.md +++ b/README_fr.md @@ -11,7 +11,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour ## Vue d'ensemble Mastodon est un réseau social gratuit et open source. Une alternative décentralisée aux plates-formes commerciales, elle évite les risques d'une seule société qui monopolise votre communication. Choisissez un serveur sur lequel vous faites confiance - selon votre choix, vous pouvez interagir avec tous les autres. N'importe qui peut exécuter sa propre instance de Mastodon et participer au réseau social de façon transparente. -**Version incluse:** 2.9.2 +**Version incluse:** 2.9.3 ## Points importants à lire avant l'installation diff --git a/conf/app.src b/conf/app.src index 0973ab9..c423876 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v2.9.2.tar.gz -SOURCE_SUM=b46f5f2b2032b531997acf942005ce5f88c9389fc3e5b307a281854179d64878 +SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v2.9.3.tar.gz +SOURCE_SUM=5b8841328be1e3da8e513d9386f99f0576eb9dbeafb31f2bbe9f4288e9f62756 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 8086969..5afef4b 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "2.9.2~ynh1", + "version": "2.9.3~ynh1", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": [ From 1e9663438eb0dd3535ced7086547a0da62bdaad2 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 11 Aug 2019 00:20:48 +0200 Subject: [PATCH 02/32] managing swap --- scripts/install | 27 ++++++++----- scripts/remove | 7 ++++ scripts/ynh_add_swap | 93 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 117 insertions(+), 10 deletions(-) create mode 100644 scripts/ynh_add_swap diff --git a/scripts/install b/scripts/install index 5bc5c23..daa4153 100644 --- a/scripts/install +++ b/scripts/install @@ -10,6 +10,7 @@ source _common.sh source ynh_install_ruby source ynh_add_extra_apt_repos__3 source ynh_send_readme_to_admin__2 +source ynh_add_swap source /usr/share/yunohost/helpers #================================================= @@ -44,16 +45,6 @@ ynh_script_progression --message="Validating installation parameters..." --weigh final_path=/var/www/$app test ! -e "$final_path" || ynh_die --message="This path already contains a folder" -if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then - # TODO : to be factorized into a helper someday ? ;) - MEM=$(free | grep "^Mem" | awk '{print $2}') - SWAP=$(free | grep "^Swap" | awk '{print $2}') - TOTAL_MEM_AND_SWAP=$(( ( $MEM+$SWAP ) / 1024 )) # In MB - - [[ $TOTAL_MEM_AND_SWAP -gt 2500 ]] || ynh_die "You need at least 2500 Mo of RAM+Swap to install Mastodon. Please consult the README to learn how to add swap." - -fi - # Register (book) web path ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url @@ -133,6 +124,22 @@ ynh_system_user_create --username=$app --home_dir=$final_path #================================================= # SPECIFIC SETUP +#================================================= +# ADD SWAP IF NEEDED +#================================================= + +total_memory=$(ynh_check_ram) +total_swap=$(ynh_check_ram --only_swap) +swap_needed=0 + +if [ $total_memory -lt 2560 ]; then + # Need a minimum of 8Go of memory + swap_needed=$((2560 - $total_memory)) +fi + +ynh_script_progression --message="Adding $swap_needed Mo to swap..." --weight=1 +ynh_add_swap --size=$swap_needed + #================================================= # INSTALLING RUBY AND BUNDLER #================================================= diff --git a/scripts/remove b/scripts/remove index 19cbf29..a08afb7 100644 --- a/scripts/remove +++ b/scripts/remove @@ -9,6 +9,7 @@ source _common.sh source ynh_install_ruby source ynh_add_extra_apt_repos__3 +source ynh_add_swap source /usr/share/yunohost/helpers #================================================= @@ -101,6 +102,12 @@ ynh_remove_nginx_config # Remove a cron file ynh_secure_remove --file="/etc/cron.d/$app" +# Remove swap + +ynh_del_swap +# Remove swap + +ynh_del_swap #================================================= # GENERIC FINALIZATION diff --git a/scripts/ynh_add_swap b/scripts/ynh_add_swap new file mode 100644 index 0000000..d7ec44b --- /dev/null +++ b/scripts/ynh_add_swap @@ -0,0 +1,93 @@ +#!/bin/bash + +# Add swap +# +# usage: ynh_add_swap --size=SWAP in Mb +# | arg: -s, --size= - Amount of SWAP to add in Mb. +ynh_add_swap () { + # Declare an array to define the options of this helper. + declare -Ar args_array=( [s]=size= ) + local size + # Manage arguments with getopts + ynh_handle_getopts_args "$@" + + local swap_max_size=$(( $size * 1024 )) + + local free_space=$(df --output=avail / | sed 1d) + # Because we don't want to fill the disk with a swap file, divide by 2 the available space. + local usable_space=$(( $free_space / 2 )) + + SD_CARD_CAN_SWAP=${SD_CARD_CAN_SWAP:-0} + + # Swap on SD card only if it's is specified + if ynh_is_main_device_a_sd_card && [ "$SD_CARD_CAN_SWAP" == "0" ] + then + ynh_print_warn --message="The main mountpoint of your system '/' is on an SD card, swap will not be added to prevent some damage of this one, but that can cause troubles for the app $app. If you still want activate the swap, you can relaunch the command preceded by 'SD_CARD_CAN_SWAP=1'" + return + fi + + # Compare the available space with the size of the swap. + # And set a acceptable size from the request + if [ $usable_space -ge $swap_max_size ] + then + local swap_size=$swap_max_size + elif [ $usable_space -ge $(( $swap_max_size / 2 )) ] + then + local swap_size=$(( $swap_max_size / 2 )) + elif [ $usable_space -ge $(( $swap_max_size / 3 )) ] + then + local swap_size=$(( $swap_max_size / 3 )) + elif [ $usable_space -ge $(( $swap_max_size / 4 )) ] + then + local swap_size=$(( $swap_max_size / 4 )) + else + echo "Not enough space left for a swap file" >&2 + local swap_size=0 + fi + + # If there's enough space for a swap, and no existing swap here + if [ $swap_size -ne 0 ] && [ ! -e /swap_$app ] + then + # Preallocate space for the swap file, fallocate may sometime not be used, use dd instead in this case + if ! fallocate -l ${swap_size}K /swap_$app + then + dd if=/dev/zero of=/swap_$app bs=1024 count=${swap_size} + fi + chmod 0600 /swap_$app + # Create the swap + mkswap /swap_$app + # And activate it + swapon /swap_$app + # Then add an entry in fstab to load this swap at each boot. + echo -e "/swap_$app swap swap defaults 0 0 #Swap added by $app" >> /etc/fstab + fi +} + +ynh_del_swap () { + # If there a swap at this place + if [ -e /swap_$app ] + then + # Clean the fstab + sed -i "/#Swap added by $app/d" /etc/fstab + # Desactive the swap file + swapoff /swap_$app + # And remove it + rm /swap_$app + fi +} + +# Check if the device of the main mountpoint "/" is an SD card +# +# [internal] +# +# return 0 if it's an SD card, else 1 +ynh_is_main_device_a_sd_card () { + local main_device=$(lsblk --output PKNAME --noheadings $(findmnt / --nofsroot --uniq --output source --noheadings --first-only)) + + if echo $main_device | grep --quiet "mmc" && [ $(tail -n1 /sys/block/$main_device/queue/rotational) == "0" ] + then + return 0 + else + return 1 + fi +} From 126e04bea66a78e0e40b4f08445e0e1e2e132ccb Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 11 Aug 2019 01:39:55 +0200 Subject: [PATCH 03/32] Fix add_swap --- README.md | 12 ------------ README_fr.md | 11 ----------- scripts/remove | 3 --- 3 files changed, 26 deletions(-) diff --git a/README.md b/README.md index 6458570..b3d4029 100644 --- a/README.md +++ b/README.md @@ -30,18 +30,6 @@ Mastodon is a free, open-source social network. A decentralized alternative to c ### Install -#### Adding "swapfile" If you have less than 2Go of RAM -``` -sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024000 -sudo chmod 600 /swapfile -sudo mkswap /swapfile -sudo swapon /swapfile -``` -add this line on /etc/fstab -``` -/swapfile none swap sw 0 0 -``` - #### Using __screen__ in case of disconnect ``` $ sudo apt-get install screen diff --git a/README_fr.md b/README_fr.md index 803538f..09ceb7b 100644 --- a/README_fr.md +++ b/README_fr.md @@ -28,17 +28,6 @@ Mastodon est un réseau social gratuit et open source. Une alternative décentra ### Installation -#### Ajout d'un "swapfile" si vous avez moins de 2Go de RAM -``` -sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024000 -sudo chmod 600 /swapfile -sudo mkswap /swapfile -sudo swapon /swapfile -``` -ajouter cette ligne dans /etc/fstab -``` -/swapfile none swap sw 0 0 -``` #### Utilisation de __screen__ en cas de déconnection ``` $ sudo apt-get install screen diff --git a/scripts/remove b/scripts/remove index a08afb7..f482ffe 100644 --- a/scripts/remove +++ b/scripts/remove @@ -102,11 +102,8 @@ ynh_remove_nginx_config # Remove a cron file ynh_secure_remove --file="/etc/cron.d/$app" -# Remove swap -ynh_del_swap # Remove swap - ynh_del_swap #================================================= From d406a87de2856be91b82005517106bab0622d28b Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 11 Aug 2019 01:40:06 +0200 Subject: [PATCH 04/32] fix ynh_check_ram --- scripts/install | 1 + scripts/ynh_check_ram | 72 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 scripts/ynh_check_ram diff --git a/scripts/install b/scripts/install index daa4153..1810c9b 100644 --- a/scripts/install +++ b/scripts/install @@ -11,6 +11,7 @@ source ynh_install_ruby source ynh_add_extra_apt_repos__3 source ynh_send_readme_to_admin__2 source ynh_add_swap +source ynh_check_ram source /usr/share/yunohost/helpers #================================================= diff --git a/scripts/ynh_check_ram b/scripts/ynh_check_ram new file mode 100644 index 0000000..11012a3 --- /dev/null +++ b/scripts/ynh_check_ram @@ -0,0 +1,72 @@ +#!/bin/bash + +# Check the amount of available RAM +# +# usage: ynh_check_ram [--required=RAM required in Mb] [--no_swap|--only_swap] [--free_ram] +# | arg: -r, --required= - Amount of RAM required in Mb. The helper will return 0 is there's enough RAM, or 1 otherwise. +# If --required isn't set, the helper will print the amount of RAM, in Mb. +# | arg: -s, --no_swap - Ignore swap +# | arg: -o, --only_swap - Ignore real RAM, consider only swap. +# | arg: -f, --free_ram - Count only free RAM, not the total amount of RAM available. +ynh_check_ram () { + # Declare an array to define the options of this helper. + declare -Ar args_array=( [r]=required= [s]=no_swap [o]=only_swap [f]=free_ram ) + local required + local no_swap + local only_swap + # Manage arguments with getopts + ynh_handle_getopts_args "$@" + required=${required:-} + no_swap=${no_swap:-0} + only_swap=${only_swap:-0} + + local total_ram=$(vmstat --stats --unit M | grep "total memory" | awk '{print $1}') + local total_swap=$(vmstat --stats --unit M | grep "total swap" | awk '{print $1}') + local total_ram_swap=$(( total_ram + total_swap )) + + local free_ram=$(vmstat --stats --unit M | grep "free memory" | awk '{print $1}') + local free_swap=$(vmstat --stats --unit M | grep "free swap" | awk '{print $1}') + local free_ram_swap=$(( free_ram + free_swap )) + + # Use the total amount of ram + local ram=$total_ram_swap + if [ $free_ram -eq 1 ] + then + # Use the total amount of free ram + ram=$free_ram_swap + if [ $no_swap -eq 1 ] + then + # Use only the amount of free ram + ram=$free_ram + elif [ $only_swap -eq 1 ] + then + # Use only the amount of free swap + ram=$free_swap + fi + else + if [ $no_swap -eq 1 ] + then + # Use only the amount of free ram + ram=$total_ram + elif [ $only_swap -eq 1 ] + then + # Use only the amount of free swap + ram=$total_swap + fi + fi + + if [ -n "$required" ] + then + # Return 1 if the amount of ram isn't enough. + if [ $ram -lt $required ] + then + return 1 + else + return 0 + fi + + # If no RAM is required, return the amount of available ram. + else + echo $ram + fi +} From b199de81f9241d0c07ccdd35bf0a8794d855bba6 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 11 Aug 2019 15:58:52 +0200 Subject: [PATCH 05/32] Add swap during upgrade and restore --- scripts/restore | 18 ++++++++++++++++++ scripts/upgrade | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/scripts/restore b/scripts/restore index 59e71fc..1d8180d 100644 --- a/scripts/restore +++ b/scripts/restore @@ -10,6 +10,8 @@ source ../settings/scripts/_common.sh source ../settings/scripts/ynh_install_ruby source ../settings/scripts/ynh_add_extra_apt_repos__3 +source ../settings/scripts/ynh_add_swap +source ../settings/scripts/ynh_check_ram source /usr/share/yunohost/helpers #================================================= @@ -80,6 +82,22 @@ chown -R $app: $final_path #================================================= # SPECIFIC RESTORATION +#================================================= +# ADD SWAP IF NEEDED +#================================================= + +total_memory=$(ynh_check_ram) +total_swap=$(ynh_check_ram --only_swap) +swap_needed=0 + +if [ $total_memory -lt 2560 ]; then + # Need a minimum of 8Go of memory + swap_needed=$((2560 - $total_memory)) +fi + +ynh_script_progression --message="Adding $swap_needed Mo to swap..." --weight=1 +ynh_add_swap --size=$swap_needed + #================================================= # REINSTALL DEPENDENCIES #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 46e7229..b35d643 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -9,6 +9,8 @@ source _common.sh source ynh_install_ruby source ynh_add_extra_apt_repos__3 +source ynh_add_swap +source ynh_check_ram source /usr/share/yunohost/helpers #================================================= @@ -205,6 +207,22 @@ ynh_system_user_create --username=$app --home_dir=$final_path #================================================= # SPECIFIC UPGRADE +#================================================= +# ADD SWAP IF NEEDED +#================================================= + +total_memory=$(ynh_check_ram) +total_swap=$(ynh_check_ram --only_swap) +swap_needed=0 + +if [ $total_memory -lt 2560 ]; then + # Need a minimum of 8Go of memory + swap_needed=$((2560 - $total_memory)) +fi + +ynh_script_progression --message="Adding $swap_needed Mo to swap..." --weight=1 +ynh_add_swap --size=$swap_needed + #================================================= # INSTALLING RUBY AND BUNDLER #================================================= From bf58460ad1dd67f92d861a4abe3ed681a917bde7 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Fri, 4 Oct 2019 01:43:21 +0200 Subject: [PATCH 06/32] Upgrade to 3.0.0 --- README.md | 2 +- README_fr.md | 2 +- conf/.env.production.sample | 15 +++++++++++++++ conf/app.src | 4 ++-- manifest.json | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7c70e55..abdab76 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to ## Overview Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly. -**Shipped version:** 2.9.3 +**Shipped version:** 3.0.0 ## Important points to read before installing diff --git a/README_fr.md b/README_fr.md index 0613566..7aba0c4 100644 --- a/README_fr.md +++ b/README_fr.md @@ -11,7 +11,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour ## Vue d'ensemble Mastodon est un réseau social gratuit et open source. Une alternative décentralisée aux plates-formes commerciales, elle évite les risques d'une seule société qui monopolise votre communication. Choisissez un serveur sur lequel vous faites confiance - selon votre choix, vous pouvez interagir avec tous les autres. N'importe qui peut exécuter sa propre instance de Mastodon et participer au réseau social de façon transparente. -**Version incluse:** 2.9.3 +**Version incluse:** 3.0.0 ## Points importants à lire avant l'installation diff --git a/conf/.env.production.sample b/conf/.env.production.sample index 203b74b..94c65b8 100644 --- a/conf/.env.production.sample +++ b/conf/.env.production.sample @@ -69,6 +69,7 @@ SMTP_PORT=25 #SMTP_LOGIN= #SMTP_PASSWORD= SMTP_FROM_ADDRESS=__SMTP_FROM_ADDRESS__ +#SMTP_REPLY_TO= #SMTP_DOMAIN= # defaults to LOCAL_DOMAIN SMTP_DELIVERY_METHOD=sendmail # delivery method can also be smtp SMTP_AUTH_METHOD=none @@ -114,6 +115,20 @@ SMTP_OPENSSL_VERIFY_MODE=none # S3_ENDPOINT= # S3_SIGNATURE_VERSION= +# Google Cloud Storage (optional) +# Use S3 compatible API. Since GCS does not support Multipart Upload, +# increase the value of S3_MULTIPART_THRESHOLD to disable Multipart Upload. +# The attachment host must allow cross origin request - see the description +# above. +# S3_ENABLED=true +# AWS_ACCESS_KEY_ID= +# AWS_SECRET_ACCESS_KEY= +# S3_REGION= +# S3_PROTOCOL=https +# S3_HOSTNAME=storage.googleapis.com +# S3_ENDPOINT=https://storage.googleapis.com +# S3_MULTIPART_THRESHOLD=52428801 # 50.megabytes + # Swift (optional) # The attachment host must allow cross origin request - see the description # above. diff --git a/conf/app.src b/conf/app.src index c423876..f65585c 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v2.9.3.tar.gz -SOURCE_SUM=5b8841328be1e3da8e513d9386f99f0576eb9dbeafb31f2bbe9f4288e9f62756 +SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.0.0.tar.gz +SOURCE_SUM=6ab9f3bd3a1fedb2cb380f292bb1e95b4a82aff11327ac9230976ba9cd8d6e33 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 5afef4b..eb3c0d5 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "2.9.3~ynh1", + "version": "3.0.0~ynh1", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": [ From 45573a61cdb375205cc51a68e2b89595bf5d3f6a Mon Sep 17 00:00:00 2001 From: yalh76 Date: Mon, 7 Oct 2019 22:54:13 +0200 Subject: [PATCH 07/32] Upgrade to ruby 2.6.5 --- conf/cron | 2 +- conf/mastodon-sidekiq.service | 2 +- conf/mastodon-web.service | 2 +- scripts/install | 16 ++++++++-------- scripts/remove | 2 +- scripts/restore | 6 +++--- scripts/upgrade | 18 +++++++++--------- .../{ynh_install_ruby => ynh_install_ruby__2} | 8 ++++---- 8 files changed, 28 insertions(+), 28 deletions(-) rename scripts/{ynh_install_ruby => ynh_install_ruby__2} (94%) diff --git a/conf/cron b/conf/cron index 6463d70..9a984a3 100644 --- a/conf/cron +++ b/conf/cron @@ -1,2 +1,2 @@ RAILS_ENV=production -@daily cd __FINAL__PATH__/live && /opt/rbenv/versions/2.6.1/bin/bundle exec rake __USER__:media:remove_remote +@daily cd __FINAL__PATH__/live && /opt/rbenv/versions/2.6.5/bin/bundle exec rake __USER__:media:remove_remote diff --git a/conf/mastodon-sidekiq.service b/conf/mastodon-sidekiq.service index cd7db81..d5fc7e1 100644 --- a/conf/mastodon-sidekiq.service +++ b/conf/mastodon-sidekiq.service @@ -9,7 +9,7 @@ Environment="RAILS_ENV=production" Environment="DB_POOL=25" Environment="MALLOC_ARENA_MAX=2" - ExecStart=/opt/rbenv/versions/2.6.1/bin/bundle exec sidekiq -c 25 + ExecStart=/opt/rbenv/versions/2.6.5/bin/bundle exec sidekiq -c 25 TimeoutSec=15 Restart=always StandardError=syslog diff --git a/conf/mastodon-web.service b/conf/mastodon-web.service index d2f5fdd..bb65afe 100644 --- a/conf/mastodon-web.service +++ b/conf/mastodon-web.service @@ -8,7 +8,7 @@ WorkingDirectory=__FINALPATH__/live Environment="RAILS_ENV=production" Environment="PORT=__PORT_WEB__" - ExecStart=/opt/rbenv/versions/2.6.1/bin/bundle exec puma -C config/puma.rb + ExecStart=/opt/rbenv/versions/2.6.5/bin/bundle exec puma -C config/puma.rb ExecReload=/bin/kill -SIGUSR1 $MAINPID TimeoutSec=15 Restart=always diff --git a/scripts/install b/scripts/install index 1810c9b..311ea59 100644 --- a/scripts/install +++ b/scripts/install @@ -7,7 +7,7 @@ #================================================= source _common.sh -source ynh_install_ruby +source ynh_install_ruby__2 source ynh_add_extra_apt_repos__3 source ynh_send_readme_to_admin__2 source ynh_add_swap @@ -146,9 +146,9 @@ ynh_add_swap --size=$swap_needed #================================================= ynh_script_progression --message="Installing Ruby..." --weight=424 -ynh_install_ruby --ruby_version=2.6.1 -/opt/rbenv/versions/2.6.1/bin/gem update --system -#/opt/rbenv/versions/2.6.1/bin/gem install bundler --no-document +ynh_install_ruby --ruby_version=2.6.5 +/opt/rbenv/versions/2.6.5/bin/gem update --system +#/opt/rbenv/versions/2.6.5/bin/gem install bundler --no-document #================================================= # MODIFY A CONFIG FILE @@ -186,12 +186,12 @@ chown -R "$app": "$final_path" pushd "$final_path/live" ynh_use_nodejs - sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.1/bin/bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test + sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.5/bin/bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test sudo -u "$app" env PATH=$PATH yarn install --pure-lockfile sudo -u "$app" echo "SAFETY_ASSURED=1">> .env.production - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.1/bin/bundle exec rails db:migrate --quiet - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.1/bin/bundle exec rails assets:precompile --quiet - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.1/bin/bundle exec rake mastodon:webpush:generate_vapid_key > key.txt + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails db:migrate --quiet + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails assets:precompile --quiet + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rake mastodon:webpush:generate_vapid_key > key.txt sudo -u "$app" env PATH=$PATH RAILS_ENV=production bin/tootctl accounts create "$admin" --email="$admin_mail" --confirmed --role=admin > acc.txt popd diff --git a/scripts/remove b/scripts/remove index f482ffe..3db3310 100644 --- a/scripts/remove +++ b/scripts/remove @@ -7,7 +7,7 @@ #================================================= source _common.sh -source ynh_install_ruby +source ynh_install_ruby__2 source ynh_add_extra_apt_repos__3 source ynh_add_swap source /usr/share/yunohost/helpers diff --git a/scripts/restore b/scripts/restore index 1d8180d..689f5c2 100644 --- a/scripts/restore +++ b/scripts/restore @@ -8,7 +8,7 @@ #Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh -source ../settings/scripts/ynh_install_ruby +source ../settings/scripts/ynh_install_ruby__2 source ../settings/scripts/ynh_add_extra_apt_repos__3 source ../settings/scripts/ynh_add_swap source ../settings/scripts/ynh_check_ram @@ -112,8 +112,8 @@ ynh_install_extra_app_dependencies --repo="deb https://dl.yarnpkg.com/debian/ st #================================================= ynh_script_progression --message="Installing Ruby..." --weight=393 -ynh_install_ruby --ruby_version=2.6.1 -/opt/rbenv/versions/2.6.1/bin/gem update --system +ynh_install_ruby --ruby_version=2.6.5 +/opt/rbenv/versions/2.6.5/bin/gem update --system #================================================= # RESTORE THE POSTGRESQL DATABASE diff --git a/scripts/upgrade b/scripts/upgrade index b35d643..563b983 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -7,7 +7,7 @@ #================================================= source _common.sh -source ynh_install_ruby +source ynh_install_ruby__2 source ynh_add_extra_apt_repos__3 source ynh_add_swap source ynh_check_ram @@ -228,9 +228,9 @@ ynh_add_swap --size=$swap_needed #================================================= ynh_script_progression --message="Installing Ruby..." --weight=424 -ynh_install_ruby --ruby_version=2.6.1 -/opt/rbenv/versions/2.6.1/bin/gem update --system -#/opt/rbenv/versions/2.6.1/bin/gem install bundler +ynh_install_ruby --ruby_version=2.6.5 +/opt/rbenv/versions/2.6.5/bin/gem update --system +#/opt/rbenv/versions/2.6.5/bin/gem install bundler #================================================= # MODIFY A CONFIG FILE @@ -267,14 +267,14 @@ chown -R "$app": "$final_path" pushd "$final_path/live" ynh_use_nodejs if [ "$(lsb_release --codename --short)" == "jessie" ]; then - sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.1/bin/bundle install --deployment --without development test + sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.5/bin/bundle install --deployment --without development test else - sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.1/bin/bundle install --deployment --force --without development test + sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.5/bin/bundle install --deployment --force --without development test fi sudo -u "$app" env PATH=$PATH yarn install --pure-lockfile - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.1/bin/bundle exec rails assets:clean - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.1/bin/bundle exec rails assets:precompile - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.1/bin/bundle exec rails db:migrate + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails assets:clean + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails assets:precompile + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails db:migrate sudo -u "$app" env PATH=$PATH RAILS_ENV=production bin/tootctl cache clear popd diff --git a/scripts/ynh_install_ruby b/scripts/ynh_install_ruby__2 similarity index 94% rename from scripts/ynh_install_ruby rename to scripts/ynh_install_ruby__2 index 9e53c06..c08b5f4 100644 --- a/scripts/ynh_install_ruby +++ b/scripts/ynh_install_ruby__2 @@ -15,15 +15,15 @@ ynh_install_rbenv () { echo "Installation of rbenv - ruby version management" >&2 # Build an app.src for rbenv mkdir -p "../conf" - echo "SOURCE_URL=https://github.com/rbenv/rbenv/archive/v1.1.1.tar.gz -SOURCE_SUM=41f1a60714c55eceb21d692a469aee1ec4f46bba351d0dfcb0c660ff9cf1a1c9" > "../conf/rbenv.src" + echo "SOURCE_URL=https://github.com/rbenv/rbenv/archive/v1.1.2.tar.gz +SOURCE_SUM=80ad89ffe04c0b481503bd375f05c212bbc7d44ef5f5e649e0acdf25eba86736" > "../conf/rbenv.src" # Download and extract rbenv ynh_setup_source "$rbenv_install_dir" rbenv # Build an app.src for ruby-build mkdir -p "../conf" - echo "SOURCE_URL=https://github.com/rbenv/ruby-build/archive/v20190314.tar.gz -SOURCE_SUM=2cc0f9fdb232042e71edad93a5c3ae108bcd090ea0b6db4e5bb6325547e07968" > "../conf/ruby-build.src" + echo "SOURCE_URL=https://github.com/rbenv/ruby-build/archive/v20191004.tar.gz +SOURCE_SUM=6f053957acb0af6d621ebf2b9dacc9c265844b2dc6842a021eb10f0a70094fe8" > "../conf/ruby-build.src" # Download and extract ruby-build ynh_setup_source "$rbenv_install_dir/plugins/ruby-build" ruby-build From 3a9bc3df2eda8d84ec38bc5afecc9c11839834f2 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Tue, 8 Oct 2019 01:22:50 +0200 Subject: [PATCH 08/32] Fix db_setup --- scripts/install | 3 ++- scripts/restore | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/install b/scripts/install index 311ea59..dafdfc8 100644 --- a/scripts/install +++ b/scripts/install @@ -96,6 +96,7 @@ ynh_app_setting_set --app=$app --key=db_name --value=$db_name ynh_app_setting_set --app=$app --key=db_pwd --value=$db_pwd ynh_psql_test_if_first_run ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd +ynh_psql_execute_as_root --sql="ALTER USER $db_user CREATEDB;" #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE @@ -189,7 +190,7 @@ pushd "$final_path/live" sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.5/bin/bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test sudo -u "$app" env PATH=$PATH yarn install --pure-lockfile sudo -u "$app" echo "SAFETY_ASSURED=1">> .env.production - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails db:migrate --quiet + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails db:setup --quiet sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails assets:precompile --quiet sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rake mastodon:webpush:generate_vapid_key > key.txt sudo -u "$app" env PATH=$PATH RAILS_ENV=production bin/tootctl accounts create "$admin" --email="$admin_mail" --confirmed --role=admin > acc.txt diff --git a/scripts/restore b/scripts/restore index 689f5c2..5982c94 100644 --- a/scripts/restore +++ b/scripts/restore @@ -122,6 +122,7 @@ ynh_script_progression --message="Restoring the PostgreSQL database..." --weight ynh_psql_test_if_first_run ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd +ynh_psql_execute_as_root --sql="ALTER USER $db_user CREATEDB;" ynh_psql_execute_file_as_root --file="./db.sql" --database="$db_name" #================================================= From 86f9caaaecc69d55d88185b1e2f9538a009e4feb Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 10 Oct 2019 20:44:36 +0200 Subject: [PATCH 09/32] fix rbenv upgrade --- scripts/ynh_install_ruby__2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/ynh_install_ruby__2 b/scripts/ynh_install_ruby__2 index c08b5f4..f064c08 100644 --- a/scripts/ynh_install_ruby__2 +++ b/scripts/ynh_install_ruby__2 @@ -77,6 +77,9 @@ ynh_install_ruby () { # If rbenv is not previously setup, install it if ! type rbenv > /dev/null 2>&1 + then + ynh_install_rbenv + elif dpkg --compare-versions "$(/opt/rbenv/bin/rbenv --version | cut -d" " -f2)" lt "1.1.2" then ynh_install_rbenv fi From 7e8d2cee5094cafb77954489e75674a636bcc3af Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 10 Oct 2019 20:46:55 +0200 Subject: [PATCH 10/32] upgrade to 3.0.1 --- README.md | 2 +- README_fr.md | 2 +- conf/app.src | 4 ++-- manifest.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index abdab76..0675331 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to ## Overview Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly. -**Shipped version:** 3.0.0 +**Shipped version:** 3.0.1 ## Important points to read before installing diff --git a/README_fr.md b/README_fr.md index 7aba0c4..aa050bc 100644 --- a/README_fr.md +++ b/README_fr.md @@ -11,7 +11,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour ## Vue d'ensemble Mastodon est un réseau social gratuit et open source. Une alternative décentralisée aux plates-formes commerciales, elle évite les risques d'une seule société qui monopolise votre communication. Choisissez un serveur sur lequel vous faites confiance - selon votre choix, vous pouvez interagir avec tous les autres. N'importe qui peut exécuter sa propre instance de Mastodon et participer au réseau social de façon transparente. -**Version incluse:** 3.0.0 +**Version incluse:** 3.0.1 ## Points importants à lire avant l'installation diff --git a/conf/app.src b/conf/app.src index f65585c..ae219ff 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.0.0.tar.gz -SOURCE_SUM=6ab9f3bd3a1fedb2cb380f292bb1e95b4a82aff11327ac9230976ba9cd8d6e33 +SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.0.1.tar.gz +SOURCE_SUM=8a9d2bd0d6ad1c7e2a3ecb7561595f7c2186d161cd9be675c08aadb4a07ee475 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index eb3c0d5..bd1fc77 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "3.0.0~ynh1", + "version": "3.0.1~ynh1", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": [ From bbc6bbe91d0f4b42e83996079c37935ab1f6e553 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 10 Oct 2019 21:22:19 +0200 Subject: [PATCH 11/32] Fix VAPID_KEY --- scripts/install | 4 ++-- scripts/upgrade | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/install b/scripts/install index dafdfc8..2519364 100644 --- a/scripts/install +++ b/scripts/install @@ -199,8 +199,8 @@ popd admin_pass=$( tail -1 $final_path/live/acc.txt | head -1 | cut -c 15- ) ynh_secure_remove --file="$final_path/live/acc.txt" -vapid_private_key=$(grep -oP "VAPID_PRIVATE_KEY=\K\w+" "$final_path/live/key.txt") -vapid_public_key=$(grep -oP "VAPID_PUBLIC_KEY=\K\w+" "$final_path/live/key.txt") +vapid_private_key=$(grep -oP "VAPID_PRIVATE_KEY=\K.+" "$final_path/live/key.txt") +vapid_public_key=$(grep -oP "VAPID_PUBLIC_KEY=\K.+" "$final_path/live/key.txt") ynh_replace_string --match_string="__VAPID_PRIVATE_KEY__" --replace_string="$vapid_private_key" --target_file="${final_path}/live/.env.production" ynh_replace_string --match_string="__VAPID_PUBLIC_KEY__" --replace_string="$vapid_public_key" --target_file="${final_path}/live/.env.production" diff --git a/scripts/upgrade b/scripts/upgrade index 563b983..38d85ea 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -118,8 +118,8 @@ fi # If vapid_private_key doesn't exist, retrieve it or create it if [[ -z "$vapid_private_key" ]]; then - vapid_private_key=$(grep -oP "VAPID_PRIVATE_KEY=\K\w+" ${final_path}/live/.env.production) - vapid_public_key=$(grep -oP "VAPID_PUBLIC_KEY=\K\w+" ${final_path}/live/.env.production) + vapid_private_key=$(grep -oP "VAPID_PRIVATE_KEY=\K.+" ${final_path}/live/.env.production) + vapid_public_key=$(grep -oP "VAPID_PUBLIC_KEY=\K.+" ${final_path}/live/.env.production) ynh_app_setting_set "$app" vapid_private_key "$vapid_private_key" ynh_app_setting_set "$app" vapid_public_key "$vapid_public_key" fi @@ -281,8 +281,8 @@ popd # If vapid_private_key doesn't exist, retrieve it or create it #if [[ -z "$vapid_private_key" ]]; then # sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.0/bin/bundle exec rake mastodon:webpush:generate_vapid_key > key.txt -# vapid_private_key=$(grep -oP "VAPID_PRIVATE_KEY=\K\w+" "$final_path/live/key.txt") -# vapid_public_key=$(grep -oP "VAPID_PUBLIC_KEY=\K\w+" "$final_path/live/key.txt") +# vapid_private_key=$(grep -oP "VAPID_PRIVATE_KEY=\K.+" "$final_path/live/key.txt") +# vapid_public_key=$(grep -oP "VAPID_PUBLIC_KEY=\K.+" "$final_path/live/key.txt") # ynh_app_setting_set "$app" vapid_private_key "$vapid_private_key" # ynh_app_setting_set "$app" vapid_public_key "$vapid_public_key" # ynh_secure_remove "$final_path/live/key.txt" From f1ea723f4402b1adff2c393e1e7e207f0b301f7b Mon Sep 17 00:00:00 2001 From: yalh76 Date: Fri, 22 Nov 2019 01:24:17 +0100 Subject: [PATCH 12/32] Fix upgrade step --- scripts/upgrade | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 38d85ea..5c763a4 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -169,13 +169,18 @@ then ynh_script_progression --message="Upgrading source files..." --weight=14 # Download Mastodon - mv "$final_path/live" "$final_path/live_back" + tmpdir="$(mktemp -d)" + + mkdir $tmpdir/system + rsync -a "$final_path/live/public/system" "$tmpdir/." + rsync -a "$final_path/live/.env.production" "$tmpdir/." + ynh_secure_remove --file="$final_path/live/" ynh_setup_source --dest_dir="$final_path/live" - if [ -d "$final_path/live_back/public/system" ]; then - rsync -a "$final_path/live_back/public/system" "$final_path/live/public/." + if [ -d "$tmpdir/system" ]; then + rsync -a "$tmpdir/system" "$final_path/live/public/." fi - rsync -a "$final_path/live_back/.env.production" "$final_path/live/." - ynh_secure_remove --file="$final_path/live_back/" + rsync -a "$tmpdir/.env.production" "$final_path/live/." + ynh_secure_remove --file="$tmpdir/" # Clean files which are not needed anymore ynh_secure_remove --file="$final_path/live/config/initializers/timeout.rb" From 95a5efb60811ae0062e7cda45b6875d979103dd2 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Fri, 22 Nov 2019 23:24:09 +0100 Subject: [PATCH 13/32] Fix case of missing system folder --- scripts/upgrade | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/upgrade b/scripts/upgrade index 5c763a4..edff694 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -172,7 +172,9 @@ then tmpdir="$(mktemp -d)" mkdir $tmpdir/system - rsync -a "$final_path/live/public/system" "$tmpdir/." + if [ -d "$final_path/live/public/system" ]; then + rsync -a "$final_path/live/public/system" "$tmpdir/." + fi rsync -a "$final_path/live/.env.production" "$tmpdir/." ynh_secure_remove --file="$final_path/live/" ynh_setup_source --dest_dir="$final_path/live" From 180db2eb3398325c2298a2dc936aa06b610e0c11 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sat, 28 Dec 2019 14:44:18 +0100 Subject: [PATCH 14/32] Fix bundler --- scripts/install | 2 +- scripts/upgrade | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/install b/scripts/install index 2519364..8c903b5 100644 --- a/scripts/install +++ b/scripts/install @@ -149,7 +149,7 @@ ynh_script_progression --message="Installing Ruby..." --weight=424 ynh_install_ruby --ruby_version=2.6.5 /opt/rbenv/versions/2.6.5/bin/gem update --system -#/opt/rbenv/versions/2.6.5/bin/gem install bundler --no-document +/opt/rbenv/versions/2.6.5/bin/gem install bundler:1.17.3 --no-document #================================================= # MODIFY A CONFIG FILE diff --git a/scripts/upgrade b/scripts/upgrade index edff694..9c7eaf7 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -237,7 +237,7 @@ ynh_script_progression --message="Installing Ruby..." --weight=424 ynh_install_ruby --ruby_version=2.6.5 /opt/rbenv/versions/2.6.5/bin/gem update --system -#/opt/rbenv/versions/2.6.5/bin/gem install bundler +/opt/rbenv/versions/2.6.5/bin/gem install bundler:1.17.3 --no-document #================================================= # MODIFY A CONFIG FILE From e66ed0ee85f58e61dbf90a005090a4ab75f087cc Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sat, 28 Dec 2019 23:50:28 +0100 Subject: [PATCH 15/32] Fix restore step --- scripts/restore | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/restore b/scripts/restore index 5982c94..de19461 100644 --- a/scripts/restore +++ b/scripts/restore @@ -114,6 +114,7 @@ ynh_script_progression --message="Installing Ruby..." --weight=393 ynh_install_ruby --ruby_version=2.6.5 /opt/rbenv/versions/2.6.5/bin/gem update --system +/opt/rbenv/versions/2.6.5/bin/gem install bundler:1.17.3 --no-document #================================================= # RESTORE THE POSTGRESQL DATABASE From 8cc53046fdb7ea048b0a0505aae463a9532134ef Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 29 Dec 2019 13:16:33 +0100 Subject: [PATCH 16/32] Update check_process --- check_process | 1 - 1 file changed, 1 deletion(-) diff --git a/check_process b/check_process index b4eef2b..66a0890 100644 --- a/check_process +++ b/check_process @@ -12,7 +12,6 @@ setup_private=0 setup_public=1 upgrade=1 - upgrade=1 from_commit=2987ccf8b3aa393dbef79b874dfe5839a0ee10da backup_restore=1 multi_instance=1 # This test is no longer necessary since the version 2.7 (PR: https://github.com/YunoHost/yunohost/pull/304), you can still do it if your app could be installed with this version. From a85f1bbe2f147fe89098e26a4b17922390eabeeb Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 29 Dec 2019 15:00:25 +0100 Subject: [PATCH 17/32] Update version --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index bd1fc77..8991309 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "3.0.1~ynh1", + "version": "3.0.1~ynh2", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": [ From ad105db3e151df638402de7c14a39dbec473aba1 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 9 Feb 2020 12:42:32 +0100 Subject: [PATCH 18/32] Upgrade to 3.1.0 --- README.md | 2 +- README_fr.md | 2 +- conf/.env.production.sample | 20 +++++++++++++++++--- conf/app.src | 4 ++-- manifest.json | 2 +- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 0675331..4f1ee70 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to ## Overview Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly. -**Shipped version:** 3.0.1 +**Shipped version:** 3.1.0 ## Important points to read before installing diff --git a/README_fr.md b/README_fr.md index aa050bc..cee679b 100644 --- a/README_fr.md +++ b/README_fr.md @@ -11,7 +11,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour ## Vue d'ensemble Mastodon est un réseau social gratuit et open source. Une alternative décentralisée aux plates-formes commerciales, elle évite les risques d'une seule société qui monopolise votre communication. Choisissez un serveur sur lequel vous faites confiance - selon votre choix, vous pouvez interagir avec tous les autres. N'importe qui peut exécuter sa propre instance de Mastodon et participer au réseau social de façon transparente. -**Version incluse:** 3.0.1 +**Version incluse:** 3.1.0 ## Points importants à lire avant l'installation diff --git a/conf/.env.production.sample b/conf/.env.production.sample index 94c65b8..8b992d9 100644 --- a/conf/.env.production.sample +++ b/conf/.env.production.sample @@ -178,7 +178,11 @@ STREAMING_CLUSTER_NUM=1 # LDAP_BIND_DN=uid=__LDAP_USER__,ou=users,dc=yunohost,dc=org # LDAP_PASSWORD=__LDAP_PASSWORD__ # LDAP_UID=uid -# LDAP_SEARCH_FILTER="%{uid}=%{email}" +# LDAP_MAIL=mail +# LDAP_SEARCH_FILTER=(|(%{uid}=%{email})(%{mail}=%{email})) +# LDAP_UID_CONVERSION_ENABLED=true +# LDAP_UID_CONVERSION_SEARCH=., - +# LDAP_UID_CONVERSION_REPLACE=_ # PAM authentication (optional) # PAM authentication uses for the email generation the "email" pam variable @@ -222,8 +226,8 @@ STREAMING_CLUSTER_NUM=1 # Optional SAML authentication (cf. omniauth-saml) # SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback +# SAML_ACS_URL=http://localhost:3000/auth/auth/saml/callback +# SAML_ISSUER=https://example.com # SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO # SAML_IDP_CERT= # SAML_IDP_CERT_FINGERPRINT= @@ -246,3 +250,13 @@ STREAMING_CLUSTER_NUM=1 # http_proxy=http://gateway.local:8118 # Access control for hidden service. # ALLOW_ACCESS_TO_HIDDEN_SERVICE=true + +# Authorized fetch mode (optional) +# Require remote servers to authentify when fetching toots, see +# https://docs.joinmastodon.org/admin/config/#authorized_fetch +# AUTHORIZED_FETCH=true + +# Whitelist mode (optional) +# Only allow federation with whitelisted domains, see +# https://docs.joinmastodon.org/admin/config/#whitelist_mode +# WHITELIST_MODE=true diff --git a/conf/app.src b/conf/app.src index ae219ff..bde4af0 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.0.1.tar.gz -SOURCE_SUM=8a9d2bd0d6ad1c7e2a3ecb7561595f7c2186d161cd9be675c08aadb4a07ee475 +SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.1.0.tar.gz +SOURCE_SUM=735e6201885c2c65338bcc645263b87e332664eec12fdabdf4e14f2c18e06ecb SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 8991309..97767b7 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "3.0.1~ynh2", + "version": "3.1.0~ynh1", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": [ From 64b80717ddbc8a4d205118257eb4a9beb04c1e3e Mon Sep 17 00:00:00 2001 From: yalh76 Date: Mon, 10 Feb 2020 20:08:03 +0100 Subject: [PATCH 19/32] Upgrade to 3.1.1 --- README.md | 2 +- README_fr.md | 2 +- conf/app.src | 4 ++-- manifest.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4f1ee70..ec0e046 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to ## Overview Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly. -**Shipped version:** 3.1.0 +**Shipped version:** 3.1.1 ## Important points to read before installing diff --git a/README_fr.md b/README_fr.md index cee679b..6bea9d1 100644 --- a/README_fr.md +++ b/README_fr.md @@ -11,7 +11,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour ## Vue d'ensemble Mastodon est un réseau social gratuit et open source. Une alternative décentralisée aux plates-formes commerciales, elle évite les risques d'une seule société qui monopolise votre communication. Choisissez un serveur sur lequel vous faites confiance - selon votre choix, vous pouvez interagir avec tous les autres. N'importe qui peut exécuter sa propre instance de Mastodon et participer au réseau social de façon transparente. -**Version incluse:** 3.1.0 +**Version incluse:** 3.1.1 ## Points importants à lire avant l'installation diff --git a/conf/app.src b/conf/app.src index bde4af0..5e78c4e 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.1.0.tar.gz -SOURCE_SUM=735e6201885c2c65338bcc645263b87e332664eec12fdabdf4e14f2c18e06ecb +SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.1.1.tar.gz +SOURCE_SUM=4d44458b28667e49bc0d69e7f344a953f869a0df5e41140d932982aa952ab13c SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 97767b7..1a29d40 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "3.1.0~ynh1", + "version": "3.1.1~ynh1", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": [ From a858ca8e3a09d5407db6ae1539844d63594f6ee3 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Mon, 10 Feb 2020 21:01:52 +0100 Subject: [PATCH 20/32] Upgrade nodejs version --- scripts/install | 2 +- scripts/restore | 2 +- scripts/upgrade | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/install b/scripts/install index 8c903b5..58f0caa 100644 --- a/scripts/install +++ b/scripts/install @@ -79,7 +79,7 @@ ynh_app_setting_set --app=$app --key=port_stream --value=$port_stream #================================================= ynh_script_progression --message="Installing dependencies..." --weight=86 -ynh_install_nodejs --nodejs_version="8" +ynh_install_nodejs --nodejs_version="10" ynh_install_app_dependencies $pkg_dependencies ynh_install_extra_app_dependencies --repo="deb https://dl.yarnpkg.com/debian/ stable main" --package="yarn" --key="https://dl.yarnpkg.com/debian/pubkey.gpg" diff --git a/scripts/restore b/scripts/restore index de19461..1985b26 100644 --- a/scripts/restore +++ b/scripts/restore @@ -103,7 +103,7 @@ ynh_add_swap --size=$swap_needed #================================================= ynh_script_progression --message="Reinstalling dependencies..." --weight=63 -ynh_install_nodejs --nodejs_version="8" +ynh_install_nodejs --nodejs_version="10" ynh_install_app_dependencies $pkg_dependencies ynh_install_extra_app_dependencies --repo="deb https://dl.yarnpkg.com/debian/ stable main" --package="yarn" --key="https://dl.yarnpkg.com/debian/pubkey.gpg" diff --git a/scripts/upgrade b/scripts/upgrade index 9c7eaf7..068563a 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -200,7 +200,7 @@ ynh_add_nginx_config 'port_web port_stream' #================================================= ynh_script_progression --message="Upgrading dependencies..." --weight=24 -ynh_install_nodejs --nodejs_version="8" +ynh_install_nodejs --nodejs_version="10" ynh_install_app_dependencies $pkg_dependencies ynh_install_extra_app_dependencies --repo="deb https://dl.yarnpkg.com/debian/ stable main" --package="yarn" --key="https://dl.yarnpkg.com/debian/pubkey.gpg" From 1a0e88044822ba83941498bc76cced326bf08ebf Mon Sep 17 00:00:00 2001 From: yalh76 Date: Mon, 10 Feb 2020 21:40:56 +0100 Subject: [PATCH 21/32] removing previous nodejs version --- scripts/upgrade | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/upgrade b/scripts/upgrade index 068563a..ff07693 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -200,6 +200,7 @@ ynh_add_nginx_config 'port_web port_stream' #================================================= ynh_script_progression --message="Upgrading dependencies..." --weight=24 +ynh_remove_nodejs ynh_install_nodejs --nodejs_version="10" ynh_install_app_dependencies $pkg_dependencies ynh_install_extra_app_dependencies --repo="deb https://dl.yarnpkg.com/debian/ stable main" --package="yarn" --key="https://dl.yarnpkg.com/debian/pubkey.gpg" From 0fd7fb74c49b2226a8c28d9769ac3fc600dea784 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 16 Feb 2020 13:10:38 +0100 Subject: [PATCH 22/32] Update upgrade --- scripts/upgrade | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index ff07693..9cfe1cc 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -274,16 +274,12 @@ chown -R "$app": "$final_path" pushd "$final_path/live" ynh_use_nodejs - if [ "$(lsb_release --codename --short)" == "jessie" ]; then - sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.5/bin/bundle install --deployment --without development test - else - sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.5/bin/bundle install --deployment --force --without development test - fi - sudo -u "$app" env PATH=$PATH yarn install --pure-lockfile - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails assets:clean - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails assets:precompile - sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails db:migrate - sudo -u "$app" env PATH=$PATH RAILS_ENV=production bin/tootctl cache clear + sudo -u "$app" env PATH=$PATH /opt/rbenv/versions/2.6.5/bin/bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test + sudo -u "$app" env PATH=$PATH yarn install --pure-lockfile + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails assets:clean + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails assets:precompile + sudo -u "$app" env PATH=$PATH RAILS_ENV=production /opt/rbenv/versions/2.6.5/bin/bundle exec rails db:migrate + sudo -u "$app" env PATH=$PATH RAILS_ENV=production bin/tootctl cache clear popd # If vapid_private_key doesn't exist, retrieve it or create it From 62855b6febe3a3d9ee7c36329c57317b3b52bf48 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 16 Feb 2020 15:29:44 +0100 Subject: [PATCH 23/32] Update check_process --- check_process | 2 ++ 1 file changed, 2 insertions(+) diff --git a/check_process b/check_process index 66a0890..21c17ae 100644 --- a/check_process +++ b/check_process @@ -12,6 +12,8 @@ setup_private=0 setup_public=1 upgrade=1 + # 3.0.1 + upgrade=1 from_commit=168573d3d7dcc4306691f21d5b64819d1f6dd38c backup_restore=1 multi_instance=1 # This test is no longer necessary since the version 2.7 (PR: https://github.com/YunoHost/yunohost/pull/304), you can still do it if your app could be installed with this version. From ea70a2cd4f17daecf49e2b414c0e95e4385cf1a6 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sat, 22 Feb 2020 17:21:37 +0100 Subject: [PATCH 24/32] Fix message --- conf/message | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/message b/conf/message index 488d86d..403c4e0 100644 --- a/conf/message +++ b/conf/message @@ -1,5 +1,5 @@ Mastodon was successfully installed :) -Please open 'https://__DOMAIN____PATH_URL__' +Please open : https://__DOMAIN____PATH_URL__ The admin email is: __ADMIN_MAIL__ The admin password is: __ADMIN_PASS__ If you facing an issue or want to improve this app, please open a new issue in this project: https://github.com/YunoHost-Apps/mastodon_ynh \ No newline at end of file From 6ff11dacb201a08506b345953aa7b9bd39eeacf5 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 23 Feb 2020 18:44:50 +0100 Subject: [PATCH 25/32] Apply example_ynh --- README.md | 1 - README_fr.md | 1 - conf/nginx.conf | 96 +++++++++++++++++++++++----------------------- scripts/_common.sh | 3 +- scripts/backup | 2 + scripts/install | 7 +++- scripts/remove | 10 +++-- scripts/restore | 2 + scripts/upgrade | 7 ++++ 9 files changed, 71 insertions(+), 58 deletions(-) diff --git a/README.md b/README.md index ec0e046..dfce394 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,6 @@ $ screen -r * x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/mastodon%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/mastodon/) * ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/mastodon%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/mastodon/) -* Jessie x86-64b - [![Build Status](https://ci-stretch.nohost.me/ci/logs/mastodon%20%28Apps%29.svg)](https://ci-stretch.nohost.me/ci/apps/mastodon/) ## Links diff --git a/README_fr.md b/README_fr.md index 6bea9d1..2092750 100644 --- a/README_fr.md +++ b/README_fr.md @@ -57,7 +57,6 @@ L'utilisateur admin est crée automatiquement comme: user@domain.tld * x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/mastodon%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/mastodon/) * ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/mastodon%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/mastodon/) -* Jessie x86-64b - [![Build Status](https://ci-stretch.nohost.me/ci/logs/mastodon%20%28Apps%29.svg)](https://ci-stretch.nohost.me/ci/apps/mastodon/) ## Links diff --git a/conf/nginx.conf b/conf/nginx.conf index 190c650..7fa7b87 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -6,70 +6,70 @@ root __FINALPATH__/live/public; location / { - if ($scheme = http) { - rewrite ^ https://$server_name$request_uri? permanent; - } + # Force usage of https + if ($scheme = http) { + rewrite ^ https://$server_name$request_uri? permanent; + } - proxy_set_header Accept-Encoding ""; - try_files $uri @proxy; + proxy_set_header Accept-Encoding ""; + try_files $uri @proxy; - # Include SSOWAT user panel. - include conf.d/yunohost_panel.conf.inc; + # Include SSOWAT user panel. + include conf.d/yunohost_panel.conf.inc; } location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) { - add_header Cache-Control "public, max-age=31536000, immutable"; - add_header Strict-Transport-Security "max-age=31536000"; - try_files $uri @proxy; + add_header Cache-Control "public, max-age=31536000, immutable"; + add_header Strict-Transport-Security "max-age=31536000"; + try_files $uri @proxy; } location /sw.js { - add_header Cache-Control "public, max-age=0"; - add_header Strict-Transport-Security "max-age=31536000"; - try_files $uri @proxy; + add_header Cache-Control "public, max-age=0"; + add_header Strict-Transport-Security "max-age=31536000"; + try_files $uri @proxy; } location @proxy { - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto https; - proxy_set_header Proxy ""; - proxy_pass_header Server; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Proxy ""; + proxy_pass_header Server; - proxy_pass http://127.0.0.1:3000; - proxy_buffering on; - proxy_redirect off; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; + proxy_pass http://127.0.0.1:3000; + proxy_buffering on; + proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; - #proxy_cache CACHE; - proxy_cache_valid 200 7d; - proxy_cache_valid 410 24h; - proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; - add_header X-Cached $upstream_cache_status; - add_header Strict-Transport-Security "max-age=31536000"; + #proxy_cache CACHE; + proxy_cache_valid 200 7d; + proxy_cache_valid 410 24h; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + add_header X-Cached $upstream_cache_status; + add_header Strict-Transport-Security "max-age=31536000"; - tcp_nodelay on; + tcp_nodelay on; } location /api/v1/streaming { - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto https; - proxy_set_header Proxy ""; - - proxy_pass http://127.0.0.1:4000; - proxy_buffering off; - proxy_redirect off; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - - tcp_nodelay on; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Proxy ""; + + proxy_pass http://127.0.0.1:4000; + proxy_buffering off; + proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + tcp_nodelay on; } - -error_page 500 501 502 503 504 /500.html; \ No newline at end of file +error_page 500 501 502 503 504 /500.html; diff --git a/scripts/_common.sh b/scripts/_common.sh index 904553d..029d4ff 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -5,8 +5,7 @@ #================================================= # dependencies used by the app -#pkg_dependencies="imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev nginx redis-server redis-tools postgresql postgresql-contrib certbot python-certbot-nginx yarn libidn11-dev libicu-dev libjemalloc-dev" - pkg_dependencies="imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev redis-server redis-tools postgresql postgresql-contrib libidn11-dev libicu-dev libjemalloc-dev curl apt-transport-https" +pkg_dependencies="imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev redis-server redis-tools postgresql postgresql-contrib libidn11-dev libicu-dev libjemalloc-dev curl apt-transport-https" #================================================= # PERSONAL HELPERS diff --git a/scripts/backup b/scripts/backup index 62ac387..61ad5f4 100644 --- a/scripts/backup +++ b/scripts/backup @@ -13,6 +13,7 @@ source /usr/share/yunohost/helpers #================================================= # MANAGE SCRIPT FAILURE #================================================= +ynh_script_progression --message="Managing script failure..." --weight=1 ynh_clean_setup () { ynh_clean_check_starting @@ -77,6 +78,7 @@ ynh_backup --src_path="/etc/systemd/system/$app-streaming.service" #================================================= # BACKUP A CRON FILE #================================================= +ynh_script_progression --message="Backing up a cron file..." --weight=1 ynh_backup --src_path="/etc/cron.d/$app" diff --git a/scripts/install b/scripts/install index 58f0caa..f769f03 100644 --- a/scripts/install +++ b/scripts/install @@ -17,6 +17,7 @@ source /usr/share/yunohost/helpers #================================================= # MANAGE SCRIPT FAILURE #================================================= +ynh_script_progression --message="Managing script failure..." --weight=1 ynh_clean_setup () { ynh_clean_check_starting @@ -27,6 +28,7 @@ ynh_abort_if_errors #================================================= # RETRIEVE ARGUMENTS FROM THE MANIFEST #================================================= +ynh_script_progression --message="Retrieving arguments from the manifest..." --weight=1 domain=$YNH_APP_ARG_DOMAIN path_url="/" @@ -67,7 +69,7 @@ ynh_app_setting_set --app=$app --key=language --value=$language #================================================= ynh_script_progression --message="Configuring firewall..." --weight=1 -# Find a free port +# Find an available port port_web=$(ynh_find_port --port=3000) port_stream=$(ynh_find_port --port=4000) # Open this port @@ -91,7 +93,7 @@ ynh_script_progression --message="Creating a PostgreSQL database..." --weight=5 # Create postgresql database db_name="${app}_production" db_user=$app -db_pwd=$(ynh_string_random 30) +db_pwd=$(ynh_string_random --length30) ynh_app_setting_set --app=$app --key=db_name --value=$db_name ynh_app_setting_set --app=$app --key=db_pwd --value=$db_pwd ynh_psql_test_if_first_run @@ -129,6 +131,7 @@ ynh_system_user_create --username=$app --home_dir=$final_path #================================================= # ADD SWAP IF NEEDED #================================================= +ynh_script_progression --message="Adding swap is needed..." --weight=4 total_memory=$(ynh_check_ram) total_swap=$(ynh_check_ram --only_swap) diff --git a/scripts/remove b/scripts/remove index 3db3310..b88da99 100644 --- a/scripts/remove +++ b/scripts/remove @@ -27,23 +27,24 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) #================================================= # STANDARD REMOVE #================================================= -# REMOVE SERVICE FROM ADMIN PANEL +# REMOVE SERVICE INTEGRATION IN YUNOHOST #================================================= +ynh_script_progression --message="Removing service integration in YunoHost..." --weight=2 # Remove a service from the admin panel, added by `yunohost service add` -if yunohost service status "$app-web" >/dev/null 2>&1 +if ynh_exec_warn_less yunohost service status "$app-web" >/dev/null then ynh_script_progression --message="Removing $app-web service..." --weight=2 yunohost service remove "$app-web" fi -if yunohost service status "$app-sidekiq" >/dev/null 2>&1 +if ynh_exec_warn_less yunohost service status "$app-sidekiq" >/dev/null then ynh_script_progression --message="Removing $app-sidekiq service..." --weight=2 yunohost service remove "$app-sidekiq" fi -if yunohost service status "$app-streaming" >/dev/null 2>&1 +if ynh_exec_warn_less yunohost service status "$app-streaming" >/dev/null then ynh_script_progression --message="Removing $app-streaming service..." --weight=2 yunohost service remove "$app-streaming" @@ -99,6 +100,7 @@ ynh_remove_nginx_config #================================================= # REMOVE THE CRON FILE #================================================= +ynh_script_progression --message="Removing the cron file..." --weight=2 # Remove a cron file ynh_secure_remove --file="/etc/cron.d/$app" diff --git a/scripts/restore b/scripts/restore index 1985b26..a45925e 100644 --- a/scripts/restore +++ b/scripts/restore @@ -17,6 +17,7 @@ source /usr/share/yunohost/helpers #================================================= # MANAGE SCRIPT FAILURE #================================================= +ynh_script_progression --message="Managing script failure..." --weight=2 ynh_clean_setup () { ynh_clean_check_starting @@ -85,6 +86,7 @@ chown -R $app: $final_path #================================================= # ADD SWAP IF NEEDED #================================================= +ynh_script_progression --message="Adding swap if needed..." --weight=4 total_memory=$(ynh_check_ram) total_swap=$(ynh_check_ram --only_swap) diff --git a/scripts/upgrade b/scripts/upgrade index 9cfe1cc..32426a2 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -42,6 +42,7 @@ vapid_public_key=$(ynh_app_setting_get --app=$app --key=vapid_public_key) #================================================= # CHECK VERSION #================================================= +ynh_script_progression --message="Checking version..." --weight=1 upgrade_type=$(ynh_check_app_version_changed) @@ -147,6 +148,11 @@ ynh_abort_if_errors #================================================= # Normalize the URL path syntax +# N.B. : this is for app installations before YunoHost 2.7 +# where this value might be something like /foo/ or foo/ +# instead of /foo .... +# If nobody installed your app before 2.7, then you may +# safely remove this line path_url=$(ynh_normalize_url_path --path_url=$path_url) #================================================= @@ -218,6 +224,7 @@ ynh_system_user_create --username=$app --home_dir=$final_path #================================================= # ADD SWAP IF NEEDED #================================================= +ynh_script_progression --message="Adding swap if needed..." --weight=7 total_memory=$(ynh_check_ram) total_swap=$(ynh_check_ram --only_swap) From 3a7b21fbcbede1ee108bb5b94b7c6a1717cdaa2c Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 23 Feb 2020 19:51:58 +0100 Subject: [PATCH 26/32] Apply example_ynh --- scripts/install | 4 ++-- scripts/remove | 2 +- scripts/restore | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/install b/scripts/install index f769f03..60787e7 100644 --- a/scripts/install +++ b/scripts/install @@ -254,9 +254,9 @@ ynh_script_progression --message="Securing files and directories..." --weight=9 chown -R "$app": "$final_path" #================================================= -# ADVERTISE SERVICE IN ADMIN PANEL +# INTEGRATE SERVICE IN YUNOHOST #================================================= -ynh_script_progression --message="Advertising service in admin panel..." --weight=3 +ynh_script_progression --message="Integrating service in YunoHost..." --weight=3 yunohost service add "$app-web" yunohost service add "$app-sidekiq" diff --git a/scripts/remove b/scripts/remove index b88da99..f2b2e16 100644 --- a/scripts/remove +++ b/scripts/remove @@ -31,7 +31,7 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) #================================================= ynh_script_progression --message="Removing service integration in YunoHost..." --weight=2 -# Remove a service from the admin panel, added by `yunohost service add` +# Remove the service from the list of services known by Yunohost (added from `yunohost service add`) if ynh_exec_warn_less yunohost service status "$app-web" >/dev/null then ynh_script_progression --message="Removing $app-web service..." --weight=2 diff --git a/scripts/restore b/scripts/restore index a45925e..c6e4bc8 100644 --- a/scripts/restore +++ b/scripts/restore @@ -139,9 +139,9 @@ ynh_restore_file --origin_path="/etc/systemd/system/$app-streaming.service" systemctl enable "$app-web" "$app-sidekiq" "$app-streaming" #================================================= -# ADVERTISE SERVICE IN ADMIN PANEL +# INTEGRATE SERVICE IN YUNOHOST #================================================= -ynh_script_progression --message="Advertising service in admin panel..." --weight=3 +ynh_script_progression --message="Integrating service in YunoHost..." --weight=3 yunohost service add $app-web yunohost service add $app-sidekiq From f00ae6d6b926cf80236d98617b579c176beb8dfe Mon Sep 17 00:00:00 2001 From: yalh76 Date: Tue, 25 Feb 2020 00:17:48 +0100 Subject: [PATCH 27/32] ifx typo --- scripts/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install b/scripts/install index 60787e7..989954b 100644 --- a/scripts/install +++ b/scripts/install @@ -93,7 +93,7 @@ ynh_script_progression --message="Creating a PostgreSQL database..." --weight=5 # Create postgresql database db_name="${app}_production" db_user=$app -db_pwd=$(ynh_string_random --length30) +db_pwd=$(ynh_string_random --length=30) ynh_app_setting_set --app=$app --key=db_name --value=$db_name ynh_app_setting_set --app=$app --key=db_pwd --value=$db_pwd ynh_psql_test_if_first_run From 1eda887adea3599e18fb5e32b08d681820b91614 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 27 Feb 2020 20:05:27 +0100 Subject: [PATCH 28/32] Upgrade to 3.1.2 --- README.md | 2 +- README_fr.md | 2 +- check_process | 16 ++++++++++++++++ conf/app.src | 4 ++-- manifest.json | 2 +- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index dfce394..30abd8e 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to ## Overview Mastodon is a free, open-source social network. A decentralized alternative to commercial platforms, it avoids the risks of a single company monopolizing your communication. Pick a server that you trust — whichever you choose, you can interact with everyone else. Anyone can run their own Mastodon instance and participate in the social network seamlessly. -**Shipped version:** 3.1.1 +**Shipped version:** 3.1.2 ## Important points to read before installing diff --git a/README_fr.md b/README_fr.md index 2092750..78e6170 100644 --- a/README_fr.md +++ b/README_fr.md @@ -11,7 +11,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour ## Vue d'ensemble Mastodon est un réseau social gratuit et open source. Une alternative décentralisée aux plates-formes commerciales, elle évite les risques d'une seule société qui monopolise votre communication. Choisissez un serveur sur lequel vous faites confiance - selon votre choix, vous pouvez interagir avec tous les autres. N'importe qui peut exécuter sa propre instance de Mastodon et participer au réseau social de façon transparente. -**Version incluse:** 3.1.1 +**Version incluse:** 3.1.2 ## Points importants à lire avant l'installation diff --git a/check_process b/check_process index 21c17ae..951b1d3 100644 --- a/check_process +++ b/check_process @@ -12,8 +12,24 @@ setup_private=0 setup_public=1 upgrade=1 + # 2.7.4 + upgrade=1 from_commit=2987ccf8b3aa393dbef79b874dfe5839a0ee10da + # 2.8.2 + upgrade=1 from_commit=2697b734a663bd828d609d3626552611995e6c07 + # 2.8.3 + upgrade=1 from_commit=19299ae680dc851f03a37d49f4e80ca8521e615f + # 2.8.4 + upgrade=1 from_commit=a25e4569c8341ec94a39a57aaccad86379c8a630 + # 2.9.0 + upgrade=1 from_commit=8d0d3ea6611d788635251379e4a51d566b19d8db + # 2.9.2 + upgrade=1 from_commit=1ec1d44c6ed1daa5887367700f077286355a184f + # 2.9.3 + upgrade=1 from_commit=b9086682d2d7762d2882fff2cda4f5dceb73e32b # 3.0.1 upgrade=1 from_commit=168573d3d7dcc4306691f21d5b64819d1f6dd38c + # 3.1.1 + upgrade=1 from_commit=53aeae382eda1263d0ebf9a454bd1c3eeca8ddb1 backup_restore=1 multi_instance=1 # This test is no longer necessary since the version 2.7 (PR: https://github.com/YunoHost/yunohost/pull/304), you can still do it if your app could be installed with this version. diff --git a/conf/app.src b/conf/app.src index 5e78c4e..fc275ee 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.1.1.tar.gz -SOURCE_SUM=4d44458b28667e49bc0d69e7f344a953f869a0df5e41140d932982aa952ab13c +SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v3.1.2.tar.gz +SOURCE_SUM=c12fd8c1b426861825d37d2eab1d6356be05b2b321eae0c1b87f80fcc11b0da7 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 1a29d40..a38eac9 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "3.1.1~ynh1", + "version": "3.1.2~ynh1", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": [ From 2902d4120ef24cde642330eb3c7ff22b516c0b96 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Fri, 28 Feb 2020 02:55:28 +0100 Subject: [PATCH 29/32] Update check_process --- check_process | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/check_process b/check_process index 951b1d3..77b69b0 100644 --- a/check_process +++ b/check_process @@ -12,20 +12,6 @@ setup_private=0 setup_public=1 upgrade=1 - # 2.7.4 - upgrade=1 from_commit=2987ccf8b3aa393dbef79b874dfe5839a0ee10da - # 2.8.2 - upgrade=1 from_commit=2697b734a663bd828d609d3626552611995e6c07 - # 2.8.3 - upgrade=1 from_commit=19299ae680dc851f03a37d49f4e80ca8521e615f - # 2.8.4 - upgrade=1 from_commit=a25e4569c8341ec94a39a57aaccad86379c8a630 - # 2.9.0 - upgrade=1 from_commit=8d0d3ea6611d788635251379e4a51d566b19d8db - # 2.9.2 - upgrade=1 from_commit=1ec1d44c6ed1daa5887367700f077286355a184f - # 2.9.3 - upgrade=1 from_commit=b9086682d2d7762d2882fff2cda4f5dceb73e32b # 3.0.1 upgrade=1 from_commit=168573d3d7dcc4306691f21d5b64819d1f6dd38c # 3.1.1 From 6e4c2a232dae33095bb3f63350a97b8c5f03c459 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Wed, 18 Mar 2020 02:26:17 +0100 Subject: [PATCH 30/32] Add packages alternatives --- scripts/_common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 029d4ff..015c1e9 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -5,7 +5,7 @@ #================================================= # dependencies used by the app -pkg_dependencies="imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev redis-server redis-tools postgresql postgresql-contrib libidn11-dev libicu-dev libjemalloc-dev curl apt-transport-https" +pkg_dependencies="imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3|libgdbm6 libgdbm-dev redis-server redis-tools postgresql postgresql-contrib libidn11-dev libicu-dev libjemalloc-dev curl apt-transport-https" #================================================= # PERSONAL HELPERS From 0dcaee89832095688bd11d32bf4ab577f2083f25 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 19 Mar 2020 22:35:17 +0100 Subject: [PATCH 31/32] removing test upgrade from previous version for buster to work --- check_process | 4 ---- 1 file changed, 4 deletions(-) diff --git a/check_process b/check_process index 77b69b0..66a0890 100644 --- a/check_process +++ b/check_process @@ -12,10 +12,6 @@ setup_private=0 setup_public=1 upgrade=1 - # 3.0.1 - upgrade=1 from_commit=168573d3d7dcc4306691f21d5b64819d1f6dd38c - # 3.1.1 - upgrade=1 from_commit=53aeae382eda1263d0ebf9a454bd1c3eeca8ddb1 backup_restore=1 multi_instance=1 # This test is no longer necessary since the version 2.7 (PR: https://github.com/YunoHost/yunohost/pull/304), you can still do it if your app could be installed with this version. From ede37a92321a7a1d4b5f3dc7b22146aa4a74d120 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sat, 28 Mar 2020 20:25:37 +0100 Subject: [PATCH 32/32] Temporary workaround for https://github.com/tootsuite/mastodon/issues/13292 --- manifest.json | 2 +- scripts/install | 3 +++ scripts/upgrade | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index a38eac9..2792cd4 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "3.1.2~ynh1", + "version": "3.1.2~ynh2", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": [ diff --git a/scripts/install b/scripts/install index 989954b..7d7d4b8 100644 --- a/scripts/install +++ b/scripts/install @@ -110,6 +110,9 @@ ynh_app_setting_set --app=$app --key=final_path --value=$final_path mkdir $final_path ynh_setup_source --dest_dir="$final_path/live" +# Temporary workaround for https://github.com/tootsuite/mastodon/issues/13292 +ynh_replace_string --match_string="sidekiq-unique-jobs (6.0.18)" --replace_string="sidekiq-unique-jobs (6.0.20)" --target_file="$final_path/live/Gemfile.lock" + #================================================= # NGINX CONFIGURATION #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 32426a2..0bc44b3 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -184,6 +184,10 @@ then rsync -a "$final_path/live/.env.production" "$tmpdir/." ynh_secure_remove --file="$final_path/live/" ynh_setup_source --dest_dir="$final_path/live" + + # Temporary workaround for https://github.com/tootsuite/mastodon/issues/13292 + ynh_replace_string --match_string="sidekiq-unique-jobs (6.0.18)" --replace_string="sidekiq-unique-jobs (6.0.20)" --target_file="$final_path/live/Gemfile.lock" + if [ -d "$tmpdir/system" ]; then rsync -a "$tmpdir/system" "$final_path/live/public/." fi