mirror of
https://github.com/YunoHost-Apps/etherpad_mypads_ynh.git
synced 2024-09-03 18:36:09 +02:00
commit
4d613658f1
16 changed files with 480 additions and 514 deletions
7
.github/workflows/updater.sh
vendored
7
.github/workflows/updater.sh
vendored
|
@ -10,7 +10,7 @@
|
||||||
# automatic actions when a new upstream release is detected.
|
# automatic actions when a new upstream release is detected.
|
||||||
|
|
||||||
# Remove this exit command when you are ready to run this Action
|
# Remove this exit command when you are ready to run this Action
|
||||||
exit 1
|
#exit 1
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# FETCHING LATEST RELEASE AND ITS ASSETS
|
# FETCHING LATEST RELEASE AND ITS ASSETS
|
||||||
|
@ -63,7 +63,7 @@ echo "Handling asset at $asset_url"
|
||||||
# Here we base the source file name upon a unique keyword in the assets url (admin vs. update)
|
# Here we base the source file name upon a unique keyword in the assets url (admin vs. update)
|
||||||
# Leave $src empty to ignore the asset
|
# Leave $src empty to ignore the asset
|
||||||
case $asset_url in
|
case $asset_url in
|
||||||
*".tar.gz"*)
|
*".tar.gz")
|
||||||
src="app"
|
src="app"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -96,6 +96,7 @@ SOURCE_SUM=$checksum
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FORMAT=$extension
|
SOURCE_FORMAT=$extension
|
||||||
SOURCE_IN_SUBDIR=true
|
SOURCE_IN_SUBDIR=true
|
||||||
|
SOURCE_FILENAME=
|
||||||
EOT
|
EOT
|
||||||
echo "... conf/$src.src updated"
|
echo "... conf/$src.src updated"
|
||||||
|
|
||||||
|
@ -116,7 +117,7 @@ done
|
||||||
# GENERIC FINALIZATION
|
# GENERIC FINALIZATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Install moreutils, needed for sponge
|
# Replace new version in manifest
|
||||||
echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" > manifest.json
|
echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" > manifest.json
|
||||||
|
|
||||||
# No need to update the README, yunohost-bot takes care of it
|
# No need to update the README, yunohost-bot takes care of it
|
||||||
|
|
32
README.md
32
README.md
|
@ -5,7 +5,7 @@ It shall NOT be edited by hand.
|
||||||
|
|
||||||
# Etherpad MyPads for YunoHost
|
# Etherpad MyPads for YunoHost
|
||||||
|
|
||||||
[](https://dash.yunohost.org/appci/app/etherpad_mypads)  
|
[](https://dash.yunohost.org/appci/app/etherpad_mypads)  
|
||||||
[](https://install-app.yunohost.org/?app=etherpad_mypads)
|
[](https://install-app.yunohost.org/?app=etherpad_mypads)
|
||||||
|
|
||||||
*[Lire ce readme en français.](./README_fr.md)*
|
*[Lire ce readme en français.](./README_fr.md)*
|
||||||
|
@ -17,14 +17,25 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
|
||||||
|
|
||||||
Etherpad is a real-time collaborative editor scalable to thousands of simultaneous real time users. It provides full data export capabilities, and runs on your server, under your control.
|
Etherpad is a real-time collaborative editor scalable to thousands of simultaneous real time users. It provides full data export capabilities, and runs on your server, under your control.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
**Shipped version:** 1.8.17~ynh1
|
- Rich Editing - A full rich text WYSIWYG editor.
|
||||||
|
- Minimalist editor - A minimalist editor that can be embedded within your tool.
|
||||||
|
- Dark Mode - Theme settings to have Etherpad start in dark mode, ideal for using Etherpad at night or for long durations.
|
||||||
|
- Images - Plugins to improve provide Image support within a pad.
|
||||||
|
- Video Chat - Plugins to enable Video and Audio chat in a pad.
|
||||||
|
- Collaboration++ - Plugins to improve the really-real time collaboration experience, suitable for busy pads.
|
||||||
|
- Document Analysis - Plugins to improve author and document analysis during and post creation.
|
||||||
|
- Scale - Etherpad running at scale with pad sharding which allows Etherpad to scale to ∞ number of Active Pads with up to 20,000 edits per second, per pad.
|
||||||
|
|
||||||
|
|
||||||
|
**Shipped version:** 1.8.17~ynh2
|
||||||
|
|
||||||
**Demo:** https://video.etherpad.com
|
**Demo:** https://video.etherpad.com
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Disclaimers / important information
|
## Disclaimers / important information
|
||||||
|
|
||||||
|
@ -62,21 +73,22 @@ You can also find a configuration file for Etherpad at this path `/var/www/ether
|
||||||
|
|
||||||
## Documentation and resources
|
## Documentation and resources
|
||||||
|
|
||||||
* Official app website: http://etherpad.org
|
* Official app website: <http://etherpad.org>
|
||||||
* Official admin documentation: http://etherpad.org/doc/v1.8.17
|
* Official admin documentation: <http://etherpad.org/doc/v1.8.17>
|
||||||
* Upstream app code repository: https://github.com/ether/etherpad-lite
|
* Upstream app code repository: <https://github.com/ether/etherpad-lite>
|
||||||
* YunoHost documentation for this app: https://yunohost.org/app_etherpad_mypads
|
* YunoHost documentation for this app: <https://yunohost.org/app_etherpad_mypads>
|
||||||
* Report a bug: https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues
|
* Report a bug: <https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues>
|
||||||
|
|
||||||
## Developer info
|
## Developer info
|
||||||
|
|
||||||
Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing).
|
Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing).
|
||||||
|
|
||||||
To try the testing branch, please proceed like that.
|
To try the testing branch, please proceed like that.
|
||||||
```
|
|
||||||
|
``` bash
|
||||||
sudo yunohost app install https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --debug
|
sudo yunohost app install https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --debug
|
||||||
or
|
or
|
||||||
sudo yunohost app upgrade etherpad_mypads -u https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --debug
|
sudo yunohost app upgrade etherpad_mypads -u https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --debug
|
||||||
```
|
```
|
||||||
|
|
||||||
**More info regarding app packaging:** https://yunohost.org/packaging_apps
|
**More info regarding app packaging:** <https://yunohost.org/packaging_apps>
|
||||||
|
|
27
README_fr.md
27
README_fr.md
|
@ -1,10 +1,14 @@
|
||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
|
||||||
# Etherpad MyPads pour YunoHost
|
# Etherpad MyPads pour YunoHost
|
||||||
|
|
||||||
[](https://dash.yunohost.org/appci/app/etherpad_mypads)  
|
[](https://dash.yunohost.org/appci/app/etherpad_mypads)  
|
||||||
[](https://install-app.yunohost.org/?app=etherpad_mypads)
|
[](https://install-app.yunohost.org/?app=etherpad_mypads)
|
||||||
|
|
||||||
*[Read this readme in english.](./README.md)*
|
*[Read this readme in english.](./README.md)*
|
||||||
*[Lire ce readme en français.](./README_fr.md)*
|
|
||||||
|
|
||||||
> *Ce package vous permet d'installer Etherpad MyPads rapidement et simplement sur un serveur YunoHost.
|
> *Ce package vous permet d'installer Etherpad MyPads rapidement et simplement sur un serveur YunoHost.
|
||||||
Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.*
|
Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.*
|
||||||
|
@ -14,13 +18,13 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour
|
||||||
Etherpad est un éditeur collaboratif en temps réel évolutif pour des milliers d'utilisateurs simultanés en temps réel. Il fournit des capacités complètes d'exportation de données et s'exécute sur votre serveur, sous votre contrôle.
|
Etherpad est un éditeur collaboratif en temps réel évolutif pour des milliers d'utilisateurs simultanés en temps réel. Il fournit des capacités complètes d'exportation de données et s'exécute sur votre serveur, sous votre contrôle.
|
||||||
|
|
||||||
|
|
||||||
**Version incluse :** 1.8.17~ynh1
|
**Version incluse :** 1.8.17~ynh2
|
||||||
|
|
||||||
**Démo :** https://video.etherpad.com
|
**Démo :** https://video.etherpad.com
|
||||||
|
|
||||||
## Captures d'écran
|
## Captures d'écran
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Avertissements / informations importantes
|
## Avertissements / informations importantes
|
||||||
|
|
||||||
|
@ -59,21 +63,22 @@ Vous pouvez accéder à deux panneaux d'administration différents, pour Etherpa
|
||||||
|
|
||||||
## Documentations et ressources
|
## Documentations et ressources
|
||||||
|
|
||||||
* Site officiel de l'app : http://etherpad.org
|
* Site officiel de l'app : <http://etherpad.org>
|
||||||
* Documentation officielle de l'admin : http://etherpad.org/doc/v1.8.17
|
* Documentation officielle de l'admin : <http://etherpad.org/doc/v1.8.17>
|
||||||
* Dépôt de code officiel de l'app : https://github.com/ether/etherpad-lite
|
* Dépôt de code officiel de l'app : <https://github.com/ether/etherpad-lite>
|
||||||
* Documentation YunoHost pour cette app : https://yunohost.org/app_etherpad_mypads
|
* Documentation YunoHost pour cette app : <https://yunohost.org/app_etherpad_mypads>
|
||||||
* Signaler un bug : https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues
|
* Signaler un bug : <https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues>
|
||||||
|
|
||||||
## Informations pour les développeurs
|
## Informations pour les développeurs
|
||||||
|
|
||||||
Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing).
|
Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing).
|
||||||
|
|
||||||
Pour essayer la branche testing, procédez comme suit.
|
Pour essayer la branche testing, procédez comme suit.
|
||||||
```
|
|
||||||
|
``` bash
|
||||||
sudo yunohost app install https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --debug
|
sudo yunohost app install https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --debug
|
||||||
ou
|
ou
|
||||||
sudo yunohost app upgrade etherpad_mypads -u https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --debug
|
sudo yunohost app upgrade etherpad_mypads -u https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --debug
|
||||||
```
|
```
|
||||||
|
|
||||||
**Plus d'infos sur le packaging d'applications :** https://yunohost.org/packaging_apps
|
**Plus d'infos sur le packaging d'applications :** <https://yunohost.org/packaging_apps>
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
; Manifest
|
; Manifest
|
||||||
domain="domain.tld"
|
domain="domain.tld"
|
||||||
path="/path"
|
path="/path"
|
||||||
|
is_public=1
|
||||||
|
language="en"
|
||||||
admin="john"
|
admin="john"
|
||||||
password="password"
|
password="password"
|
||||||
language="en"
|
|
||||||
is_public=1
|
|
||||||
export="libreoffice"
|
export="libreoffice"
|
||||||
mypads=1
|
mypads=1
|
||||||
useldap=1
|
useldap=1
|
||||||
|
@ -32,8 +32,11 @@
|
||||||
setup_private=1
|
setup_private=1
|
||||||
setup_public=1
|
setup_public=1
|
||||||
upgrade=1
|
upgrade=1
|
||||||
|
# 1.8.17~ynh1
|
||||||
|
upgrade=1 from_commit=44f73d6d49c4ece92648f0374cf02ec4e9e3fb5f
|
||||||
backup_restore=1
|
backup_restore=1
|
||||||
multi_instance=1
|
multi_instance=1
|
||||||
|
port_already_use=0
|
||||||
change_url=1
|
change_url=1
|
||||||
actions=0
|
actions=0
|
||||||
config_panel=0
|
config_panel=0
|
||||||
|
|
|
@ -3,3 +3,5 @@ SOURCE_SUM=3b51eb0259764669dedfb4d13cdbe8d4a2dea37735fe32941aac39b5def9f99b
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
ARCH_FORMAT=tar.gz
|
ARCH_FORMAT=tar.gz
|
||||||
SOURCE_IN_SUBDIR=true
|
SOURCE_IN_SUBDIR=true
|
||||||
|
SOURCE_FILENAME=
|
||||||
|
SOURCE_EXTRACT=true
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
"user" : "__DB_USER__",
|
"user" : "__DB_USER__",
|
||||||
"host" : "localhost",
|
"host" : "localhost",
|
||||||
"password": "__DB_PWD__",
|
"password": "__DB_PWD__",
|
||||||
"database": "__DB_USER__",
|
"database": "__DB_NAME__",
|
||||||
"charset" : "utf8mb4"
|
"charset" : "utf8mb4"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -6,10 +6,10 @@ After=syslog.target network.target
|
||||||
Type=simple
|
Type=simple
|
||||||
User=__APP__
|
User=__APP__
|
||||||
Group=__APP__
|
Group=__APP__
|
||||||
WorkingDirectory=__FINALPATH__
|
WorkingDirectory=__FINALPATH__/
|
||||||
Environment=NODE_ENV=production
|
Environment=NODE_ENV=production
|
||||||
Environment="__YNH_NODE_LOAD_PATH__"
|
Environment="__YNH_NODE_LOAD_PATH__"
|
||||||
ExecStart=__FINALPATH__/src/bin/run.sh
|
ExecStart=__YNH_NODE__ __FINALPATH__/src/node/server.js
|
||||||
StandardOutput=append:/var/log/__APP__/etherpad.log
|
StandardOutput=append:/var/log/__APP__/etherpad.log
|
||||||
StandardError=inherit
|
StandardError=inherit
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
|
@ -1 +1,12 @@
|
||||||
Etherpad is a real-time collaborative editor scalable to thousands of simultaneous real time users. It provides full data export capabilities, and runs on your server, under your control.
|
Etherpad is a real-time collaborative editor scalable to thousands of simultaneous real time users. It provides full data export capabilities, and runs on your server, under your control.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- Rich Editing - A full rich text WYSIWYG editor.
|
||||||
|
- Minimalist editor - A minimalist editor that can be embedded within your tool.
|
||||||
|
- Dark Mode - Theme settings to have Etherpad start in dark mode, ideal for using Etherpad at night or for long durations.
|
||||||
|
- Images - Plugins to improve provide Image support within a pad.
|
||||||
|
- Video Chat - Plugins to enable Video and Audio chat in a pad.
|
||||||
|
- Collaboration++ - Plugins to improve the really-real time collaboration experience, suitable for busy pads.
|
||||||
|
- Document Analysis - Plugins to improve author and document analysis during and post creation.
|
||||||
|
- Scale - Etherpad running at scale with pad sharding which allows Etherpad to scale to ∞ number of Active Pads with up to 20,000 edits per second, per pad.
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"en": "Online editor providing collaborative editing in real-time",
|
"en": "Online editor providing collaborative editing in real-time",
|
||||||
"fr": "Éditeur en ligne fournissant l'édition collaborative en temps réel"
|
"fr": "Éditeur en ligne fournissant l'édition collaborative en temps réel"
|
||||||
},
|
},
|
||||||
"version": "1.8.17~ynh1",
|
"version": "1.8.17~ynh2",
|
||||||
"url": "http://etherpad.org",
|
"url": "http://etherpad.org",
|
||||||
"upstream": {
|
"upstream": {
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
|
@ -47,12 +47,13 @@
|
||||||
"default": "/pad"
|
"default": "/pad"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "admin",
|
"name": "is_public",
|
||||||
"type": "user"
|
"type": "boolean",
|
||||||
|
"help": {
|
||||||
|
"en": "If your Etherpad instance is public, everyone will be able to create a pad or see an existing one.",
|
||||||
|
"fr": "Si votre instance Etherpad est publique, tout le monde pourra créer un pad ou voir un pad existant."
|
||||||
},
|
},
|
||||||
{
|
"default": true
|
||||||
"name": "password",
|
|
||||||
"type": "password"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "language",
|
"name": "language",
|
||||||
|
@ -76,13 +77,12 @@
|
||||||
"default": "en"
|
"default": "en"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "is_public",
|
"name": "admin",
|
||||||
"type": "boolean",
|
"type": "user"
|
||||||
"help": {
|
|
||||||
"en": "If your Etherpad instance is public, everyone will be able to create a pad or see an existing one.",
|
|
||||||
"fr": "Si votre instance Etherpad est publique, tout le monde pourra créer un pad ou voir un pad existant."
|
|
||||||
},
|
},
|
||||||
"default": true
|
{
|
||||||
|
"name": "password",
|
||||||
|
"type": "password"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "export",
|
"name": "export",
|
||||||
|
|
|
@ -15,21 +15,21 @@ nodejs_version=14
|
||||||
|
|
||||||
# MyPads version
|
# MyPads version
|
||||||
# This variable is mostly used to force an upgrade of the package in case of new versions of MyPads.
|
# This variable is mostly used to force an upgrade of the package in case of new versions of MyPads.
|
||||||
mypads_version=1.7.22
|
mypads_version=1.7.24
|
||||||
|
|
||||||
# Plugin versions
|
# Plugin versions
|
||||||
ep_align_version=0.3.49
|
ep_align_version=0.3.53
|
||||||
ep_author_hover_version=0.3.35
|
ep_author_hover_version=0.3.37
|
||||||
ep_comments_page_version=0.1.98
|
ep_comments_page_version=1.0.5
|
||||||
ep_countable_version=0.0.11
|
ep_countable_version=0.0.13
|
||||||
ep_delete_empty_pads_version=0.0.8
|
ep_delete_empty_pads_version=0.0.9
|
||||||
ep_font_color_version=0.0.60
|
ep_font_color_version=0.0.63
|
||||||
ep_headings2_version=0.2.42
|
ep_headings2_version=0.2.44
|
||||||
ep_markdown_version=0.1.49
|
ep_markdown_version=0.1.50
|
||||||
ep_spellcheck_version=0.0.42
|
ep_spellcheck_version=0.0.43
|
||||||
ep_subscript_and_superscript_version=0.2.43
|
ep_subscript_and_superscript_version=0.2.47
|
||||||
ep_table_of_contents_version=0.3.39
|
ep_table_of_contents_version=0.3.42
|
||||||
ep_font_size_version=0.4.41
|
ep_font_size_version=0.4.44
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# PERSONAL HELPERS
|
# PERSONAL HELPERS
|
||||||
|
|
|
@ -46,11 +46,11 @@ ynh_backup --src_path="$final_path"
|
||||||
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE MYSQL DATABASE
|
# BACKUP FAIL2BAN CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_print_info --message="Backing up the MySQL database..."
|
|
||||||
|
|
||||||
ynh_mysql_dump_db --database="$db_name" > db.sql
|
ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf"
|
||||||
|
ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC BACKUP
|
# SPECIFIC BACKUP
|
||||||
|
@ -67,11 +67,11 @@ ynh_backup --src_path="/etc/logrotate.d/$app"
|
||||||
ynh_backup --src_path="/etc/systemd/system/$app.service"
|
ynh_backup --src_path="/etc/systemd/system/$app.service"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP FAIL2BAN CONFIGURATION
|
# BACKUP THE MYSQL DATABASE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_print_info --message="Backing up the MySQL database..."
|
||||||
|
|
||||||
ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf"
|
ynh_mysql_dump_db --database="$db_name" > db.sql
|
||||||
ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# END OF SCRIPT
|
# END OF SCRIPT
|
||||||
|
|
|
@ -30,7 +30,10 @@ app=$YNH_APP_INSTANCE_NAME
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Loading installation settings..." --weight=5
|
ynh_script_progression --message="Loading installation settings..." --weight=5
|
||||||
|
|
||||||
|
# Needed for helper "ynh_add_nginx_config"
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
|
|
||||||
|
# Add settings here as needed by your application
|
||||||
mypads=$(ynh_app_setting_get --app=$app --key=mypads)
|
mypads=$(ynh_app_setting_get --app=$app --key=mypads)
|
||||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||||
|
|
||||||
|
@ -42,7 +45,6 @@ ynh_script_progression --message="Backing up the app before changing its URL (ma
|
||||||
# Backup the current version of the app
|
# Backup the current version of the app
|
||||||
ynh_backup_before_upgrade
|
ynh_backup_before_upgrade
|
||||||
ynh_clean_setup () {
|
ynh_clean_setup () {
|
||||||
# Clean installation remainings that are not handled by the remove script.
|
|
||||||
ynh_clean_check_starting
|
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.
|
# 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"
|
ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||||
|
@ -92,11 +94,9 @@ if [ $change_path -eq 1 ]
|
||||||
then
|
then
|
||||||
# Make a backup of the original NGINX config file if modified
|
# Make a backup of the original NGINX config file if modified
|
||||||
ynh_backup_if_checksum_is_different --file="$nginx_conf_path"
|
ynh_backup_if_checksum_is_different --file="$nginx_conf_path"
|
||||||
|
|
||||||
# Set global variables for NGINX helper
|
# Set global variables for NGINX helper
|
||||||
domain="$old_domain"
|
domain="$old_domain"
|
||||||
path_url="$new_path"
|
path_url="$new_path"
|
||||||
|
|
||||||
# Create a dedicated NGINX config
|
# Create a dedicated NGINX config
|
||||||
ynh_add_nginx_config
|
ynh_add_nginx_config
|
||||||
fi
|
fi
|
||||||
|
@ -107,25 +107,26 @@ then
|
||||||
# Delete file checksum for the old conf file location
|
# Delete file checksum for the old conf file location
|
||||||
ynh_delete_file_checksum --file="$nginx_conf_path"
|
ynh_delete_file_checksum --file="$nginx_conf_path"
|
||||||
mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf
|
mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf
|
||||||
|
|
||||||
# Store file checksum for the new config file location
|
# Store file checksum for the new config file location
|
||||||
ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC FINALISATION
|
||||||
|
#=================================================
|
||||||
|
# START SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Starting a systemd service..." --weight=10
|
||||||
|
|
||||||
|
# Start a systemd service
|
||||||
|
ynh_systemd_action --service_name=$app --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reloading NGINX web server..."
|
ynh_script_progression --message="Reloading NGINX web server..."
|
||||||
|
|
||||||
ynh_systemd_action --action=reload --service_name=nginx
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# CHECK ETHERPAD STARTING
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Restarting Etherpad..." --weight=10
|
|
||||||
|
|
||||||
# Wait for etherpad to be fully started
|
|
||||||
ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# DEACTIVE MAINTENANCE MODE
|
# DEACTIVE MAINTENANCE MODE
|
||||||
|
|
179
scripts/install
179
scripts/install
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC STARTING
|
# GENERIC START
|
||||||
#=================================================
|
#=================================================
|
||||||
# IMPORT GENERIC HELPERS
|
# IMPORT GENERIC HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -10,16 +10,14 @@ if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
|
||||||
sleep 60
|
sleep 60
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Load common variables for all scripts.
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# MANAGE FAILURE OF THE SCRIPT
|
# MANAGE SCRIPT FAILURE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_clean_setup () {
|
ynh_clean_setup () {
|
||||||
# Clean installation remainings that are not handled by the remove script.
|
|
||||||
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
|
||||||
|
@ -31,10 +29,10 @@ ynh_abort_if_errors
|
||||||
|
|
||||||
domain=$YNH_APP_ARG_DOMAIN
|
domain=$YNH_APP_ARG_DOMAIN
|
||||||
path_url=$YNH_APP_ARG_PATH
|
path_url=$YNH_APP_ARG_PATH
|
||||||
|
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||||
|
language=$YNH_APP_ARG_LANGUAGE
|
||||||
admin=$YNH_APP_ARG_ADMIN
|
admin=$YNH_APP_ARG_ADMIN
|
||||||
password="$YNH_APP_ARG_PASSWORD"
|
password="$YNH_APP_ARG_PASSWORD"
|
||||||
language=$YNH_APP_ARG_LANGUAGE
|
|
||||||
is_public=$YNH_APP_ARG_IS_PUBLIC
|
|
||||||
export=$YNH_APP_ARG_EXPORT
|
export=$YNH_APP_ARG_EXPORT
|
||||||
mypads=$YNH_APP_ARG_MYPADS
|
mypads=$YNH_APP_ARG_MYPADS
|
||||||
useldap=$YNH_APP_ARG_USELDAP
|
useldap=$YNH_APP_ARG_USELDAP
|
||||||
|
@ -64,9 +62,9 @@ ynh_script_progression --message="Storing installation settings..." --weight=3
|
||||||
|
|
||||||
ynh_app_setting_set --app=$app --key=domain --value=$domain
|
ynh_app_setting_set --app=$app --key=domain --value=$domain
|
||||||
ynh_app_setting_set --app=$app --key=path --value=$path_url
|
ynh_app_setting_set --app=$app --key=path --value=$path_url
|
||||||
|
ynh_app_setting_set --app=$app --key=language --value=$language
|
||||||
ynh_app_setting_set --app=$app --key=admin --value=$admin
|
ynh_app_setting_set --app=$app --key=admin --value=$admin
|
||||||
ynh_app_setting_set --app=$app --key=password --value="$password"
|
ynh_app_setting_set --app=$app --key=password --value="$password"
|
||||||
ynh_app_setting_set --app=$app --key=language --value=$language
|
|
||||||
ynh_app_setting_set --app=$app --key=export --value=$export
|
ynh_app_setting_set --app=$app --key=export --value=$export
|
||||||
ynh_app_setting_set --app=$app --key=mypads --value=$mypads
|
ynh_app_setting_set --app=$app --key=mypads --value=$mypads
|
||||||
ynh_app_setting_set --app=$app --key=useldap --value=$useldap
|
ynh_app_setting_set --app=$app --key=useldap --value=$useldap
|
||||||
|
@ -97,12 +95,16 @@ elif [ "$export" = "libreoffice" ]; then
|
||||||
ynh_exec_warn_less ynh_install_app_dependencies $libreoffice_app_dependencies
|
ynh_exec_warn_less ynh_install_app_dependencies $libreoffice_app_dependencies
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# INSTALL NODEJS
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Installing NodeJS..." --weight=12
|
|
||||||
|
|
||||||
ynh_install_nodejs --nodejs_version=$nodejs_version
|
ynh_install_nodejs --nodejs_version=$nodejs_version
|
||||||
|
ynh_use_nodejs
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# CREATE DEDICATED USER
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Configuring system user..." --weight=3
|
||||||
|
|
||||||
|
# Create a system user
|
||||||
|
ynh_system_user_create --username=$app --home_dir="$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CREATE A MYSQL DATABASE
|
# CREATE A MYSQL DATABASE
|
||||||
|
@ -112,15 +114,8 @@ ynh_script_progression --message="Creating a MySQL database..."
|
||||||
db_name=$(ynh_sanitize_dbid --db_name=$app)
|
db_name=$(ynh_sanitize_dbid --db_name=$app)
|
||||||
db_user=$db_name
|
db_user=$db_name
|
||||||
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
|
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
|
||||||
ynh_mysql_setup_db --db_user=$db_name --db_name=$db_name
|
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name
|
||||||
|
echo "ALTER DATABASE $db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" | ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name
|
||||||
#=================================================
|
|
||||||
# CREATE DEDICATED USER
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Configuring system user..." --weight=3
|
|
||||||
|
|
||||||
# Create a dedicated system user
|
|
||||||
ynh_system_user_create --username=$app --home_dir=$final_path
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||||
|
@ -131,6 +126,10 @@ ynh_app_setting_set --app=$app --key=final_path --value=$final_path
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
ynh_setup_source --dest_dir="$final_path"
|
ynh_setup_source --dest_dir="$final_path"
|
||||||
|
|
||||||
|
chmod 750 "$final_path"
|
||||||
|
chmod -R o-rwx "$final_path"
|
||||||
|
chown -R $app:$app "$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# NGINX CONFIGURATION
|
# NGINX CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -149,28 +148,12 @@ ynh_script_progression --message="Configuring log rotation..."
|
||||||
# Create log directory
|
# Create log directory
|
||||||
mkdir -p /var/log/$app
|
mkdir -p /var/log/$app
|
||||||
touch /var/log/$app/etherpad.log
|
touch /var/log/$app/etherpad.log
|
||||||
install_log=/var/log/$app/installation.log
|
|
||||||
touch $install_log
|
|
||||||
chown $app -R /var/log/$app
|
chown $app -R /var/log/$app
|
||||||
|
|
||||||
# Setup logrotate
|
|
||||||
ynh_use_logrotate --specific_user=$app/$app
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INSTALL ETHERPAD
|
# ADD A CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing Etherpad..." --weight=90
|
ynh_script_progression --message="Adding a configuration file..." --weight=6
|
||||||
|
|
||||||
chown -R $app: $final_path
|
|
||||||
pushd $final_path
|
|
||||||
ynh_use_nodejs
|
|
||||||
ynh_exec_as $app env "$ynh_node_load_PATH" bin/installDeps.sh
|
|
||||||
popd
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# CONFIGURE ETHERPAD
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Configuring Etherpad..." --weight=6
|
|
||||||
|
|
||||||
cp ../conf/settings.json "$final_path/settings.json"
|
cp ../conf/settings.json "$final_path/settings.json"
|
||||||
|
|
||||||
|
@ -200,17 +183,12 @@ fi
|
||||||
ynh_store_file_checksum --file="$final_path/settings.json"
|
ynh_store_file_checksum --file="$final_path/settings.json"
|
||||||
|
|
||||||
ynh_add_config --template="../conf/credentials.json" --destination="$final_path/credentials.json"
|
ynh_add_config --template="../conf/credentials.json" --destination="$final_path/credentials.json"
|
||||||
# Restrict access to credentials.json
|
|
||||||
chmod 600 $final_path/credentials.json
|
|
||||||
|
|
||||||
#=================================================
|
chmod 600 "$final_path/settings.json"
|
||||||
# SECURING FILES AND DIRECTORIES
|
chown $app:$app "$final_path/settings.json"
|
||||||
#=================================================
|
|
||||||
|
|
||||||
# Set files ownership to etherpad
|
chmod 600 "$final_path/credentials.json"
|
||||||
chmod 750 "$final_path"
|
chown $app:$app "$final_path/credentials.json"
|
||||||
chmod o-rwx "$final_path"
|
|
||||||
chown -R $app: "$final_path"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
|
@ -221,51 +199,49 @@ ynh_script_progression --message="Configuring a systemd service..." --weight=4
|
||||||
ynh_add_systemd_config
|
ynh_add_systemd_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
# INSTALL ETHERPAD'S PLUGINS
|
||||||
#=================================================
|
|
||||||
|
|
||||||
yunohost service add $app --description="Collaborative editor" --log="/var/log/$app/etherpad.log"
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# INSTALL FRAMAPAD'S PLUGINS
|
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing Etherpad plugins..." --weight=90
|
ynh_script_progression --message="Installing Etherpad plugins..." --weight=90
|
||||||
|
|
||||||
pushd "$final_path"
|
pushd "$final_path"
|
||||||
# Add Left/Center/Right/Justify to lines of text in a pad
|
# Add Left/Center/Right/Justify to lines of text in a pad
|
||||||
ynh_npm install ep_align@${ep_align_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_align@${ep_align_version}
|
||||||
# Framapad - Adds author names to span titles
|
# Framapad - Adds author names to span titles
|
||||||
ynh_npm install ep_author_hover@${ep_author_hover_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_author_hover@${ep_author_hover_version}
|
||||||
# Framapad - Adds comments on sidebar and link it to the text.
|
# Framapad - Adds comments on sidebar and link it to the text.
|
||||||
ynh_npm install ep_comments_page@${ep_comments_page_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_comments_page@${ep_comments_page_version}
|
||||||
# Framapad - Displays paragraphs, sentences, words and characters counts.
|
# Framapad - Displays paragraphs, sentences, words and characters counts.
|
||||||
ynh_npm install ep_countable@${ep_countable_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_countable@${ep_countable_version}
|
||||||
# Framapad - Delete pads which were never edited
|
# Framapad - Delete pads which were never edited
|
||||||
ynh_npm install ep_delete_empty_pads@${ep_delete_empty_pads_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_delete_empty_pads@${ep_delete_empty_pads_version}
|
||||||
# Framapad - Apply colors to fonts
|
# Framapad - Apply colors to fonts
|
||||||
ynh_npm install ep_font_color@${ep_font_color_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_font_color@${ep_font_color_version}
|
||||||
# Framapad - Adds heading support to Etherpad Lite.
|
# Framapad - Adds heading support to Etherpad Lite.
|
||||||
ynh_npm install ep_headings2@${ep_headings2_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_headings2@${ep_headings2_version}
|
||||||
# Framapad - Edit and Export as Markdown in Etherpad
|
# Framapad - Edit and Export as Markdown in Etherpad
|
||||||
ynh_npm install ep_markdown@${ep_markdown_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_markdown@${ep_markdown_version}
|
||||||
if [ $mypads -eq 1 ]; then
|
if [ $mypads -eq 1 ]; then
|
||||||
# Framapad - Groups and private pads for Etherpad
|
# Framapad - Groups and private pads for Etherpad
|
||||||
ynh_npm install ep_mypads@${mypads_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_mypads@${mypads_version}
|
||||||
fi
|
fi
|
||||||
# Framapad - Add support to do 'Spell checking'
|
# Framapad - Add support to do 'Spell checking'
|
||||||
ynh_npm install ep_spellcheck@${ep_spellcheck_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_spellcheck@${ep_spellcheck_version}
|
||||||
# Framapad - Add support for Subscript and Superscript
|
# Framapad - Add support for Subscript and Superscript
|
||||||
ynh_npm install ep_subscript_and_superscript@${ep_subscript_and_superscript_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_subscript_and_superscript@${ep_subscript_and_superscript_version}
|
||||||
# Framapad - View a table of contents for your pad
|
# Framapad - View a table of contents for your pad
|
||||||
ynh_npm install ep_table_of_contents@${ep_table_of_contents_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_table_of_contents@${ep_table_of_contents_version}
|
||||||
# Framapad - User Pad Contents font size can be set in settings, this does not effect other peoples views
|
# Framapad - User Pad Contents font size can be set in settings, this does not effect other peoples views
|
||||||
ynh_npm install ep_font_size@${ep_font_size_version} >> $install_log 2>&1
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_font_size@${ep_font_size_version}
|
||||||
popd
|
popd
|
||||||
|
|
||||||
chown -R $app: $final_path/node_modules
|
#=================================================
|
||||||
|
# INSTALL ETHERPAD
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Installing Etherpad..." --weight=90
|
||||||
|
|
||||||
# Remove package-lock.json otherwise plugins installation and upgrade fails miserablywith 502 error
|
pushd $final_path
|
||||||
ynh_secure_remove --file="$final_path/package-lock.json"
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH bin/installDeps.sh
|
||||||
|
popd
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SOME HACKS
|
# SOME HACKS
|
||||||
|
@ -273,6 +249,8 @@ ynh_secure_remove --file="$final_path/package-lock.json"
|
||||||
|
|
||||||
if [ $mypads -eq 1 ]
|
if [ $mypads -eq 1 ]
|
||||||
then
|
then
|
||||||
|
ynh_script_progression --message="Some hacks..."
|
||||||
|
|
||||||
# Add a link to Etherpad to allow anonymous pads creation from MyPads.
|
# Add a link to Etherpad to allow anonymous pads creation from MyPads.
|
||||||
ynh_replace_string --match_string="^ *\"DESCRIPTION\": .*</ul>" --replace_string="&<a href=../>Pads anonymes</a>" --target_file=$final_path/node_modules/ep_mypads/static/l10n/fr.json
|
ynh_replace_string --match_string="^ *\"DESCRIPTION\": .*</ul>" --replace_string="&<a href=../>Pads anonymes</a>" --target_file=$final_path/node_modules/ep_mypads/static/l10n/fr.json
|
||||||
ynh_replace_string --match_string="^ *\"DESCRIPTION\": .*</ul>" --replace_string="&<a href=../>Anonymous pads</a>" --target_file=$final_path/node_modules/ep_mypads/static/l10n/en.json
|
ynh_replace_string --match_string="^ *\"DESCRIPTION\": .*</ul>" --replace_string="&<a href=../>Anonymous pads</a>" --target_file=$final_path/node_modules/ep_mypads/static/l10n/en.json
|
||||||
|
@ -284,6 +262,40 @@ then
|
||||||
sed -i '157i<center><br><font size="4"><a href="./mypads/" style="text-decoration: none; color: #555">MyPads</a></font></center>' $final_path/src/templates/index.html
|
sed -i '157i<center><br><font size="4"><a href="./mypads/" style="text-decoration: none; color: #555">MyPads</a></font></center>' $final_path/src/templates/index.html
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC FINALIZATION
|
||||||
|
#=================================================
|
||||||
|
# SETUP LOGROTATE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Configuring log rotation..."
|
||||||
|
|
||||||
|
# Use logrotate to manage application logfile(s)
|
||||||
|
ynh_use_logrotate
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# INTEGRATE SERVICE IN YUNOHOST
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Integrating service in YunoHost..."
|
||||||
|
|
||||||
|
yunohost service add $app --description="Collaborative editor" --log="/var/log/$app/etherpad.log"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# START SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Starting a systemd service..." --weight=20
|
||||||
|
|
||||||
|
# Start a systemd service
|
||||||
|
ynh_systemd_action --service_name=$app --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
||||||
|
|
||||||
|
if [ $mypads -eq 1 ]
|
||||||
|
then
|
||||||
|
ynh_replace_string --match_string="__LANGUAGE__" --replace_string="$language" --target_file="../conf/lang_mypads.sql"
|
||||||
|
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < "../conf/lang_mypads.sql"
|
||||||
|
|
||||||
|
# Wait for etherpad to be fully started
|
||||||
|
ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP FAIL2BAN
|
# SETUP FAIL2BAN
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -297,7 +309,11 @@ ynh_add_fail2ban_config --logpath="/var/log/nginx/$domain-access.log" --failrege
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Configuring permissions..." --weight=2
|
ynh_script_progression --message="Configuring permissions..." --weight=2
|
||||||
|
|
||||||
if [ $is_public -eq 1 ]; then
|
# 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"
|
ynh_permission_update --permission="main" --add="visitors"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -309,24 +325,7 @@ ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin --aut
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reloading NGINX web server..."
|
ynh_script_progression --message="Reloading NGINX web server..."
|
||||||
|
|
||||||
ynh_systemd_action --action=reload --service_name=nginx
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# CHECK ETHERPAD STARTING
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Restarting Etherpad..." --weight=20
|
|
||||||
|
|
||||||
# Wait for etherpad to be fully started
|
|
||||||
ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
|
||||||
|
|
||||||
if [ $mypads -eq 1 ]
|
|
||||||
then
|
|
||||||
ynh_replace_string --match_string="__LANGUAGE__" --replace_string="$language" --target_file="../conf/lang_mypads.sql"
|
|
||||||
mysql -u $db_name -p$db_pwd $db_name < "../conf/lang_mypads.sql"
|
|
||||||
|
|
||||||
# Wait for etherpad to be fully started
|
|
||||||
ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SEND A README FOR THE ADMIN
|
# SEND A README FOR THE ADMIN
|
||||||
|
|
|
@ -17,9 +17,10 @@ ynh_script_progression --message="Loading installation settings..." --weight=3
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
|
||||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
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)
|
||||||
export=$(ynh_app_setting_get --app=$app --key=export)
|
export=$(ynh_app_setting_get --app=$app --key=export)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -28,7 +29,7 @@ export=$(ynh_app_setting_get --app=$app --key=export)
|
||||||
# REMOVE SERVICE INTEGRATION IN YUNOHOST
|
# REMOVE SERVICE INTEGRATION IN YUNOHOST
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Remove the service from the list of services known, YunoHost (added from `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 >/dev/null
|
if ynh_exec_warn_less yunohost service status $app >/dev/null
|
||||||
then
|
then
|
||||||
ynh_script_progression --message="Removing $app service integration..." --weight=2
|
ynh_script_progression --message="Removing $app service integration..." --weight=2
|
||||||
|
@ -44,22 +45,12 @@ ynh_script_progression --message="Stopping and removing the systemd service..."
|
||||||
ynh_remove_systemd_config
|
ynh_remove_systemd_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE DEPENDENCIES
|
# REMOVE LOGROTATE CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Removing logrotate configuration..."
|
||||||
|
|
||||||
if [ "$export" != "none" ]
|
# Remove the app-specific logrotate config
|
||||||
then
|
ynh_remove_logrotate
|
||||||
ynh_script_progression --message="Removing dependencies..." --weight=60
|
|
||||||
# Remove metapackage and its dependencies
|
|
||||||
ynh_exec_warn_less ynh_remove_app_dependencies
|
|
||||||
fi
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# REMOVE NODEJS
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Removing NodeJS version for Etherpad..." --weight=3
|
|
||||||
|
|
||||||
ynh_remove_nodejs
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE THE MYSQL DATABASE
|
# REMOVE THE MYSQL DATABASE
|
||||||
|
@ -67,12 +58,12 @@ ynh_remove_nodejs
|
||||||
ynh_script_progression --message="Removing the MySQL database..." --weight=2
|
ynh_script_progression --message="Removing the MySQL database..." --weight=2
|
||||||
|
|
||||||
# Remove a database if it exists, along with the associated user
|
# Remove a database if it exists, along with the associated user
|
||||||
ynh_mysql_remove_db --db_user=$db_name --db_name=$db_name
|
ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE APP MAIN DIR
|
# REMOVE APP MAIN DIR
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Removing the app main directory..."
|
ynh_script_progression --message="Removing app main directory..."
|
||||||
|
|
||||||
# Remove the app directory securely
|
# Remove the app directory securely
|
||||||
ynh_secure_remove --file="$final_path"
|
ynh_secure_remove --file="$final_path"
|
||||||
|
@ -86,14 +77,17 @@ ynh_script_progression --message="Removing NGINX web server configuration..." --
|
||||||
ynh_remove_nginx_config
|
ynh_remove_nginx_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE LOGROTATE CONFIGURATION
|
# REMOVE DEPENDENCIES
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Removing logrotate configuration..."
|
ynh_script_progression --message="Removing dependencies..."
|
||||||
|
|
||||||
ynh_secure_remove --file="/var/log/$app"
|
if [ "$export" != "none" ]
|
||||||
|
then
|
||||||
|
# Remove metapackage and its dependencies
|
||||||
|
ynh_exec_warn_less ynh_remove_app_dependencies
|
||||||
|
fi
|
||||||
|
|
||||||
# Remove the app-specific logrotate config
|
ynh_remove_nodejs
|
||||||
ynh_remove_logrotate
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE FAIL2BAN CONFIGURATION
|
# REMOVE FAIL2BAN CONFIGURATION
|
||||||
|
@ -103,6 +97,16 @@ ynh_script_progression --message="Removing Fail2Ban configuration..." --weight=7
|
||||||
# Remove the dedicated Fail2Ban config
|
# Remove the dedicated Fail2Ban config
|
||||||
ynh_remove_fail2ban_config
|
ynh_remove_fail2ban_config
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# SPECIFIC REMOVE
|
||||||
|
#=================================================
|
||||||
|
# REMOVE VARIOUS FILES
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Removing various files..."
|
||||||
|
|
||||||
|
# Remove the log files
|
||||||
|
ynh_secure_remove --file="/var/log/$app"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALIZATION
|
# GENERIC FINALIZATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
135
scripts/restore
135
scripts/restore
|
@ -15,7 +15,6 @@ source /usr/share/yunohost/helpers
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_clean_setup () {
|
ynh_clean_setup () {
|
||||||
# Clean installation remainings that are not handled by the remove script.
|
|
||||||
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
|
||||||
|
@ -24,7 +23,7 @@ ynh_abort_if_errors
|
||||||
#=================================================
|
#=================================================
|
||||||
# LOAD SETTINGS
|
# LOAD SETTINGS
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Loading settings.." --weight=3
|
ynh_script_progression --message="Loading installation settings..." --weight=3
|
||||||
|
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
|
@ -32,6 +31,7 @@ domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||||
|
db_user=$db_name
|
||||||
export=$(ynh_app_setting_get --app=$app --key=export)
|
export=$(ynh_app_setting_get --app=$app --key=export)
|
||||||
mypads=$(ynh_app_setting_get --app=$app --key=mypads)
|
mypads=$(ynh_app_setting_get --app=$app --key=mypads)
|
||||||
admin=$(ynh_app_setting_get --app=$app --key=admin)
|
admin=$(ynh_app_setting_get --app=$app --key=admin)
|
||||||
|
@ -45,20 +45,15 @@ ynh_script_progression --message="Validating restoration parameters..."
|
||||||
test ! -d $final_path \
|
test ! -d $final_path \
|
||||||
|| ynh_die --message="There is already a directory: $final_path "
|
|| ynh_die --message="There is already a directory: $final_path "
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# ACTIVATE MAINTENANCE MODE
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Activating maintenance mode..." --weight=2
|
|
||||||
|
|
||||||
ynh_maintenance_mode_ON
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD RESTORATION STEPS
|
# STANDARD RESTORATION STEPS
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE THE NGINX CONFIGURATION
|
# RECREATE THE DEDICATED USER
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Recreating the dedicated system user..." --weight=2
|
||||||
|
|
||||||
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
# Create the dedicated user (if not existing)
|
||||||
|
ynh_system_user_create --username=$app --home_dir="$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE THE APP MAIN DIR
|
# RESTORE THE APP MAIN DIR
|
||||||
|
@ -67,41 +62,29 @@ ynh_script_progression --message="Restoring the app main directory..." --weight=
|
||||||
|
|
||||||
ynh_restore_file --origin_path="$final_path"
|
ynh_restore_file --origin_path="$final_path"
|
||||||
|
|
||||||
#=================================================
|
chmod 750 "$final_path"
|
||||||
# RESTORE THE MYSQL DATABASE
|
chmod -R o-rwx "$final_path"
|
||||||
#=================================================
|
chown -R $app:$app "$final_path"
|
||||||
ynh_script_progression --message="Restoring the MySQL database..." --weight=2
|
|
||||||
|
|
||||||
db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
|
chmod 600 "$final_path/settings.json"
|
||||||
ynh_mysql_setup_db --db_user=$db_name --db_name=$db_name --db_pwd=$db_pwd
|
chown $app:$app "$final_path/settings.json"
|
||||||
ynh_mysql_connect_as --user=$db_name --password=$db_pwd --database=$db_name < ./db.sql
|
|
||||||
|
chmod 600 "$final_path/credentials.json"
|
||||||
|
chown $app:$app "$final_path/credentials.json"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RECREATE THE DEDICATED USER
|
# RESTORE FAIL2BAN CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Recreating the dedicated system user..." --weight=2
|
ynh_script_progression --message="Restoring the Fail2Ban configuration..." --weight=6
|
||||||
|
|
||||||
# Create the dedicated user (if not existing)
|
ynh_restore_file --origin_path="/etc/fail2ban/jail.d/$app.conf"
|
||||||
ynh_system_user_create --username=$app --home_dir=$final_path
|
ynh_restore_file --origin_path="/etc/fail2ban/filter.d/$app.conf"
|
||||||
|
ynh_systemd_action --action=restart --service_name=fail2ban
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC RESTORE
|
# SPECIFIC RESTORATION
|
||||||
#=================================================
|
#=================================================
|
||||||
# HANDLE LOG FILES AND LOGROTATE
|
# REINSTALL DEPENDENCIES
|
||||||
#=================================================
|
|
||||||
|
|
||||||
mkdir -p /var/log/$app
|
|
||||||
touch /var/log/$app/etherpad.log
|
|
||||||
install_log=/var/log/$app/installation.log
|
|
||||||
touch $install_log
|
|
||||||
chown $app -R /var/log/$app
|
|
||||||
chown admin -R $install_log
|
|
||||||
|
|
||||||
# Restore logrotate configuration
|
|
||||||
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# INSTALL DEPENDENCIES
|
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reinstalling dependencies..." --weight=60
|
ynh_script_progression --message="Reinstalling dependencies..." --weight=60
|
||||||
|
|
||||||
|
@ -110,36 +93,33 @@ if [ "$export" = "abiword" ]; then
|
||||||
elif [ "$export" = "libreoffice" ]; then
|
elif [ "$export" = "libreoffice" ]; then
|
||||||
ynh_exec_warn_less ynh_install_app_dependencies $libreoffice_app_dependencies
|
ynh_exec_warn_less ynh_install_app_dependencies $libreoffice_app_dependencies
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# INSTALL NODEJS
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Reinstalling NodeJS..." --weight=7
|
|
||||||
|
|
||||||
ynh_install_nodejs --nodejs_version=$nodejs_version
|
ynh_install_nodejs --nodejs_version=$nodejs_version
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# INSTALL ETHERPAD DEPENDENCIES
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Reinstalling Etherpad node dependencies..." --weight=17
|
|
||||||
|
|
||||||
ynh_use_nodejs
|
ynh_use_nodejs
|
||||||
ynh_exec_warn_less npm cache clean --force
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE USER RIGHTS
|
# RESTORE THE NGINX CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Restoring the NGINX web server configuration..."
|
||||||
|
|
||||||
# Restore permissions on app files
|
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
chmod 750 "$final_path"
|
|
||||||
chmod o-rwx "$final_path"
|
|
||||||
chown -R $app: "$final_path"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
# RESTORE THE MYSQL DATABASE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Restoring the MySQL database..." --weight=2
|
||||||
|
|
||||||
|
db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
|
||||||
|
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
|
||||||
|
echo "ALTER DATABASE $db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" | ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name
|
||||||
|
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# HANDLE LOG FILES AND LOGROTATE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
yunohost service add $app --description="Collaborative editor" --log="/var/log/$app/etherpad.log"
|
mkdir -p /var/log/$app
|
||||||
|
touch /var/log/$app/etherpad.log
|
||||||
|
chown $app -R /var/log/$app
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE SYSTEMD
|
# RESTORE SYSTEMD
|
||||||
|
@ -150,14 +130,28 @@ ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
|
||||||
systemctl enable $app.service --quiet
|
systemctl enable $app.service --quiet
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE FAIL2BAN CONFIGURATION
|
# RESTORE THE LOGROTATE CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Restoring the Fail2Ban configuration..." --weight=6
|
ynh_script_progression --message="Restoring the logrotate configuration..."
|
||||||
|
|
||||||
ynh_restore_file "/etc/fail2ban/jail.d/$app.conf"
|
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
||||||
ynh_restore_file "/etc/fail2ban/filter.d/$app.conf"
|
|
||||||
ynh_systemd_action --action=restart --service_name=fail2ban
|
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# INTEGRATE SERVICE IN YUNOHOST
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Integrating service in YunoHost..."
|
||||||
|
|
||||||
|
yunohost service add $app --description="Collaborative editor" --log="/var/log/$app/etherpad.log"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# START SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Starting a systemd service..." --weight=8
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=$app --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC FINALIZATION
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -165,21 +159,6 @@ ynh_script_progression --message="Reloading NGINX web server..."
|
||||||
|
|
||||||
ynh_systemd_action --action=reload --service_name=nginx
|
ynh_systemd_action --action=reload --service_name=nginx
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# CHECK ETHERPAD STARTING
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Restarting Etherpad..." --weight=8
|
|
||||||
|
|
||||||
# Wait for etherpad to be fully started
|
|
||||||
ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# DEACTIVE MAINTENANCE MODE
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Disabling maintenance mode..." --weight=7
|
|
||||||
|
|
||||||
ynh_maintenance_mode_OFF
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SEND A README FOR THE ADMIN
|
# SEND A README FOR THE ADMIN
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
305
scripts/upgrade
305
scripts/upgrade
|
@ -1,12 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC STARTING
|
# GENERIC START
|
||||||
#=================================================
|
#=================================================
|
||||||
# IMPORT GENERIC HELPERS
|
# IMPORT GENERIC HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Load common variables for all scripts.
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
@ -19,8 +18,8 @@ app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||||
admin=$(ynh_app_setting_get --app=$app --key=admin)
|
|
||||||
language=$(ynh_app_setting_get --app=$app --key=language)
|
language=$(ynh_app_setting_get --app=$app --key=language)
|
||||||
|
admin=$(ynh_app_setting_get --app=$app --key=admin)
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||||
export=$(ynh_app_setting_get --app=$app --key=export)
|
export=$(ynh_app_setting_get --app=$app --key=export)
|
||||||
|
@ -30,6 +29,7 @@ db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
|
||||||
password=$(ynh_app_setting_get --app=$app --key=password)
|
password=$(ynh_app_setting_get --app=$app --key=password)
|
||||||
mypads=$(ynh_app_setting_get --app=$app --key=mypads)
|
mypads=$(ynh_app_setting_get --app=$app --key=mypads)
|
||||||
useldap=$(ynh_app_setting_get --app=$app --key=useldap)
|
useldap=$(ynh_app_setting_get --app=$app --key=useldap)
|
||||||
|
abiword=$(ynh_app_setting_get --app=$app --key=abiword)
|
||||||
overwrite_settings=$(ynh_app_setting_get --app=$app --key=overwrite_settings)
|
overwrite_settings=$(ynh_app_setting_get --app=$app --key=overwrite_settings)
|
||||||
overwrite_credentials=$(ynh_app_setting_get --app=$app --key=overwrite_credentials)
|
overwrite_credentials=$(ynh_app_setting_get --app=$app --key=overwrite_credentials)
|
||||||
overwrite_nginx=$(ynh_app_setting_get --app=$app --key=overwrite_nginx)
|
overwrite_nginx=$(ynh_app_setting_get --app=$app --key=overwrite_nginx)
|
||||||
|
@ -45,12 +45,44 @@ pad_config_show_markdown=$(ynh_app_setting_get --app=$app --key=pad_config_show_
|
||||||
#=================================================
|
#=================================================
|
||||||
# CHECK VERSION
|
# CHECK VERSION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
ynh_script_progression --message="Checking version..."
|
||||||
|
|
||||||
# Wait for etherpad to be fully started
|
# Wait for etherpad to be fully started
|
||||||
ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
||||||
|
|
||||||
upgrade_type=$(ynh_check_app_version_changed)
|
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)..." --weight=35
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# ACTIVATE MAINTENANCE MODE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Activating maintenance mode..." --weight=2
|
||||||
|
|
||||||
|
ynh_maintenance_mode_ON
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# STANDARD UPGRADE STEPS
|
||||||
|
#=================================================
|
||||||
|
# STOP SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Stopping a systemd service..." --weight=3
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=$app --action="stop"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# ENSURE DOWNWARD COMPATIBILITY
|
# ENSURE DOWNWARD COMPATIBILITY
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -141,47 +173,14 @@ else
|
||||||
ynh_permission_url --permission="admin" --auth_header=false
|
ynh_permission_url --permission="admin" --auth_header=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=35
|
|
||||||
|
|
||||||
# Backup the current version of the app
|
|
||||||
ynh_backup_before_upgrade
|
|
||||||
ynh_clean_setup () {
|
|
||||||
# Clean installation remainings that are not handled by the remove script.
|
|
||||||
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
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# ACTIVATE MAINTENANCE MODE
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Activating maintenance mode..." --weight=2
|
|
||||||
|
|
||||||
ynh_maintenance_mode_ON
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# STOP ETHERPAD
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Stopping Etherpad service..." --weight=3
|
|
||||||
|
|
||||||
ynh_systemd_action --action=stop
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CREATE DEDICATED USER
|
# CREATE DEDICATED USER
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Making sure dedicated system user exists..."
|
ynh_script_progression --message="Making sure dedicated system user exists..."
|
||||||
|
|
||||||
# Create a dedicated user (if not existing)
|
# Create a dedicated user (if not existing)
|
||||||
ynh_system_user_create --username=$app --home_dir=$final_path
|
ynh_system_user_create --username=$app --home_dir="$final_path"
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# STANDARD UPGRADE STEPS
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -190,24 +189,14 @@ if [ "$upgrade_type" == "UPGRADE_APP" ]
|
||||||
then
|
then
|
||||||
ynh_script_progression --message="Upgrading source files..." --weight=4
|
ynh_script_progression --message="Upgrading source files..." --weight=4
|
||||||
|
|
||||||
# # Create a temporary directory
|
|
||||||
# tmpdir="$(mktemp -d)"
|
|
||||||
# # Backup the config file in the temp dir
|
|
||||||
# cp -a "$final_path/settings.json" "$tmpdir/settings.json"
|
|
||||||
|
|
||||||
ynh_secure_remove --file="$final_path"
|
|
||||||
|
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
ynh_setup_source --dest_dir="$final_path"
|
ynh_setup_source --dest_dir="$final_path" --keep="settings.json credentials.json"
|
||||||
|
|
||||||
# # Copy the admin saved settings from tmp directory to final config path
|
|
||||||
# cp -a "$tmpdir/settings.json" "$final_path/settings.json"
|
|
||||||
|
|
||||||
# # Remove the tmp directory securely
|
|
||||||
# ynh_secure_remove --file="$tmpdir"
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
chmod 750 "$final_path"
|
||||||
|
chmod -R o-rwx "$final_path"
|
||||||
|
chown -R $app:$app "$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# UPGRADE DEPENDENCIES
|
# UPGRADE DEPENDENCIES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -219,6 +208,9 @@ elif [ "$export" = "libreoffice" ]; then
|
||||||
ynh_exec_warn_less ynh_install_app_dependencies $libreoffice_app_dependencies
|
ynh_exec_warn_less ynh_install_app_dependencies $libreoffice_app_dependencies
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ynh_install_nodejs --nodejs_version=$nodejs_version
|
||||||
|
ynh_use_nodejs
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# NGINX CONFIGURATION
|
# NGINX CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -231,99 +223,15 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# UPGRADE NODEJS
|
# SPECIFIC UPGRADE
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Upgrading NodeJS..." --weight=4
|
|
||||||
|
|
||||||
ynh_install_nodejs --nodejs_version=$nodejs_version
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# HANDLE LOG FILES AND LOGROTATE
|
# HANDLE LOG FILES AND LOGROTATE
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Configuring log rotation..." --weight=1
|
ynh_script_progression --message="Configuring log rotation..." --weight=1
|
||||||
|
|
||||||
# Create log directory
|
# Create log directory
|
||||||
install_log=/var/log/$app/installation.log
|
|
||||||
touch $install_log
|
|
||||||
chown $app -R /var/log/$app
|
chown $app -R /var/log/$app
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# UPGRADE NPM MODULES
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Upgrading Etherpad..." --weight=60
|
|
||||||
|
|
||||||
# Then update the additionnal modules
|
|
||||||
chown -R $app: $final_path
|
|
||||||
|
|
||||||
pushd $final_path
|
|
||||||
ynh_use_nodejs
|
|
||||||
ynh_exec_as $app env "$ynh_node_load_PATH" src/bin/installDeps.sh
|
|
||||||
# ynh_exec_warn_less npm cache clean --force
|
|
||||||
# ynh_exec_warn_less ynh_exec_as $app env "$ynh_node_load_PATH" npm cache clean --force
|
|
||||||
# while read node_module
|
|
||||||
# do
|
|
||||||
# # Ignore ep_etherpad-lite, this part is updated before in this script.
|
|
||||||
# if [ "$node_module" = "ep_etherpad-lite" ]; then
|
|
||||||
# continue
|
|
||||||
# fi
|
|
||||||
# echo "Update $node_module"
|
|
||||||
# # Build the name of the variable with the version.
|
|
||||||
# module_version=${node_module}_version
|
|
||||||
# # Get the content of the variable (from the file _variables)
|
|
||||||
# module_version=${!module_version:-}
|
|
||||||
# # If the module has no version stored in a variable into the file, keep it empty.
|
|
||||||
# # That way, the upgrade will not be specific to a version.
|
|
||||||
# ## Otherwise, add @ before the version number to force the upgrade to this version.
|
|
||||||
# if [ -n "${module_version}" ]; then
|
|
||||||
# module_version=@${module_version}
|
|
||||||
# fi
|
|
||||||
# ynh_exec_warn_less ynh_exec_as $app env "$ynh_node_load_PATH" npm install --upgrade ${node_module}${module_version} || true
|
|
||||||
# done <<< "$(ls -1 "$final_path/node_modules" | grep "^ep_")"
|
|
||||||
popd
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# INSTALL FRAMAPAD'S PLUGINS
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Installing Etherpad plugins..." --weight=90
|
|
||||||
|
|
||||||
pushd "$final_path"
|
|
||||||
# Add Left/Center/Right/Justify to lines of text in a pad
|
|
||||||
ynh_npm install ep_align@${ep_align_version} >> $install_log 2>&1
|
|
||||||
# Framapad - Adds author names to span titles
|
|
||||||
ynh_npm install ep_author_hover@${ep_author_hover_version} >> $install_log 2>&1
|
|
||||||
# Framapad - Adds comments on sidebar and link it to the text.
|
|
||||||
ynh_npm install ep_comments_page@${ep_comments_page_version} >> $install_log 2>&1
|
|
||||||
# Framapad - Displays paragraphs, sentences, words and characters counts.
|
|
||||||
ynh_npm install ep_countable@${ep_countable_version} >> $install_log 2>&1
|
|
||||||
# Framapad - Delete pads which were never edited
|
|
||||||
ynh_npm install ep_delete_empty_pads@${ep_delete_empty_pads_version} >> $install_log 2>&1
|
|
||||||
# Framapad - Apply colors to fonts
|
|
||||||
ynh_npm install ep_font_color@${ep_font_color_version} >> $install_log 2>&1
|
|
||||||
# Framapad - Adds heading support to Etherpad Lite.
|
|
||||||
ynh_npm install ep_headings2@${ep_headings2_version} >> $install_log 2>&1
|
|
||||||
# Framapad - Edit and Export as Markdown in Etherpad
|
|
||||||
ynh_npm install ep_markdown@${ep_markdown_version} >> $install_log 2>&1
|
|
||||||
if [ $mypads -eq 1 ]; then
|
|
||||||
# Framapad - Groups and private pads for etherpad
|
|
||||||
ynh_npm install ep_mypads@${mypads_version} >> $install_log 2>&1
|
|
||||||
fi
|
|
||||||
# Framapad - Add support to do 'Spell checking'
|
|
||||||
ynh_npm install ep_spellcheck@${ep_spellcheck_version} >> $install_log 2>&1
|
|
||||||
# Framapad - Add support for Subscript and Superscript
|
|
||||||
ynh_npm install ep_subscript_and_superscript@${ep_subscript_and_superscript_version} >> $install_log 2>&1
|
|
||||||
# Framapad - View a table of contents for your pad
|
|
||||||
ynh_npm install ep_table_of_contents@${ep_table_of_contents_version} >> $install_log 2>&1
|
|
||||||
# Framapad - User Pad Contents font size can be set in settings, this does not effect other peoples views
|
|
||||||
ynh_npm install ep_font_size@${ep_font_size_version} >> $install_log 2>&1
|
|
||||||
popd
|
|
||||||
|
|
||||||
chown -R $app: $final_path/node_modules
|
|
||||||
|
|
||||||
# Remove package-lock.json otherwise plugins installation and upgrade fails miserablywith 502 error
|
|
||||||
ynh_secure_remove --file="$final_path/package-lock.json"
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# SPECIFIC UPGRADE
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE ETHERPAD
|
# CONFIGURE ETHERPAD
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -395,51 +303,68 @@ then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
chmod 600 "$final_path/settings.json"
|
||||||
# SECURING FILES AND DIRECTORIES
|
chown $app:$app "$final_path/settings.json"
|
||||||
#=================================================
|
|
||||||
|
|
||||||
# Set files ownership to Etherpad
|
|
||||||
chmod 750 "$final_path"
|
|
||||||
chmod o-rwx "$final_path"
|
|
||||||
chown -R $app: "$final_path"
|
|
||||||
# Restrict access to credentials.json
|
|
||||||
chmod 600 "$final_path/credentials.json"
|
chmod 600 "$final_path/credentials.json"
|
||||||
chown $app -R /var/log/$app/etherpad.log
|
chown $app:$app "$final_path/credentials.json"
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
yunohost service add $app --description="Collaborative editor" --log="/var/log/$app/etherpad.log"
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# UPGRADE FAIL2BAN
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Reconfiguring Fail2Ban..." --weight=8
|
|
||||||
|
|
||||||
# Create a dedicated Fail2Ban config
|
|
||||||
ynh_add_fail2ban_config --logpath="/var/log/nginx/$domain-access.log" --failregex="<HOST> .* .POST /mypads/api/auth/login HTTP/1.1. 400" --max_retry=5
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# SETUP LOGROTATE
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Upgrading logrotate configuration..." --weight=2
|
|
||||||
|
|
||||||
# Use logrotate to manage app-specific logfile(s)
|
|
||||||
ynh_use_logrotate --non-append --specific_user=$app/$app
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Upgrading systemd configuration..." --weight=2
|
ynh_script_progression --message="Upgrading systemd configuration..." --weight=2
|
||||||
|
|
||||||
# Overwrite the systemd configuration only if it's allowed
|
# Create a dedicated systemd config
|
||||||
if [ $overwrite_systemd -eq 1 ]
|
if [ $overwrite_systemd -eq 1 ]
|
||||||
then
|
then
|
||||||
ynh_add_systemd_config
|
ynh_add_systemd_config
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# INSTALL ETHERPAD'S PLUGINS
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Installing Etherpad plugins..." --weight=90
|
||||||
|
|
||||||
|
pushd "$final_path"
|
||||||
|
# Add Left/Center/Right/Justify to lines of text in a pad
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_align@${ep_align_version}
|
||||||
|
# Framapad - Adds author names to span titles
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_author_hover@${ep_author_hover_version}
|
||||||
|
# Framapad - Adds comments on sidebar and link it to the text.
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_comments_page@${ep_comments_page_version}
|
||||||
|
# Framapad - Displays paragraphs, sentences, words and characters counts.
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_countable@${ep_countable_version}
|
||||||
|
# Framapad - Delete pads which were never edited
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_delete_empty_pads@${ep_delete_empty_pads_version}
|
||||||
|
# Framapad - Apply colors to fonts
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_font_color@${ep_font_color_version}
|
||||||
|
# Framapad - Adds heading support to Etherpad Lite.
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_headings2@${ep_headings2_version}
|
||||||
|
# Framapad - Edit and Export as Markdown in Etherpad
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_markdown@${ep_markdown_version}
|
||||||
|
if [ $mypads -eq 1 ]; then
|
||||||
|
# Framapad - Groups and private pads for Etherpad
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_mypads@${mypads_version}
|
||||||
|
fi
|
||||||
|
# Framapad - Add support to do 'Spell checking'
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_spellcheck@${ep_spellcheck_version}
|
||||||
|
# Framapad - Add support for Subscript and Superscript
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_subscript_and_superscript@${ep_subscript_and_superscript_version}
|
||||||
|
# Framapad - View a table of contents for your pad
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_table_of_contents@${ep_table_of_contents_version}
|
||||||
|
# Framapad - User Pad Contents font size can be set in settings, this does not effect other peoples views
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH $ynh_npm install --no-save ep_font_size@${ep_font_size_version}
|
||||||
|
popd
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# UPGRADE NPM MODULES
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Upgrading Etherpad..." --weight=60
|
||||||
|
|
||||||
|
pushd $final_path
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH bin/installDeps.sh
|
||||||
|
popd
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SOME HACKS
|
# SOME HACKS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -450,20 +375,44 @@ then
|
||||||
sed -i '157i<center><br><font size="4"><a href="./mypads/" style="text-decoration: none; color: #555">MyPads</a></font></center>' $final_path/src/templates/index.html
|
sed -i '157i<center><br><font size="4"><a href="./mypads/" style="text-decoration: none; color: #555">MyPads</a></font></center>' $final_path/src/templates/index.html
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# GENERIC FINALIZATION
|
||||||
|
#=================================================
|
||||||
|
# SETUP LOGROTATE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Upgrading logrotate configuration..." --weight=2
|
||||||
|
|
||||||
|
# Use logrotate to manage app-specific logfile(s)
|
||||||
|
ynh_use_logrotate --non-append --specific_user=$app/$app
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# INTEGRATE SERVICE IN YUNOHOST
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Integrating service in YunoHost..."
|
||||||
|
|
||||||
|
yunohost service add $app --description="Collaborative editor" --log="/var/log/$app/etherpad.log"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# START SYSTEMD SERVICE
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Starting a systemd service..." --weight=9
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=$app --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# UPGRADE FAIL2BAN
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Reconfiguring Fail2Ban..." --weight=8
|
||||||
|
|
||||||
|
# Create a dedicated Fail2Ban config
|
||||||
|
ynh_add_fail2ban_config --logpath="/var/log/nginx/$domain-access.log" --failregex="<HOST> .* .POST /mypads/api/auth/login HTTP/1.1. 400" --max_retry=5
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reloading NGINX web server..."
|
ynh_script_progression --message="Reloading NGINX web server..."
|
||||||
|
|
||||||
ynh_systemd_action --action=reload --service_name=nginx
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# CHECK ETHERPAD STARTING
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Restarting Etherpad..." --weight=9
|
|
||||||
|
|
||||||
# Wait for etherpad to be fully started
|
|
||||||
ynh_systemd_action --action=restart --line_match="You can access your Etherpad instance at" --log_path="/var/log/$app/etherpad.log" --timeout="120"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# DEACTIVE MAINTENANCE MODE
|
# DEACTIVE MAINTENANCE MODE
|
||||||
|
|
Loading…
Add table
Reference in a new issue