mirror of
https://github.com/YunoHost-Apps/distbin_ynh.git
synced 2024-09-03 18:26:10 +02:00
commit
153a8cd023
8 changed files with 97 additions and 37 deletions
|
@ -26,7 +26,7 @@
|
||||||
Level 3=auto
|
Level 3=auto
|
||||||
# Level 4: If the app supports LDAP and SSOwat, turn level 4 to '1' and add a link to an issue or a part of your code to show it.
|
# Level 4: If the app supports LDAP and SSOwat, turn level 4 to '1' and add a link to an issue or a part of your code to show it.
|
||||||
# If the app does not use LDAP nor SSOwat, and can't use them, turn level 4 to 'na' and explain as well.
|
# If the app does not use LDAP nor SSOwat, and can't use them, turn level 4 to 'na' and explain as well.
|
||||||
# no ldap support
|
# https://github.com/YunoHost-Apps/distbin_ynh/issues/18
|
||||||
Level 4=na
|
Level 4=na
|
||||||
Level 5=auto
|
Level 5=auto
|
||||||
Level 6=auto
|
Level 6=auto
|
||||||
|
|
14
conf/.env
Normal file
14
conf/.env
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# The path to NODEJS
|
||||||
|
PATH=__NODEJS_PATH__
|
||||||
|
|
||||||
|
# The port used by the application
|
||||||
|
PORT=__PORT__
|
||||||
|
|
||||||
|
# The directory where is store the database
|
||||||
|
DB_DIR=__FINALPATH__/distbin-db
|
||||||
|
|
||||||
|
# The external URL
|
||||||
|
EXTERNAL_URL=https://__DOMAIN_URI__
|
||||||
|
|
||||||
|
# The Node Environnement
|
||||||
|
NODE_ENV=production
|
|
@ -6,12 +6,9 @@ After=network.target
|
||||||
Type=simple
|
Type=simple
|
||||||
User=__APP__
|
User=__APP__
|
||||||
Group=__APP__
|
Group=__APP__
|
||||||
Environment="PATH=__NODEJS_PATH__"
|
EnvironmentFile=__FINALPATH__/.env
|
||||||
Environment="PORT=__PORT__"
|
WorkingDirectory=__FINALPATH__
|
||||||
Environment="DB_DIR=__FINALPATH__/db"
|
ExecStart=/bin/sh -c 'node ./dist/bin/server >> /var/log/__APP__/__APP__.log 2>&1'
|
||||||
Environment="NODE_ENV=production"
|
|
||||||
WorkingDirectory=__FINALPATH__/
|
|
||||||
ExecStart=/bin/sh -c '__FINALPATH__/node_modules/.bin/ts-node --project __FINALPATH__/tsconfig.json __FINALPATH__/bin/server.ts >> /var/log/__APP__/__APP__.log 2>&1'
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"en": "Distributed pastebin with ActivityPub.",
|
"en": "Distributed pastebin with ActivityPub.",
|
||||||
"fr": "Pastebin distribué utilisant le protocole ActivityPub."
|
"fr": "Pastebin distribué utilisant le protocole ActivityPub."
|
||||||
},
|
},
|
||||||
"version": "1.0~ynh3",
|
"version": "1.0~ynh4",
|
||||||
"url": "https://example.com",
|
"url": "https://example.com",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"maintainer": {
|
"maintainer": {
|
||||||
|
|
|
@ -90,9 +90,31 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC MODIFICATIONS
|
# SPECIFIC MODIFICATIONS
|
||||||
#=================================================
|
#=================================================
|
||||||
# ...
|
# STOP SERVICE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
|
ynh_systemd_action --action=stop --service_name=$app
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# MODIFY A CONFIG FILE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Change the URL in the configuration file
|
||||||
|
ynh_replace_string "EXTERNAL_URL=.*" "EXTERNAL_URL=https://$new_domain$new_path" "$final_path/.env"
|
||||||
|
|
||||||
|
### Verify the checksum of a file, stored by `ynh_store_file_checksum` in the install script.
|
||||||
|
### And create a backup of this file if the checksum is different. So the file will be backed up if the admin had modified it.
|
||||||
|
ynh_backup_if_checksum_is_different "$final_path/.env"
|
||||||
|
# Recalculate and store the checksum of the file for the next upgrade.
|
||||||
|
ynh_store_file_checksum "$final_path/.env"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# START SERVICE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_systemd_action --action=start --service_name=$app
|
||||||
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALISATION
|
# GENERIC FINALISATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -16,6 +16,7 @@ source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
ynh_clean_setup () {
|
ynh_clean_setup () {
|
||||||
### Remove this function if there's nothing to clean before calling the remove script.
|
### Remove this function if there's nothing to clean before calling the remove script.
|
||||||
|
read -p "Press any key..."
|
||||||
ynh_clean_check_starting
|
ynh_clean_check_starting
|
||||||
}
|
}
|
||||||
# Exit if an error occurs during the execution of the script
|
# Exit if an error occurs during the execution of the script
|
||||||
|
@ -97,6 +98,7 @@ ynh_app_setting_set $app port $port
|
||||||
### - As well as the section "REINSTALL DEPENDENCIES" in the restore script
|
### - As well as the section "REINSTALL DEPENDENCIES" in the restore script
|
||||||
### - And the section "UPGRADE DEPENDENCIES" in the upgrade script
|
### - And the section "UPGRADE DEPENDENCIES" in the upgrade script
|
||||||
|
|
||||||
|
ynh_install_app_dependencies ca-certificates
|
||||||
ynh_install_nodejs 8
|
ynh_install_nodejs 8
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -176,7 +178,7 @@ chown -R "$app":"$app" "/var/log/$app"
|
||||||
# CREATE DB FOLDER
|
# CREATE DB FOLDER
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
mkdir -p "$final_path/db"
|
mkdir -p "$final_path/distbin-db"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# MAKE SETUP
|
# MAKE SETUP
|
||||||
|
@ -185,12 +187,16 @@ mkdir -p "$final_path/db"
|
||||||
chown -R "$app":"$app" "$final_path"
|
chown -R "$app":"$app" "$final_path"
|
||||||
pushd $final_path
|
pushd $final_path
|
||||||
ynh_use_nodejs
|
ynh_use_nodejs
|
||||||
sudo -u $app env PATH=$PATH:$nodejs_path npm add hoek@^4.2.1 --save --production
|
sudo -u $app env PATH=$PATH npm install --ignore-scripts
|
||||||
sudo -u $app env PATH=$PATH:$nodejs_path npm install ts-node
|
sudo -u $app env PATH=$PATH npm run build
|
||||||
sudo -u $app env PATH=$PATH:$nodejs_path npm install --production
|
cp package* dist/
|
||||||
sudo -u $app env PATH=$PATH:$nodejs_path npm audit fix
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
pushd $final_path/dist
|
||||||
|
sudo -u $app env PATH=$PATH npm install --ignore-scripts --production
|
||||||
|
popd
|
||||||
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -207,8 +213,6 @@ popd
|
||||||
### - And the section "SETUP SYSTEMD" in the upgrade script
|
### - And the section "SETUP SYSTEMD" in the upgrade script
|
||||||
|
|
||||||
# Create a dedicated systemd config
|
# Create a dedicated systemd config
|
||||||
ynh_replace_string "__NODEJS_PATH__" "$nodejs_path" "../conf/systemd.service"
|
|
||||||
ynh_replace_string "__PORT__" "$port" "../conf/systemd.service"
|
|
||||||
ynh_add_systemd_config
|
ynh_add_systemd_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -247,7 +251,12 @@ ynh_add_systemd_config
|
||||||
### `ynh_replace_string` is used to replace a string in a file.
|
### `ynh_replace_string` is used to replace a string in a file.
|
||||||
### (It's compatible with sed regular expressions syntax)
|
### (It's compatible with sed regular expressions syntax)
|
||||||
|
|
||||||
#ynh_replace_string "match_string" "replace_string" "$final_path/CONFIG_FILE"
|
cp "../conf/.env" "$final_path/.env"
|
||||||
|
|
||||||
|
ynh_replace_string "__NODEJS_PATH__" "$nodejs_path" "$final_path/.env"
|
||||||
|
ynh_replace_string "__PORT__" "$port" "$final_path/.env"
|
||||||
|
ynh_replace_string "__DOMAIN_URI__" "$domain$path_url" "$final_path/.env"
|
||||||
|
ynh_replace_string "__FINALPATH__" "$final_path" "$final_path/.env"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STORE THE CONFIG FILE CHECKSUM
|
# STORE THE CONFIG FILE CHECKSUM
|
||||||
|
@ -258,7 +267,7 @@ ynh_add_systemd_config
|
||||||
### you can make a backup of this file before modifying it again if the admin had modified it.
|
### you can make a backup of this file before modifying it again if the admin had modified it.
|
||||||
|
|
||||||
# Calculate and store the config file checksum into the app settings
|
# Calculate and store the config file checksum into the app settings
|
||||||
#ynh_store_file_checksum "$final_path/package.json"
|
ynh_store_file_checksum "$final_path/.env"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALIZATION
|
# GENERIC FINALIZATION
|
||||||
|
@ -271,7 +280,7 @@ ynh_add_systemd_config
|
||||||
### that really need such authorization.
|
### that really need such authorization.
|
||||||
|
|
||||||
# Set permissions to app files
|
# Set permissions to app files
|
||||||
#chown -R root: $final_path
|
chown -R "$app":"$app" "$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP LOGROTATE
|
# SETUP LOGROTATE
|
||||||
|
|
|
@ -93,7 +93,7 @@ chown -R $app:$app /var/log/$app
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Define and install dependencies
|
# Define and install dependencies
|
||||||
#ynh_install_app_dependencies
|
ynh_install_app_dependencies ca-certificates
|
||||||
ynh_install_nodejs 8
|
ynh_install_nodejs 8
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -64,12 +64,6 @@ ynh_clean_setup () {
|
||||||
# Exit if an error occurs during the execution of the script
|
# Exit if an error occurs during the execution of the script
|
||||||
ynh_abort_if_errors
|
ynh_abort_if_errors
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# STOP SERVICE
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
ynh_systemd_action --action=stop --service_name=$app
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CHECK THE PATH
|
# CHECK THE PATH
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -77,6 +71,12 @@ ynh_systemd_action --action=stop --service_name=$app
|
||||||
# Normalize the URL path syntax
|
# Normalize the URL path syntax
|
||||||
path_url=$(ynh_normalize_url_path $path_url)
|
path_url=$(ynh_normalize_url_path $path_url)
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# STOP SERVICE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
ynh_systemd_action --action=stop --service_name=$app
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD UPGRADE STEPS
|
# STANDARD UPGRADE STEPS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -101,7 +101,7 @@ ynh_add_nginx_config
|
||||||
# UPGRADE DEPENDENCIES
|
# UPGRADE DEPENDENCIES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
#ynh_install_app_dependencies deb1 deb2
|
ynh_install_app_dependencies ca-certificates
|
||||||
ynh_install_nodejs 8
|
ynh_install_nodejs 8
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -120,13 +120,15 @@ ynh_system_user_create "$app" "$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC UPGRADE
|
# SPECIFIC UPGRADE
|
||||||
#=================================================
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CREATE DB FOLDER
|
# CREATE DB FOLDER
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
mkdir -p "$final_path/db"
|
DIRECTORY="$final_path/db"
|
||||||
|
#Move old db
|
||||||
|
if [ -d "$DIRECTORY" ]; then
|
||||||
|
mv "$final_path/db" "$final_path/distbin-db"
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# MAKE INSTALL
|
# MAKE INSTALL
|
||||||
|
@ -135,16 +137,34 @@ mkdir -p "$final_path/db"
|
||||||
chown -R "$app":"$app" "$final_path"
|
chown -R "$app":"$app" "$final_path"
|
||||||
pushd $final_path
|
pushd $final_path
|
||||||
ynh_use_nodejs
|
ynh_use_nodejs
|
||||||
sudo -u $app env PATH=$PATH:$nodejs_path npm update --production
|
sudo -u $app env PATH=$PATH npm install --ignore-scripts
|
||||||
sudo -u $app env PATH=$PATH:$nodejs_path npm install --production
|
sudo -u $app env PATH=$PATH npm run build
|
||||||
sudo -u $app env PATH=$PATH:$nodejs_path npm audit fix
|
cp package* dist/
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
pushd $final_path/dist
|
||||||
|
sudo -u $app env PATH=$PATH npm install --ignore-scripts --production
|
||||||
|
popd
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# MODIFY A CONFIG FILE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
### `ynh_replace_string` is used to replace a string in a file.
|
||||||
|
### (It's compatible with sed regular expressions syntax)
|
||||||
|
|
||||||
|
cp "../conf/.env" "$final_path/.env"
|
||||||
|
|
||||||
|
ynh_replace_string "__NODEJS_PATH__" "$nodejs_path" "$final_path/.env"
|
||||||
|
ynh_replace_string "__PORT__" "$port" "$final_path/.env"
|
||||||
|
ynh_replace_string "__DOMAIN_URI__" "$domain$path_url" "$final_path/.env"
|
||||||
|
ynh_replace_string "__FINALPATH__" "$final_path" "$final_path/.env"
|
||||||
|
|
||||||
### Verify the checksum of a file, stored by `ynh_store_file_checksum` in the install script.
|
### Verify the checksum of a file, stored by `ynh_store_file_checksum` in the install script.
|
||||||
### And create a backup of this file if the checksum is different. So the file will be backed up if the admin had modified it.
|
### And create a backup of this file if the checksum is different. So the file will be backed up if the admin had modified it.
|
||||||
#ynh_backup_if_checksum_is_different "$final_path/CONFIG_FILE"
|
ynh_backup_if_checksum_is_different "$final_path/.env"
|
||||||
# Recalculate and store the checksum of the file for the next upgrade.
|
# Recalculate and store the checksum of the file for the next upgrade.
|
||||||
#ynh_store_file_checksum "$final_path/CONFIG_FILE"
|
ynh_store_file_checksum "$final_path/.env"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP LOGROTATE
|
# SETUP LOGROTATE
|
||||||
|
@ -158,8 +178,6 @@ ynh_use_logrotate --non-append
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Create a dedicated systemd config
|
# Create a dedicated systemd config
|
||||||
ynh_replace_string "__NODEJS_PATH__" "$nodejs_path" "../conf/systemd.service"
|
|
||||||
ynh_replace_string "__PORT__" "$port" "../conf/systemd.service"
|
|
||||||
ynh_add_systemd_config
|
ynh_add_systemd_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
Loading…
Add table
Reference in a new issue