mirror of
https://github.com/YunoHost-Apps/wekan_ynh.git
synced 2024-09-03 20:36:09 +02:00
commit
7f9098a0f2
21 changed files with 99 additions and 551 deletions
21
README.md
21
README.md
|
@ -16,7 +16,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
|
|||
|
||||
## Overview
|
||||
|
||||
WeKan ® is an completely Open Source and Free software collaborative kanban board application with MIT license.
|
||||
WeKan ® is an completely Open Source and Free software collaborative kanban board application.
|
||||
|
||||
|
||||
**Shipped version:** 6.78~ynh1
|
||||
|
@ -27,25 +27,6 @@ WeKan ® is an completely Open Source and Free software collaborative kanban boa
|
|||
|
||||
![Screenshot of Wekan](./doc/screenshots/screenshot.jpg)
|
||||
|
||||
## Disclaimers / important information
|
||||
|
||||
* There is currently **no SSO integration** though it might be integrated at some point in the app, now that it's supported in Meteor/Wekan. In the meantime, users can create accounts (in fact, they can create infinite number of accounts) manually, and need to login manually specifically in Wekan.
|
||||
* This app **only works on x86, 64bits architecture**! In particular, it won't work on 32 bit machines or ARM. See the discussion [here](https://github.com/YunoHost-Apps/wekan_ynh/issues/1#issuecomment-401612500).
|
||||
* YunoHost users with more than one email address can't login to wekan using ldap. For example first YunoHost user has severals email addresses: root@domain; admin@domain; webmaster@domain; postmaster@domain, etc... Workaround: remove all mail aliases of the user you want to connect, connect one time on wekan, recreate the aliases of the YunoHost user.
|
||||
|
||||
## Configuration:
|
||||
As LDAP authentification is enabled by default, Wekan admins correspond to the permission `Wekan Admin`. The user you choose during installation is member of this group.
|
||||
To add an admin account, you can:
|
||||
|
||||
- [with the webadmin] go to Users > Groups and permissions > Add the user to the permission `Wekan Admin`
|
||||
- [or with the command line] `yunohost user permission update wekan.admin -a the_user_to_add`
|
||||
|
||||
All others YunhoHost user can access with LDAP authentication.
|
||||
|
||||
If you have disable ldap authentication, first registered user will be admin, and next ones normal users. If you want other admins too, you can change their permission to admin at Wekan Admin Panel.
|
||||
|
||||
**Private/Public mode:** In private mode, only authorized YunoHost members can access to the Wekan.
|
||||
|
||||
## Documentation and resources
|
||||
|
||||
* Official app website: <https://wekan.github.io>
|
||||
|
|
21
README_fr.md
21
README_fr.md
|
@ -16,7 +16,7 @@ Si vous n’avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) po
|
|||
|
||||
## Vue d’ensemble
|
||||
|
||||
WeKan ® est une application de tableau kanban collaborative entièrement libre et open source avec une licence MIT.
|
||||
WeKan ® est une application de tableau kanban collaborative entièrement libre et open source.
|
||||
|
||||
|
||||
**Version incluse :** 6.78~ynh1
|
||||
|
@ -27,25 +27,6 @@ WeKan ® est une application de tableau kanban collaborative entièrement libre
|
|||
|
||||
![Capture d’écran de Wekan](./doc/screenshots/screenshot.jpg)
|
||||
|
||||
## Avertissements / informations importantes
|
||||
|
||||
* Il n'y a actuellement **pas d'intégration SSO**, bien qu'elle puisse être intégrée à un moment donné dans l'application, maintenant qu'elle est supportée par Meteor/Wekan. En attendant, les utilisateurs peuvent créer des comptes (en fait, ils peuvent créer un nombre infini de comptes) manuellement, et doivent se connecter manuellement spécifiquement dans Wekan.
|
||||
* Cette application **ne fonctionne que sur une architecture x86, 64bits** ! En particulier, elle ne fonctionnera pas sur les machines 32 bits ou ARM. Voir la discussion [ici] (https://github.com/YunoHost-Apps/wekan_ynh/issues/1#issuecomment-401612500).
|
||||
* Les utilisateurs de YunoHost ayant plus d'une adresse e-mail ne peuvent pas se connecter à wekan en utilisant ldap. Par exemple, le premier utilisateur de YunoHost a plusieurs adresses e-mail : root@domain ; admin@domain ; webmaster@domain ; postmaster@domain, etc.... Solution : supprimez tous les alias de messagerie de l'utilisateur que vous voulez connecter, connectez-vous une fois sur wekan, recréez les alias de l'utilisateur YunoHost.
|
||||
|
||||
## Configuration :
|
||||
L'authentification LDAP étant activée par défaut, les admins de Wekan correspondent à la permission `Wekan Admin`. L'utilisateur que vous choisissez lors de l'installation est membre de ce groupe.
|
||||
Pour ajouter un compte admin, vous pouvez :
|
||||
|
||||
- [avec le webadmin] allez dans Utilisateurs > Groupes et permissions > Ajouter l'utilisateur à la permission `Wekan Admin`.
|
||||
- [ou avec la ligne de commande] `yunohost user permission update wekan.admin -a the_user_to_add`.
|
||||
|
||||
Tous les autres utilisateurs de YunhoHost peuvent accéder avec l'authentification LDAP.
|
||||
|
||||
Si vous avez désactivé l'authentification LDAP, le premier utilisateur enregistré sera l'administrateur, et les suivants seront des utilisateurs normaux. Si vous voulez d'autres administrateurs, vous pouvez changer leur permission à admin dans le panneau d'administration de Wekan.
|
||||
|
||||
**Mode privé/public:** En mode privé, seuls les membres autorisés de YunoHost peuvent accéder au Wekan.
|
||||
|
||||
## Documentations et ressources
|
||||
|
||||
* Site officiel de l’app : <https://wekan.github.io>
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
;; Test complet
|
||||
; Manifest
|
||||
domain="domain.tld"
|
||||
path="/path"
|
||||
is_public=1
|
||||
admin="john"
|
||||
; Checks
|
||||
pkg_linter=1
|
||||
setup_sub_dir=1
|
||||
setup_root=1
|
||||
setup_nourl=0
|
||||
setup_private=1
|
||||
setup_public=1
|
||||
upgrade=1
|
||||
# 3.79~ynh2
|
||||
#upgrade=1 from_commit=2843d504bcdb0402939f87ebeeda3417de02a9e4
|
||||
# 3.95~ynh1
|
||||
#upgrade=1 from_commit=46f4b540cb99090a3fe1d35828094dbbfb34b692
|
||||
# 3.95~ynh1
|
||||
#upgrade=1 from_commit=3cd252289f4fd138879872658762f4c6ae415cc4
|
||||
# 4.09~ynh1
|
||||
#upgrade=1 from_commit=c2b4715e8591031f3054cedb1220e7619607bb36
|
||||
# 4.43~ynh1
|
||||
#upgrade=1 from_commit=2cf63bd4d660eae4526221c1a68efede499e3ee6
|
||||
# 4.64~ynh1
|
||||
#upgrade=1 from_commit=32fe3a7c342e5f29d7a7534125151723f916de46
|
||||
# 4.64~ynh2
|
||||
#upgrade=1 from_commit=9e698d094c29fc6ab12ac60cd1d0e68b56bfc953
|
||||
# 5.00~ynh1
|
||||
#upgrade=1 from_commit=8655e8062d1bc6e90b01b98ca9a0dea15d60119e
|
||||
# 5.17~ynh1
|
||||
#upgrade=1 from_commit=8cdb28eff25b8b431635b87f92f96f8e216ad71f
|
||||
# 5.35~ynh1
|
||||
upgrade=1 from_commit=2e9c8be6b87d5c4cd6693e7b3c0c05cfc7d1ac51
|
||||
# 5.93~ynh1
|
||||
upgrade=1 from_commit=493a70f7d0e79b3ee92d53976a0cd35fa944b428
|
||||
# 6.24~ynh1
|
||||
#upgrade=1 from_commit=9a686b180d38329a5b53dcc40c0501961a0144b5
|
||||
# 6.26~ynh1
|
||||
upgrade=1 from_commit=20ccbbbd80021d71692291bfc8de6d03d32f7a76
|
||||
# 6.27.1~ynh1 / Mongo 4.4
|
||||
upgrade=1 from_commit=9cac9713c99aabae61074ebdb2b88b1e927a1f1b
|
||||
# 6.27.1~ynh2 / Mongo 5.0
|
||||
upgrade=0 from_commit=1ed17a307bd6a2374a21d3488f17a099107d3984
|
||||
# 6.28~ynh1 / Mongo 5.0
|
||||
upgrade=0 from_commit=2c93251155dd3ce73bfa03090e914d407cc89d30
|
||||
# 6.28~ynh2 / Mongo 5.0
|
||||
upgrade=0 from_commit=4bece11c12b5691811e8abb5478093cd932cad94
|
||||
# 6.30~ynh1 / Mongo 4.4 ; 5.0
|
||||
upgrade=1 from_commit=19d250f0c09d4f8dad4343a86a5d20672853221a
|
||||
backup_restore=1
|
||||
multi_instance=1
|
||||
port_already_use=0
|
||||
change_url=1
|
||||
;;; Options
|
||||
Email=ljf+ynh-wekan@reflexlibre.net
|
||||
Notification=down
|
|
@ -5,7 +5,7 @@ NODE_ENV=production
|
|||
|
||||
# Writable path for temporary saving attachments during migration to Meteor-Files
|
||||
# Create directory wekan-uploads
|
||||
WRITABLE_PATH=__FINALPATH__
|
||||
WRITABLE_PATH=__INSTALL_DIR__
|
||||
|
||||
# The path to NODEJS
|
||||
__YNH_NODE_LOAD_PATH__
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
SOURCE_URL=https://github.com/wekan/wekan/releases/download/v6.78/wekan-6.78-amd64.zip
|
||||
SOURCE_SUM=68a01e20eed464c55a96837f5856a196777d965639e0f5cb8c2239a003bc117f
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FORMAT=zip
|
||||
SOURCE_IN_SUBDIR=true
|
||||
SOURCE_FILENAME=
|
|
@ -1,6 +0,0 @@
|
|||
SOURCE_URL=https://github.com/wekan/wekan/releases/download/v6.78/wekan-6.78-arm64.zip
|
||||
SOURCE_SUM=f85bc8ea5b6d154f8c1aac4f63374f0a30113e11923ec9484d352be8ffb6a5bd
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FORMAT=zip
|
||||
SOURCE_IN_SUBDIR=true
|
||||
SOURCE_FILENAME=
|
|
@ -1,5 +1,5 @@
|
|||
[Unit]
|
||||
Description=Wekan, task board
|
||||
Description=Wekan: task board
|
||||
Wants=__MONGODB_SERVICENAME__.service
|
||||
After=network.target __MONGODB_SERVICENAME__.service
|
||||
|
||||
|
@ -7,18 +7,13 @@ After=network.target __MONGODB_SERVICENAME__.service
|
|||
Type=simple
|
||||
User=__APP__
|
||||
Group=__APP__
|
||||
EnvironmentFile=__FINALPATH__/.env
|
||||
WorkingDirectory=__FINALPATH__/
|
||||
ExecStart=__YNH_NODE__ __FINALPATH__/main.js
|
||||
EnvironmentFile=__INSTALL_DIR__/.env
|
||||
WorkingDirectory=__INSTALL_DIR__/
|
||||
ExecStart=__YNH_NODE__ __INSTALL_DIR__/main.js
|
||||
Restart=on-failure
|
||||
#StartLimitInterval=86400
|
||||
#StartLimitBurst=5
|
||||
RestartSec=10
|
||||
ExecReload=/bin/kill -USR1 $MAINPID
|
||||
RestartSec=10
|
||||
StandardOutput=syslog
|
||||
StandardError=syslog
|
||||
SyslogIdentifier=__APP__
|
||||
SuccessExitStatus=143
|
||||
#RestartSec=10
|
||||
#ExecReload=/bin/kill -USR1 $MAINPID
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -12,5 +12,3 @@ To add an admin account, you can:
|
|||
All others YunhoHost user can access with LDAP authentication.
|
||||
|
||||
If you have disable ldap authentication, first registered user will be admin, and next ones normal users. If you want other admins too, you can change their permission to admin at Wekan Admin Panel.
|
||||
|
||||
**Private/Public mode:** In private mode, only authorized YunoHost members can access to the Wekan.
|
|
@ -12,5 +12,3 @@ Pour ajouter un compte admin, vous pouvez :
|
|||
Tous les autres utilisateurs de YunhoHost peuvent accéder avec l'authentification LDAP.
|
||||
|
||||
Si vous avez désactivé l'authentification LDAP, le premier utilisateur enregistré sera l'administrateur, et les suivants seront des utilisateurs normaux. Si vous voulez d'autres administrateurs, vous pouvez changer leur permission à admin dans le panneau d'administration de Wekan.
|
||||
|
||||
**Mode privé/public:** En mode privé, seuls les membres autorisés de YunoHost peuvent accéder au Wekan.
|
|
@ -1 +1 @@
|
|||
WeKan ® is an completely Open Source and Free software collaborative kanban board application with MIT license.
|
||||
WeKan ® is an completely Open Source and Free software collaborative kanban board application.
|
||||
|
|
|
@ -1 +1 @@
|
|||
WeKan ® est une application de tableau kanban collaborative entièrement libre et open source avec une licence MIT.
|
||||
WeKan ® est une application de tableau kanban collaborative entièrement libre et open source.
|
||||
|
|
|
@ -1,62 +0,0 @@
|
|||
{
|
||||
"name": "Wekan",
|
||||
"id": "wekan",
|
||||
"packaging_format": 1,
|
||||
"description": {
|
||||
"en": "Trello-like kanban",
|
||||
"fr": "Un kanban similaire à Trello"
|
||||
},
|
||||
"version": "6.78~ynh1",
|
||||
"url": "https://wekan.github.io",
|
||||
"upstream": {
|
||||
"license": "MIT",
|
||||
"website": "https://wekan.github.io",
|
||||
"demo": "https://demo.sandstorm.io/appdemo/m86q05rdvj14yvn78ghaxynqz7u2svw6rnttptxx49g1785cdv1h",
|
||||
"admindoc": "https://github.com/wekan/wekan/wiki",
|
||||
"code": "https://github.com/wekan/wekan"
|
||||
},
|
||||
"license": "MIT",
|
||||
"maintainer": [
|
||||
{
|
||||
"name": "alexAubin",
|
||||
"email": "alex.aubin@mailoo.org",
|
||||
"url": "https://github.com/alexAubin/"
|
||||
},
|
||||
{
|
||||
"name": "ljf"
|
||||
},
|
||||
{
|
||||
"name": "yalh76"
|
||||
}
|
||||
],
|
||||
"requirements": {
|
||||
"yunohost": ">= 4.3.0"
|
||||
},
|
||||
"multi_instance": true,
|
||||
"services": [
|
||||
"nginx"
|
||||
],
|
||||
"arguments": {
|
||||
"install": [
|
||||
{
|
||||
"name": "domain",
|
||||
"type": "domain"
|
||||
},
|
||||
{
|
||||
"name": "path",
|
||||
"type": "path",
|
||||
"example": "/wekan",
|
||||
"default": "/wekan"
|
||||
},
|
||||
{
|
||||
"name": "is_public",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "admin",
|
||||
"type": "user"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
58
manifest.toml
Normal file
58
manifest.toml
Normal file
|
@ -0,0 +1,58 @@
|
|||
packaging_format = 2
|
||||
|
||||
id = "wekan"
|
||||
name = "Wekan"
|
||||
description.en = "Trello-like kanban"
|
||||
description.fr = "Kanban similaire à Trello"
|
||||
|
||||
version = "6.78~ynh1"
|
||||
|
||||
maintainers = ["alexAubin", "ljf", "yalh76"]
|
||||
|
||||
[upstream]
|
||||
license = "MIT"
|
||||
website = "https://wekan.github.io"
|
||||
demo = "https://demo.sandstorm.io/appdemo/m86q05rdvj14yvn78ghaxynqz7u2svw6rnttptxx49g1785cdv1h"
|
||||
admindoc = "https://github.com/wekan/wekan/wiki"
|
||||
code = "https://github.com/wekan/wekan"
|
||||
|
||||
[integration]
|
||||
yunohost = ">= 11.1.15"
|
||||
architectures = ["arm64", "amd64"]
|
||||
multi_instance = true
|
||||
ldap = true
|
||||
sso = false
|
||||
disk = "50M"
|
||||
ram.build = "50M"
|
||||
ram.runtime = "50M"
|
||||
|
||||
[install]
|
||||
[install.domain]
|
||||
type = "domain"
|
||||
|
||||
[install.path]
|
||||
type = "path"
|
||||
default = "/wekan"
|
||||
|
||||
[install.init_main_permission]
|
||||
type = "group"
|
||||
default = false
|
||||
|
||||
[install.admin]
|
||||
type = "user"
|
||||
|
||||
[resources]
|
||||
[resources.sources.main]
|
||||
arm64.url = "https://github.com/wekan/wekan/releases/download/v6.78/wekan-6.78-arm64.zip"
|
||||
arm64.sha256 = "f85bc8ea5b6d154f8c1aac4f63374f0a30113e11923ec9484d352be8ffb6a5bd"
|
||||
amd64.url = "https://github.com/wekan/wekan/releases/download/v6.78/wekan-6.78-amd64.zip"
|
||||
amd64.sha256 = "68a01e20eed464c55a96837f5856a196777d965639e0f5cb8c2239a003bc117f"
|
||||
|
||||
[resources.ports]
|
||||
|
||||
[resources.system_user]
|
||||
|
||||
[resources.install_dir]
|
||||
|
||||
[resources.permissions]
|
||||
main.url = "/"
|
|
@ -4,9 +4,6 @@
|
|||
# COMMON VARIABLES
|
||||
#=================================================
|
||||
|
||||
# dependencies used by the app
|
||||
pkg_dependencies=""
|
||||
|
||||
nodejs_version="14.19.3"
|
||||
|
||||
#=================================================
|
||||
|
|
|
@ -11,27 +11,6 @@ source ../settings/scripts/_common.sh
|
|||
source ../settings/scripts/ynh_mongo_db__2
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
ynh_clean_setup () {
|
||||
true
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_print_info --message="Loading installation settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
|
||||
#=================================================
|
||||
# DECLARE DATA AND CONF FILES TO BACKUP
|
||||
#=================================================
|
||||
|
@ -41,7 +20,7 @@ ynh_print_info --message="Declaring files to be backed up..."
|
|||
# BACKUP THE APP MAIN DIR
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="$final_path"
|
||||
ynh_backup --src_path="$install_dir"
|
||||
|
||||
#=================================================
|
||||
# BACKUP THE NGINX CONFIGURATION
|
||||
|
|
|
@ -9,66 +9,6 @@
|
|||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS
|
||||
#=================================================
|
||||
|
||||
old_domain=$YNH_APP_OLD_DOMAIN
|
||||
old_path=$YNH_APP_OLD_PATH
|
||||
|
||||
new_domain=$YNH_APP_NEW_DOMAIN
|
||||
new_path=$YNH_APP_NEW_PATH
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
# Needed for helper "ynh_add_nginx_config"
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
|
||||
# Add settings here as needed by your application
|
||||
#db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
#db_user=$db_name
|
||||
#db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
|
||||
#=================================================
|
||||
# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..."
|
||||
|
||||
# Backup the current version of the app
|
||||
ynh_backup_before_upgrade
|
||||
ynh_clean_setup () {
|
||||
ynh_clean_check_starting
|
||||
# Remove the new domain config file, the remove script won't do it as it doesn't know yet its location.
|
||||
ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||
|
||||
# Restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# CHECK WHICH PARTS SHOULD BE CHANGED
|
||||
#=================================================
|
||||
|
||||
change_domain=0
|
||||
if [ "$old_domain" != "$new_domain" ]
|
||||
then
|
||||
change_domain=1
|
||||
fi
|
||||
|
||||
change_path=0
|
||||
if [ "$old_path" != "$new_path" ]
|
||||
then
|
||||
change_path=1
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STANDARD MODIFICATIONS
|
||||
#=================================================
|
||||
|
@ -83,29 +23,7 @@ ynh_systemd_action --service_name=$app --action="stop" --log_path=systemd
|
|||
#=================================================
|
||||
ynh_script_progression --message="Updating NGINX web server configuration..."
|
||||
|
||||
nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
|
||||
|
||||
# Change the path in the NGINX config file
|
||||
if [ $change_path -eq 1 ]
|
||||
then
|
||||
# Make a backup of the original NGINX config file if modified
|
||||
ynh_backup_if_checksum_is_different --file="$nginx_conf_path"
|
||||
# Set global variables for NGINX helper
|
||||
domain="$old_domain"
|
||||
path_url="$new_path"
|
||||
# Create a dedicated NGINX config
|
||||
ynh_add_nginx_config
|
||||
fi
|
||||
|
||||
# Change the domain for NGINX
|
||||
if [ $change_domain -eq 1 ]
|
||||
then
|
||||
# Delete file checksum for the old conf file location
|
||||
ynh_delete_file_checksum --file="$nginx_conf_path"
|
||||
mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf
|
||||
# Store file checksum for the new config file location
|
||||
ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||
fi
|
||||
ynh_change_url_nginx_config
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC MODIFICATIONS
|
||||
|
@ -114,9 +32,9 @@ fi
|
|||
#=================================================
|
||||
ynh_script_progression --message="Updating .env configuration..."
|
||||
|
||||
ynh_backup_if_checksum_is_different --file="$final_path/.env"
|
||||
ynh_replace_string --match_string="$old_domain$old_path" --replace_string="$new_domain$new_path" --target_file="$final_path/.env"
|
||||
ynh_store_file_checksum --file="$final_path/.env"
|
||||
ynh_backup_if_checksum_is_different --file="$install_dir/.env"
|
||||
ynh_replace_string --match_string="$old_domain$old_path" --replace_string="$new_domain$new_path" --target_file="$install_dir/.env"
|
||||
ynh_store_file_checksum --file="$install_dir/.env"
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALISATION
|
||||
|
@ -132,13 +50,6 @@ if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
|
|||
sleep 60
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading NGINX web server..."
|
||||
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
|
102
scripts/install
102
scripts/install
|
@ -10,81 +10,15 @@ source _common.sh
|
|||
source ynh_mongo_db__2
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
ynh_clean_setup () {
|
||||
ynh_clean_check_starting
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
||||
#=================================================
|
||||
|
||||
domain=$YNH_APP_ARG_DOMAIN
|
||||
path_url=$YNH_APP_ARG_PATH
|
||||
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||
admin=$YNH_APP_ARG_ADMIN
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Validating installation parameters..."
|
||||
|
||||
# Check machine architecture (in particular, we don't support ARM and 32bit machines)
|
||||
if [ $YNH_ARCH == "i386" ] || [ $YNH_ARCH == "armel" ] || [ $YNH_ARCH == "armhf" ] || [ $YNH_ARCH == "aarch64" ] || [ $YNH_ARCH == "arm64" ]
|
||||
then
|
||||
ynh_die --message="Sorry, but this app can only be installed on a x86, 64 bits machine :("
|
||||
fi
|
||||
|
||||
final_path=/var/www/$app
|
||||
test ! -e "$final_path" || ynh_die --message="This path already contains a folder"
|
||||
|
||||
# Register (book) web path
|
||||
ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url
|
||||
|
||||
#=================================================
|
||||
# STORE SETTINGS FROM MANIFEST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Storing installation settings..."
|
||||
|
||||
ynh_app_setting_set --app=$app --key=domain --value=$domain
|
||||
ynh_app_setting_set --app=$app --key=path --value=$path_url
|
||||
|
||||
#=================================================
|
||||
# STANDARD MODIFICATIONS
|
||||
#=================================================
|
||||
# FIND AND OPEN A PORT
|
||||
#=================================================
|
||||
ynh_script_progression --message="Finding an available port..."
|
||||
|
||||
# Find an available port
|
||||
port=$(ynh_find_port --port=8095)
|
||||
ynh_app_setting_set --app=$app --key=port --value=$port
|
||||
|
||||
#=================================================
|
||||
# INSTALL DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Installing dependencies..."
|
||||
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
ynh_install_nodejs --nodejs_version=$nodejs_version
|
||||
ynh_use_nodejs
|
||||
ynh_install_mongo
|
||||
|
||||
#=================================================
|
||||
# CREATE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring system user..."
|
||||
|
||||
# Create a system user
|
||||
ynh_system_user_create --username=$app --home_dir="$final_path"
|
||||
|
||||
#=================================================
|
||||
# CREATE A MONGODB DATABASE
|
||||
#=================================================
|
||||
|
@ -100,13 +34,11 @@ ynh_mongo_setup_db --db_user=$db_user --db_name=$db_name
|
|||
#=================================================
|
||||
ynh_script_progression --message="Setting up source files..."
|
||||
|
||||
ynh_app_setting_set --app=$app --key=final_path --value=$final_path
|
||||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source --dest_dir="$final_path" --source_id="$YNH_ARCH"
|
||||
ynh_setup_source --dest_dir="$install_dir"
|
||||
|
||||
chmod 750 "$final_path"
|
||||
chmod -R o-rwx "$final_path"
|
||||
chown -R $app:$app "$final_path"
|
||||
chmod -R o-rwx "$install_dir"
|
||||
chown -R $app:$app "$install_dir"
|
||||
|
||||
#=================================================
|
||||
# NGINX CONFIGURATION
|
||||
|
@ -125,10 +57,10 @@ ynh_script_progression --message="Adding a config file..."
|
|||
|
||||
main_domain=$(cat /etc/yunohost/current_host)
|
||||
|
||||
ynh_add_config --template=".env" --destination="$final_path/.env"
|
||||
ynh_add_config --template=".env" --destination="$install_dir/.env"
|
||||
|
||||
chmod 400 "$final_path/.env"
|
||||
chown $app:$app "$final_path/.env"
|
||||
chmod 400 "$install_dir/.env"
|
||||
chown $app:$app "$install_dir/.env"
|
||||
|
||||
#=================================================
|
||||
# SETUP SYSTEMD
|
||||
|
@ -159,28 +91,6 @@ if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
|
|||
sleep 60
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# SETUP SSOWAT
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring permissions..."
|
||||
|
||||
# Make app public if necessary
|
||||
if [ $is_public -eq 1 ]
|
||||
then
|
||||
# Everyone can access the app.
|
||||
# The "main" permission is automatically created before the install script.
|
||||
ynh_permission_update --permission="main" --add="visitors"
|
||||
fi
|
||||
|
||||
ynh_permission_create --permission="admin" --allowed=$admin
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading NGINX web server..."
|
||||
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
|
|
@ -10,19 +10,6 @@ source _common.sh
|
|||
source ynh_mongo_db__2
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
db_user=$db_name
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
|
||||
#=================================================
|
||||
# STANDARD REMOVE
|
||||
#=================================================
|
||||
|
@ -52,14 +39,6 @@ ynh_script_progression --message="Removing the MongoDB database..."
|
|||
# Remove a database if it exists, along with the associated user
|
||||
ynh_mongo_remove_db --db_user=$db_user --db_name=$db_name
|
||||
|
||||
#=================================================
|
||||
# REMOVE APP MAIN DIR
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing app main directory..."
|
||||
|
||||
# Remove the app directory securely
|
||||
ynh_secure_remove --file="$final_path"
|
||||
|
||||
#=================================================
|
||||
# REMOVE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
|
@ -71,23 +50,12 @@ ynh_remove_nginx_config
|
|||
#=================================================
|
||||
# REMOVE DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing dependencies..."
|
||||
#REMOVEME? ynh_script_progression --message="Removing dependencies..."
|
||||
|
||||
# Remove metapackage and its dependencies
|
||||
ynh_remove_app_dependencies
|
||||
ynh_remove_nodejs
|
||||
ynh_remove_mongo
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# REMOVE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing the dedicated system user..."
|
||||
|
||||
# Delete a system user
|
||||
ynh_system_user_delete --username=$app
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
|
|
@ -11,68 +11,24 @@ source ../settings/scripts/_common.sh
|
|||
source ../settings/scripts/ynh_mongo_db__2
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
ynh_clean_setup () {
|
||||
ynh_clean_check_starting
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
db_user=$db_name
|
||||
mongo_version=$(ynh_app_setting_get --app=$app --key=mongo_version)
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE RESTORED
|
||||
#=================================================
|
||||
ynh_script_progression --message="Validating restoration parameters..."
|
||||
|
||||
test ! -d $final_path \
|
||||
|| ynh_die --message="There is already a directory: $final_path "
|
||||
|
||||
#=================================================
|
||||
# STANDARD RESTORATION STEPS
|
||||
#=================================================
|
||||
# RECREATE THE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Recreating the dedicated system user..."
|
||||
|
||||
# Create the dedicated user (if not existing)
|
||||
ynh_system_user_create --username=$app --home_dir="$final_path"
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE APP MAIN DIR
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the app main directory..."
|
||||
|
||||
ynh_restore_file --origin_path="$final_path"
|
||||
ynh_restore_file --origin_path="$install_dir"
|
||||
|
||||
chmod 750 "$final_path"
|
||||
chmod -R o-rwx "$final_path"
|
||||
chown -R $app:$app "$final_path"
|
||||
chmod -R o-rwx "$install_dir"
|
||||
chown -R $app:$app "$install_dir"
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC RESTORATION
|
||||
#=================================================
|
||||
# REINSTALL DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reinstalling dependencies..."
|
||||
#REMOVEME? ynh_script_progression --message="Reinstalling dependencies..."
|
||||
|
||||
# Define and install dependencies
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
ynh_install_nodejs --nodejs_version=$nodejs_version
|
||||
ynh_use_nodejs
|
||||
ynh_install_mongo --mongo_version=$mongo_version
|
||||
|
@ -89,7 +45,8 @@ ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
|||
#=================================================
|
||||
ynh_script_progression --message="Restoring the MongoDB database..."
|
||||
|
||||
db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd)
|
||||
db_name=$(ynh_sanitize_dbid --db_name=$app)
|
||||
db_user=$db_name
|
||||
ynh_mongo_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
|
||||
ynh_mongo_restore_db --database="$db_name" < ./dump.bson
|
||||
|
||||
|
|
|
@ -10,42 +10,12 @@ source _common.sh
|
|||
source ynh_mongo_db__2
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
mongo_version=$(ynh_app_setting_get --app=$app --key=mongo_version)
|
||||
|
||||
#=================================================
|
||||
# CHECK VERSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Checking version..."
|
||||
|
||||
upgrade_type=$(ynh_check_app_version_changed)
|
||||
|
||||
#=================================================
|
||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..."
|
||||
|
||||
# Backup the current version of the app
|
||||
ynh_backup_before_upgrade
|
||||
ynh_clean_setup () {
|
||||
ynh_clean_check_starting
|
||||
# Restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# STANDARD UPGRADE STEPS
|
||||
#=================================================
|
||||
|
@ -60,18 +30,6 @@ ynh_systemd_action --service_name=$app --action="stop" --log_path=systemd
|
|||
#=================================================
|
||||
ynh_script_progression --message="Ensuring downward compatibility..."
|
||||
|
||||
# Cleaning legacy permissions
|
||||
if ynh_legacy_permissions_exists; then
|
||||
ynh_legacy_permissions_delete_all
|
||||
|
||||
ynh_app_setting_delete --app=$app --key=is_public
|
||||
fi
|
||||
|
||||
if ! ynh_permission_exists --permission="admin"; then
|
||||
# Create the required permissions
|
||||
ynh_permission_create --permission="admin" --allowed=$admin
|
||||
fi
|
||||
|
||||
# If mongo_version doesn't exist, create it
|
||||
if [ -z "$mongo_version" ]; then
|
||||
mongo_version="$(mongod --version | grep -oP 'db version v\K.{0,3}')"
|
||||
|
@ -81,14 +39,6 @@ fi
|
|||
ynh_secure_remove --file="/etc/apt/sources.list.d/mongodb-org-3.2.list"
|
||||
ynh_secure_remove --file="/etc/apt/sources.list.d/mongodb-org-4.4.list"
|
||||
|
||||
#=================================================
|
||||
# CREATE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Making sure dedicated system user exists..."
|
||||
|
||||
# Create a dedicated user (if not existing)
|
||||
ynh_system_user_create --username=$app --home_dir="$final_path"
|
||||
|
||||
#=================================================
|
||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||
#=================================================
|
||||
|
@ -98,19 +48,17 @@ then
|
|||
ynh_script_progression --message="Upgrading source files..."
|
||||
|
||||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source --dest_dir="$final_path" --source_id="$YNH_ARCH" --keep=".env"
|
||||
ynh_setup_source --dest_dir="$install_dir" --keep=".env"
|
||||
fi
|
||||
|
||||
chmod 750 "$final_path"
|
||||
chmod -R o-rwx "$final_path"
|
||||
chown -R $app:$app "$final_path"
|
||||
chmod -R o-rwx "$install_dir"
|
||||
chown -R $app:$app "$install_dir"
|
||||
|
||||
#=================================================
|
||||
# UPGRADE DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading dependencies..."
|
||||
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
ynh_install_nodejs --nodejs_version=$nodejs_version
|
||||
ynh_use_nodejs
|
||||
ynh_install_mongo --mongo_version=$mongo_version
|
||||
|
@ -132,10 +80,10 @@ ynh_script_progression --message="Updating a configuration file..."
|
|||
|
||||
main_domain=$(cat /etc/yunohost/current_host)
|
||||
|
||||
ynh_add_config --template=".env" --destination="$final_path/.env"
|
||||
ynh_add_config --template=".env" --destination="$install_dir/.env"
|
||||
|
||||
chmod 400 "$final_path/.env"
|
||||
chown $app:$app "$final_path/.env"
|
||||
chmod 400 "$install_dir/.env"
|
||||
chown $app:$app "$install_dir/.env"
|
||||
|
||||
#=================================================
|
||||
# SETUP SYSTEMD
|
||||
|
@ -165,13 +113,6 @@ if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
|
|||
sleep 60
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading NGINX web server..."
|
||||
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
|
5
tests.toml
Normal file
5
tests.toml
Normal file
|
@ -0,0 +1,5 @@
|
|||
test_format = 1.0
|
||||
|
||||
[default]
|
||||
|
||||
test_upgrade_from.19d250f0.name = "Upgrade from 6.30"
|
Loading…
Reference in a new issue