1 Commits

12 changed files with 320 additions and 128 deletions

View File

@ -1,41 +1,50 @@
<!-- <!--
N.B.: This README was automatically generated by <https://github.com/YunoHost/apps_tools/blob/main/readme_generator> N.B.: This README was automatically generated by https://github.com/YunoHost/apps/tree/master/tools/README-generator
It shall NOT be edited by hand. It shall NOT be edited by hand.
--> -->
<h1> # Send for YunoHost
<img src="https://raw.githubusercontent.com/YunoHost/apps/main/logos/send.png" width="32px" alt="Logo of Send">
Send, packaged for YunoHost
</h1>
File sharing which allows to send encrypted files [![Integration level](https://dash.yunohost.org/integration/send.svg)](https://dash.yunohost.org/appci/app/send) ![Working status](https://ci-apps.yunohost.org/ci/badges/send.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/send.maintain.svg)
[![🌐 Official app website](https://img.shields.io/badge/Official_app_website-darkgreen?style=for-the-badge)](https://send.vis.ee/) [![Install Send with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=send)
[![App Demo](https://img.shields.io/badge/App_Demo-blue?style=for-the-badge)](https://send.vis.ee/)
[![Version: 3.4.25~ynh1](https://img.shields.io/badge/Version-3.4.25~ynh1-rgba(0,150,0,1)?style=for-the-badge)](https://ci-apps.yunohost.org/ci/apps/send/)
<div align="center"> *[Lire ce readme en français.](./README_fr.md)*
<a href="https://apps.yunohost.org/app/send"><img height="100px" src="https://github.com/YunoHost/yunohost-artwork/raw/refs/heads/main/badges/neopossum-badges/badge_more_info_on_the_appstore.svg"/></a>
<a href="https://github.com/YunoHost-Apps/send_ynh/issues"><img height="100px" src="https://github.com/YunoHost/yunohost-artwork/raw/refs/heads/main/badges/neopossum-badges/badge_report_an_issue.svg"/></a>
</div>
## 📦 Developer info > *This package allows you to install Send quickly and simply on a YunoHost server.
If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.*
[![Automatic tests level](https://apps.yunohost.org/badge/cilevel/send)](https://ci-apps.yunohost.org/ci/apps/send/) ## Overview
🛠️ Upstream Send repository: <https://github.com/timvisee/send> A fork of Mozilla's Firefox Send. Mozilla discontinued Send, this fork is a community effort to keep the project up-to-date and alive.
Send is a file sharing experiment which allows you to send encrypted files to other users.
Pull request are welcome and should target the [`testing` branch](https://github.com/YunoHost-Apps/send_ynh/tree/testing).
The `testing` branch can be tested using: **Shipped version:** 3.4.23~ynh3
```
# fresh install:
sudo yunohost app install https://github.com/YunoHost-Apps/send_ynh/tree/testing
# upgrade an existing install: **Demo:** https://send.vis.ee/
sudo yunohost app upgrade send -u https://github.com/YunoHost-Apps/send_ynh/tree/testing
## Screenshots
![Screenshot of Send](./doc/screenshots/screenshot.png)
## Documentation and resources
* Official app website: <https://send.vis.ee/>
* Upstream app code repository: <https://github.com/timvisee/send>
* YunoHost Store: <https://apps.yunohost.org/app/send>
* Report a bug: <https://github.com/YunoHost-Apps/send_ynh/issues>
## Developer info
Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/send_ynh/tree/testing).
To try the testing branch, please proceed like that.
``` bash
sudo yunohost app install https://github.com/YunoHost-Apps/send_ynh/tree/testing --debug
or
sudo yunohost app upgrade send -u https://github.com/YunoHost-Apps/send_ynh/tree/testing --debug
``` ```
### 📚 App packaging documentation **More info regarding app packaging:** <https://yunohost.org/packaging_apps>
Please see <https://doc.yunohost.org/packaging_apps> for more information.

50
README_fr.md Normal file
View File

@ -0,0 +1,50 @@
<!--
N.B.: This README was automatically generated by https://github.com/YunoHost/apps/tree/master/tools/README-generator
It shall NOT be edited by hand.
-->
# Send pour YunoHost
[![Niveau dintégration](https://dash.yunohost.org/integration/send.svg)](https://dash.yunohost.org/appci/app/send) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/send.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/send.maintain.svg)
[![Installer Send avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=send)
*[Read this readme in english.](./README.md)*
> *Ce package vous permet dinstaller Send rapidement et simplement sur un serveur YunoHost.
Si vous navez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment linstaller et en profiter.*
## Vue densemble
Un fork du Firefox Send de Mozilla. Mozilla a arrêté Send, et ce fork est un effort de la communauté pour maintenir le projet en vie.
Send est une expérience de partage de fichiers qui permet d'envoyer des fichiers chiffrés à d'autres utilisateurs.
**Version incluse :** 3.4.23~ynh3
**Démo :** https://send.vis.ee/
## Captures décran
![Capture décran de Send](./doc/screenshots/screenshot.png)
## Documentations et ressources
* Site officiel de lapp : <https://send.vis.ee/>
* Dépôt de code officiel de lapp : <https://github.com/timvisee/send>
* YunoHost Store: <https://apps.yunohost.org/app/send>
* Signaler un bug : <https://github.com/YunoHost-Apps/send_ynh/issues>
## Informations pour les développeurs
Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/send_ynh/tree/testing).
Pour essayer la branche testing, procédez comme suit.
``` bash
sudo yunohost app install https://github.com/YunoHost-Apps/send_ynh/tree/testing --debug
ou
sudo yunohost app upgrade send -u https://github.com/YunoHost-Apps/send_ynh/tree/testing --debug
```
**Plus dinfos sur le packaging dapplications :** <https://yunohost.org/packaging_apps>

View File

@ -1,6 +0,0 @@
NODE_ENV=production
BASE_URL=https://__DOMAIN__
IP_ADDRESS=127.0.0.7
PORT=__PORT__
REDIS_DB=__REDIS_DB__
FILE_DIR=__DATA_DIR__

View File

@ -7,9 +7,9 @@ Type=simple
User=__APP__ User=__APP__
Group=__APP__ Group=__APP__
WorkingDirectory=__INSTALL_DIR__/ WorkingDirectory=__INSTALL_DIR__/
EnvironmentFile=__INSTALL_DIR__/.env Environment="NODE_ENV=production"
Environment="PATH=__PATH_WITH_NODEJS__" Environment="__YNH_NODE_LOAD_PATH__"
ExecStart=__NODEJS_DIR__/node __INSTALL_DIR__/server/bin/prod.js ExecStart=__YNH_NODE__ __INSTALL_DIR__/server/bin/prod.js
Restart=always Restart=always
# Sandboxing options to harden security # Sandboxing options to harden security

View File

@ -7,9 +7,9 @@ name = "Send"
description.en = "File sharing which allows to send encrypted files" description.en = "File sharing which allows to send encrypted files"
description.fr = "Partage de fichiers qui permet d'envoyer des fichiers chiffrés" description.fr = "Partage de fichiers qui permet d'envoyer des fichiers chiffrés"
version = "3.4.25~ynh1" version = "3.4.23~ynh3"
maintainers = [] maintainers = ["eric_G"]
[upstream] [upstream]
license = "MPL-2.0" license = "MPL-2.0"
@ -18,8 +18,7 @@ demo = "https://send.vis.ee/"
code = "https://github.com/timvisee/send" code = "https://github.com/timvisee/send"
[integration] [integration]
yunohost = ">= 12.0.9" yunohost = ">= 11.2"
helpers_version = "2.1"
architectures = ["amd64", "arm64", "armhf"] architectures = ["amd64", "arm64", "armhf"]
multi_instance = true multi_instance = true
@ -43,8 +42,8 @@ ram.runtime = "50M"
[resources] [resources]
[resources.sources.main] [resources.sources.main]
url = "https://github.com/timvisee/send/archive/refs/tags/v3.4.25.tar.gz" url = "https://github.com/timvisee/send/archive/refs/tags/v3.4.23.tar.gz"
sha256 = "826224832ac8facdd368f9960d99afdef0a549d92b003af1d93bc271b6fa036a" sha256 = "eed0e391050842413d300133a64cc76829e3ba1d69e113f6e5fdc3eda777fa2a"
autoupdate.strategy = "latest_github_tag" autoupdate.strategy = "latest_github_tag"
[resources.ports] [resources.ports]
@ -53,23 +52,18 @@ ram.runtime = "50M"
[resources.install_dir] [resources.install_dir]
[resources.data_dir]
[resources.permissions] [resources.permissions]
main.url = "/" main.url = "/"
main.additional_urls = ["/api/upload"] main.additional_urls = ["/api/upload"]
api.url = "/api" api.url = "/api"
api.allowed = "visitors" api.allowed = "visitors"
api.auth_header = false api.auth_header = false
api.show_tile = false api.show_tile = false
api.protected = true api.protected = true
download.url = "/download" download.url = "/download"
download.allowed = "visitors" download.allowed = "visitors"
download.auth_header = false download.auth_header = false
download.show_tile = false download.show_tile = false
download.additional_urls = [ "re:^__DOMAIN__/.*.css$", "re:^__DOMAIN__/.*.js$", "re:^__DOMAIN__/.*.svg$", "re:^__DOMAIN__/.*.woff2$", "re:^__DOMAIN__/favicon.*.png$" ] download.additional_urls = [ "re:^__DOMAIN__/.*.css$", "re:^__DOMAIN__/.*.js$", "re:^__DOMAIN__/.*.svg$", "re:^__DOMAIN__/.*.woff2$", "re:^__DOMAIN__/favicon.*.png$" ]
[resources.apt]
packages = "redis-server"

View File

@ -1,7 +1,57 @@
#!/bin/bash #!/bin/bash
#================================================= #=================================================
# COMMON VARIABLES AND CUSTOM HELPERS # COMMON VARIABLES
#================================================= #=================================================
nodejs_version="16" nodejs_version=16
#=================================================
# PERSONAL HELPERS
#=================================================
#=================================================
# EXPERIMENTAL HELPERS
#=================================================
#=================================================
# FUTURE OFFICIAL HELPERS
#=================================================
# get the first available redis database
#
# usage: ynh_redis_get_free_db
# | returns: the database number to use
ynh_redis_get_free_db() {
local result max db
result=$(redis-cli INFO keyspace)
# get the num
max=$(cat /etc/redis/redis.conf | grep ^databases | grep -Eow "[0-9]+")
db=0
# default Debian setting is 15 databases
for i in $(seq 0 "$max")
do
if ! echo "$result" | grep -q "db$i"
then
db=$i
break 1
fi
db=-1
done
test "$db" -eq -1 && ynh_die --message="No available Redis databases..."
echo "$db"
}
# Create a master password and set up global settings
# Please always call this script in install and restore scripts
#
# usage: ynh_redis_remove_db database
# | arg: database - the database to erase
ynh_redis_remove_db() {
local db=$1
redis-cli -n "$db" flushall
}

View File

@ -1,32 +1,40 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
# 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/_common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
ynh_print_info "Declaring files to be backed up..." #=================================================
# DECLARE DATA AND CONF FILES TO BACKUP
#=================================================
ynh_print_info --message="Declaring files to be backed up..."
#================================================= #=================================================
# BACKUP THE APP MAIN DIR # BACKUP THE APP MAIN DIR
#================================================= #=================================================
ynh_backup "$install_dir" ynh_backup --src_path="$install_dir"
#================================================= #=================================================
# BACKUP THE DATA DIR # BACKUP THE NGINX CONFIGURATION
#================================================= #=================================================
ynh_backup "$data_dir" ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
#================================================= #=================================================
# SYSTEM CONFIGURATION # BACKUP SYSTEMD
#================================================= #=================================================
ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" ynh_backup --src_path="/etc/systemd/system/$app.service"
ynh_backup "/etc/systemd/system/$app.service"
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_print_info "Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."

View File

@ -1,38 +1,55 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#=================================================
# STANDARD MODIFICATIONS
#================================================= #=================================================
# STOP SYSTEMD SERVICE # STOP SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression "Stopping $app's systemd service..." ynh_script_progression --message="Stopping a systemd service..." --weight=1
ynh_systemctl --service="$app" --action="stop" --log_path="systemd" ynh_systemd_action --service_name="$app" --action="stop"
#================================================= #=================================================
# MODIFY URL IN NGINX CONF # MODIFY URL IN NGINX CONF
#================================================= #=================================================
ynh_script_progression "Updating NGINX web server configuration..." ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1
ynh_config_change_url_nginx ynh_change_url_nginx_config
#=================================================
# SPECIFIC MODIFICATIONS
#================================================= #=================================================
# ADD A CONFIGURATION # ADD A CONFIGURATION
#================================================= #=================================================
ynh_script_progression "Adding $app's configuration..." ynh_script_progression --message="Adding a configuration file..." --weight=2
ynh_config_add --template="config.js" --destination="$install_dir/server/config.js" domain=$new_domain
ynh_add_config --template="../conf/config.js" --destination="$install_dir/server/config.js"
chmod 400 "$install_dir/server/config.js"
chown "$app:$app" "$install_dir/server/config.js"
#=================================================
# GENERIC FINALISATION
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression "Starting $app's systemd service..." ynh_script_progression --message="Starting a systemd service..." --weight=1
ynh_systemctl --service="$app" --action="start" --log_path="systemd" # Start a systemd service
ynh_systemd_action --service_name="$app" --action="start" --log_path="systemd"
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression "Change of URL completed for $app" ynh_script_progression --message="Change of URL completed for $app" --last

View File

@ -1,69 +1,89 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#================================================= #=================================================
# INSTALL DEPENDENCIES # INSTALL DEPENDENCIES
#================================================= #=================================================
ynh_script_progression "Installing dependencies..." ynh_script_progression --message="Installing dependencies..." --weight=20
ynh_nodejs_install ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version"
#================================================= #=================================================
# CREATE A REDIS DATABASE # CREATE A REDIS DATABASE
#================================================= #=================================================
ynh_script_progression "Creating a Redis database..." ynh_script_progression --message="Creating a Redis database..." --weight=5
# Configure redis
redis_db=$(ynh_redis_get_free_db) redis_db=$(ynh_redis_get_free_db)
ynh_app_setting_set --key=redis_db --value="$redis_db" ynh_app_setting_set --app="$app" --key=redis_db --value="$redis_db"
#================================================= #=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE # DOWNLOAD, CHECK AND UNPACK SOURCE
#================================================= #=================================================
ynh_script_progression "Setting up source files..." ynh_script_progression --message="Setting up source files..." --weight=2
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$install_dir" ynh_setup_source --dest_dir="$install_dir"
chmod -R o-rwx "$install_dir"
chown -R "$app:www-data" "$install_dir"
chmod +x "$install_dir/server/bin/prod.js" chmod +x "$install_dir/server/bin/prod.js"
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
#================================================= #=================================================
ynh_script_progression "Configuring NGINX web server..." ynh_script_progression --message="Configuring NGINX web server..." --weight=2
ynh_config_add_nginx # Create a dedicated NGINX config
ynh_add_nginx_config
ynh_config_add_systemd env_path="$PATH"
# Create a dedicated systemd config
ynh_add_systemd_config
yunohost service add "$app" --description="Simple, private file sharing" --log="/var/log/$app/$app.log" yunohost service add "$app" --description="Simple, private file sharing" --log="/var/log/$app/$app.log"
#================================================= #=================================================
# ADD A CONFIGURATION # ADD A CONFIGURATION
#================================================= #=================================================
ynh_script_progression "Adding $app's configuration..." ynh_script_progression --message="Adding a configuration file..." --weight=2
ynh_config_add --template=".env" --destination="$install_dir/.env" ynh_add_config --template="config.js" --destination="$install_dir/server/config.js"
chmod 400 "$install_dir/server/config.js"
chown "$app:" "$install_dir/server/config.js"
#=================================================
# SPECIFIC SETUP
#================================================= #=================================================
# BUILD APP # BUILD APP
#================================================= #=================================================
ynh_script_progression "Building app... (this will take some time and resources!)" ynh_script_progression --message="Building app... (this will take some time and resources!)" --weight=20
pushd "$install_dir" pushd "$install_dir"
ynh_hide_warnings ynh_exec_as_app npm install ynh_use_nodejs
ynh_hide_warnings ynh_exec_as_app npm run build ynh_exec_warn_less ynh_exec_as "$app" env "$ynh_node_load_PATH" "$ynh_npm" install
ynh_exec_warn_less ynh_exec_as "$app" env "$ynh_node_load_PATH" "$ynh_npm" run build
popd popd
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression "Starting $app's systemd service..." ynh_script_progression --message="Starting a systemd service..." --weight=2
ynh_systemctl --service="$app" --action="start" --log_path="systemd" # Start a systemd service
ynh_systemd_action --service_name="$app" --action="start" --log_path="systemd"
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression "Installation of $app completed" ynh_script_progression --message="Installation of $app completed" --last

View File

@ -1,27 +1,39 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#================================================= #=================================================
# REMOVE SYSTEM CONFIGURATIONS # STANDARD REMOVE
#=================================================
# REMOVE SERVICE INTEGRATION IN YUNOHOST
#================================================= #=================================================
ynh_script_progression "Removing system configurations related to $app..."
if ynh_hide_warnings yunohost service status "$app" >/dev/null; then # 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" >/dev/null
then
ynh_script_progression --message="Removing $app service integration..." --weight=1
yunohost service remove "$app" yunohost service remove "$app"
fi fi
ynh_config_remove_systemd # Remove the dedicated systemd config
ynh_remove_systemd_config
ynh_redis_remove_db "$redis_db" ynh_redis_remove_db "$redis_db"
ynh_config_remove_nginx # Remove the dedicated NGINX config
ynh_remove_nginx_config
ynh_nodejs_remove ynh_remove_nodejs
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression "Removal of $app completed" ynh_script_progression --message="Removal of $app completed" --last

View File

@ -1,34 +1,38 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
# 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/_common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#================================================= #=================================================
# RESTORE THE APP MAIN DIR # RESTORE THE APP MAIN DIR
#================================================= #=================================================
ynh_script_progression "Restoring the app main directory..." ynh_script_progression --message="Restoring the app main directory..." --weight=6
ynh_restore "$install_dir" ynh_restore_file --origin_path="$install_dir"
chmod -R o-rwx "$install_dir"
chown -R "$app:www-data" "$install_dir"
chmod +x "$install_dir/server/bin/prod.js" chmod +x "$install_dir/server/bin/prod.js"
#================================================= #=================================================
# RESTORE THE DATA DIRECTORY # SPECIFIC RESTORATION
#=================================================
ynh_script_progression "Restoring the data directory..."
ynh_restore "$data_dir"
#================================================= #=================================================
# REINSTALL DEPENDENCIES # REINSTALL DEPENDENCIES
#================================================= #=================================================
ynh_script_progression "Reinstalling dependencies..." ynh_script_progression --message="Reinstalling dependencies..." --weight=7
ynh_nodejs_install ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version"
ynh_restore "/etc/nginx/conf.d/$domain.d/$app.conf" ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_restore "/etc/systemd/system/$app.service" ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
systemctl enable "$app.service" --quiet systemctl enable "$app.service" --quiet
yunohost service add "$app" --description="Simple, private file sharing" --log="/var/log/$app/$app.log" yunohost service add "$app" --description="Simple, private file sharing" --log="/var/log/$app/$app.log"
@ -36,14 +40,14 @@ yunohost service add "$app" --description="Simple, private file sharing" --log="
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression "Starting $app's systemd service..." ynh_script_progression --message="Starting a systemd service..." --weight=1
ynh_systemctl --service="$app" --action="start" --log_path="systemd" ynh_systemd_action --service_name="$app" --action="start" --log_path="systemd"
ynh_systemctl --service=nginx --action=reload ynh_systemd_action --service_name=nginx --action=reload
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression "Restoration completed for $app" ynh_script_progression --message="Restoration completed for $app" --last

View File

@ -1,75 +1,109 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#=================================================
# CHECK VERSION
#=================================================
upgrade_type=$(ynh_check_app_version_changed)
#=================================================
# STANDARD UPGRADE STEPS
#================================================= #=================================================
# STOP SYSTEMD SERVICE # STOP SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression "Stopping $app's systemd service..." ynh_script_progression --message="Stopping a systemd service..." --weight=1
ynh_systemctl --service="$app" --action="stop" --log_path="systemd" ynh_systemd_action --service_name="$app" --action="stop" --log_path="systemd"
#================================================= #=================================================
# ENSURE DOWNWARD COMPATIBILITY # ENSURE DOWNWARD COMPATIBILITY
#================================================= #=================================================
ynh_script_progression "Ensuring downward compatibility..." ynh_script_progression --message="Ensuring downward compatibility..."
ynh_config_remove_logrotate ynh_remove_logrotate
#================================================= #=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE # DOWNLOAD, CHECK AND UNPACK SOURCE
#================================================= #=================================================
ynh_script_progression "Upgrading source files..."
ynh_setup_source --dest_dir="$install_dir" --keep=".env" --full_replace if [ "$upgrade_type" == "UPGRADE_APP" ]
then
ynh_script_progression --message="Upgrading source files..." --weight=10
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$install_dir" --full_replace=1 --keep="server/config.js"
fi
chmod -R o-rwx "$install_dir"
chown -R "$app:www-data" "$install_dir"
chmod +x "$install_dir/server/bin/prod.js" chmod +x "$install_dir/server/bin/prod.js"
#================================================= #=================================================
# UPGRADE DEPENDENCIES # UPGRADE DEPENDENCIES
#================================================= #=================================================
ynh_script_progression "Upgrading dependencies..." ynh_script_progression --message="Upgrading dependencies..." --weight=18
ynh_nodejs_install ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version"
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
#================================================= #=================================================
ynh_script_progression "Upgrading NGINX web server configuration..." ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=2
ynh_config_add_nginx # Create a dedicated NGINX config
ynh_add_nginx_config
ynh_config_add_systemd env_path="$PATH"
# Create a dedicated systemd config
ynh_add_systemd_config
yunohost service add "$app" --description="Simple, private file sharing" --log="/var/log/$app/$app.log" yunohost service add "$app" --description="Simple, private file sharing" --log="/var/log/$app/$app.log"
#================================================= #=================================================
# UPDATE A CONFIG FILE # UPDATE A CONFIG FILE
#================================================= #=================================================
ynh_script_progression "Updating configuration..." ynh_script_progression --message="Updating a configuration file..."
ynh_config_add --template=".env" --destination="$install_dir/.env" ynh_add_config --template="config.js" --destination="$install_dir/server/config.js"
chmod 400 "$install_dir/server/config.js"
chown "$app:" "$install_dir/server/config.js"
#=================================================
# SPECIFIC UPGRADE
#================================================= #=================================================
# BUILD APP # BUILD APP
#================================================= #=================================================
ynh_script_progression "Building app... (this will take some time and resources!)"
pushd "$install_dir" if [ "$upgrade_type" == "UPGRADE_APP" ]
ynh_hide_warnings ynh_exec_as_app npm install then
ynh_hide_warnings ynh_exec_as_app npm run build ynh_script_progression --message="Building app... (this will take some time and resources!)" --weight=16
popd
pushd "$install_dir"
ynh_use_nodejs
ynh_exec_warn_less ynh_exec_as "$app" env "$ynh_node_load_PATH" "$ynh_npm" install
ynh_exec_warn_less ynh_exec_as "$app" env "$ynh_node_load_PATH" "$ynh_npm" run build
popd
fi
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression "Starting $app's systemd service..." ynh_script_progression --message="Starting a systemd service..." --weight=1
ynh_systemctl --service="$app" --action="start" --log_path="systemd" ynh_systemd_action --service_name="$app" --action="start" --log_path="systemd"
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================
ynh_script_progression "Upgrade of $app completed" ynh_script_progression --message="Upgrade of $app completed" --last