mirror of
https://github.com/YunoHost-Apps/leed_ynh.git
synced 2024-09-03 19:26:32 +02:00
commit
31c60eadc0
22 changed files with 440 additions and 630 deletions
53
CHANGELOG.md
Normal file
53
CHANGELOG.md
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
Changelog
|
||||||
|
=========
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
- Nothing for now...
|
||||||
|
|
||||||
|
## [1.8.3~ynh7](https://github.com/YunoHost-Apps/leed_ynh/pull/18) - 2019-03-12
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- [Normalization from example_ynh](https://github.com/YunoHost-Apps/leed_ynh/commit/1418b13ff9c3d2f1849ad21b5c645609e3bea863)
|
||||||
|
|
||||||
|
|
||||||
|
## [1.8.3~ynh6](https://github.com/YunoHost-Apps/leed_ynh/pull/17) - 2019-02-03
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- [Add progression bar](https://github.com/YunoHost-Apps/leed_ynh/commit/9085643892836479b8c33bba6f5054512e4d441f)
|
||||||
|
* [Changelog & ahtml email](https://github.com/YunoHost-Apps/leed_ynh/commit/298f9ebf5767be9c6e163708cc69121a67aca1ed)
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- [Update php and nginx conf files to php7](https://github.com/YunoHost-Apps/leed_ynh/commit/1b1b0a4b906edb03a38262f9a63d9d72742480cd)
|
||||||
|
|
||||||
|
|
||||||
|
## [1.8.3~ynh5](https://github.com/YunoHost-Apps/leed_ynh/pull/16) - 2019-01-21
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- [Advertise config-panel and actions](https://github.com/YunoHost-Apps/leed_ynh/commit/c725a8e6b529d2e595022f860de58bd091390a0b)
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- [Update to last standart](https://github.com/YunoHost-Apps/leed_ynh/commit/92d36df30a9ea32a6c9e8a0dfa1f406fe7a49be3)
|
||||||
|
|
||||||
|
|
||||||
|
## [1.8.3~ynh4](https://github.com/YunoHost-Apps/leed_ynh/pull/15) - 2018-09-30
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
* [Add Panel-config and actions](https://github.com/YunoHost-Apps/leed_ynh/commit/83253f60ff31f0ac7a4fe29e80e79c0cebbd3ad1)
|
||||||
|
|
||||||
|
|
||||||
|
## [1.8.3~ynh4](https://github.com/YunoHost-Apps/leed_ynh/pull/14) - 2018-08-05
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- [Fix fail2ban helper](https://github.com/YunoHost-Apps/leed_ynh/commit/c4b966ff2a977b8c0923d4f8ad403d86454883cb)
|
||||||
|
|
||||||
|
|
||||||
|
## [1.8.3~ynh4](https://github.com/YunoHost-Apps/leed_ynh/pull/13) - 2018-07-16
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- [Upgrade helpers](https://github.com/YunoHost-Apps/leed_ynh/commit/5cb8744ee1145971518328b242edd68b7ec1310c)
|
||||||
|
|
||||||
|
|
||||||
|
## [1.8.3~ynh3](https://github.com/YunoHost-Apps/leed_ynh/pull/11) - 2018-03-14
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- [Update helpers](https://github.com/YunoHost-Apps/leed_ynh/commit/1952ec18681135ecd13d32e53ecf86684ad1ff29)
|
14
README.md
14
README.md
|
@ -1,11 +1,11 @@
|
||||||
# Leed for YunoHost
|
# Leed for YunoHost
|
||||||
|
|
||||||
[](https://dash.yunohost.org/appci/app/leed)
|
[](https://dash.yunohost.org/appci/app/leed)  
|
||||||
[](https://install-app.yunohost.org/?app=leed)
|
[](https://install-app.yunohost.org/?app=leed)
|
||||||
|
|
||||||
*[Lire ce readme en français.](./README_fr.md)*
|
*[Lire ce readme en français.](./README_fr.md)*
|
||||||
|
|
||||||
> *This package allow you to install leed quickly and simply on a YunoHost server.
|
> *This package allow you to install Leed quickly and simply on a YunoHost server.
|
||||||
If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.*
|
If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.*
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
@ -31,7 +31,7 @@ Use the admin panel of your Leed to configure this app.
|
||||||
|
|
||||||
## YunoHost specific features
|
## YunoHost specific features
|
||||||
|
|
||||||
* Login secured by fail2ban
|
* Login secured by Fail2Ban
|
||||||
|
|
||||||
#### Multi-users support
|
#### Multi-users support
|
||||||
|
|
||||||
|
@ -39,9 +39,8 @@ Not supported.
|
||||||
|
|
||||||
#### Supported architectures
|
#### Supported architectures
|
||||||
|
|
||||||
* x86-64b - [](https://ci-apps.yunohost.org/ci/apps/leed/)
|
* x86-64 - [](https://ci-apps.yunohost.org/ci/apps/leed/)
|
||||||
* ARMv8-A - [](https://ci-apps-arm.yunohost.org/ci/apps/leed/)
|
* ARMv8-A - [](https://ci-apps-arm.yunohost.org/ci/apps/leed/)
|
||||||
* Jessie x86-64b - [](https://ci-stretch.nohost.me/ci/apps/leed/)
|
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
|
|
||||||
|
@ -56,8 +55,7 @@ Not supported.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Developers infos
|
## Developers infos
|
||||||
----------------
|
|
||||||
|
|
||||||
Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/leed_ynh/tree/testing).
|
Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/leed_ynh/tree/testing).
|
||||||
|
|
||||||
|
|
28
README_fr.md
28
README_fr.md
|
@ -1,17 +1,17 @@
|
||||||
# Leed pour YunoHost
|
# Leed pour YunoHost
|
||||||
|
|
||||||
[](https://dash.yunohost.org/appci/app/leed)
|
[](https://dash.yunohost.org/appci/app/leed)  
|
||||||
[](https://install-app.yunohost.org/?app=leed)
|
[](https://install-app.yunohost.org/?app=leed)
|
||||||
|
|
||||||
*[Read this readme in english.](./README.md)*
|
*[Read this readme in english.](./README.md)*
|
||||||
|
|
||||||
> *Ce package vous permet d'installer leed rapidement et simplement sur un serveur YunoHost.
|
> *Ce package vous permet d'installer Leed rapidement et simplement sur un serveur YunoHost.
|
||||||
Si vous n'avez pas YunoHost, merci de regarder [ici](https://yunohost.org/#/install_fr) pour savoir comment l'installer et en profiter.*
|
Si vous n'avez pas YunoHost, merci de regarder [ici](https://yunohost.org/#/install_fr) pour savoir comment l'installer et en profiter.*
|
||||||
|
|
||||||
## Résumé
|
## Résumé
|
||||||
Leed (contraction de Light Feed) est un agrégateur RSS/ATOM minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive.
|
Leed (contraction de Light Feed) est un agrégateur RSS/ATOM minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive.
|
||||||
|
|
||||||
**Version embarquée:** 1.8.3
|
**Version embarquée :** 1.8.3
|
||||||
|
|
||||||
## Captures d'écran
|
## Captures d'écran
|
||||||
|
|
||||||
|
@ -23,15 +23,15 @@ Aucune démo pour cette application.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Utiliser le panneau d'administration de votre Jenkins pour configurer cette application.
|
Utiliser le panneau d'administration de votre Leed pour configurer cette application.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
* Documentation YunoHost: Il n'y a pas d'autre documentation, n'hésitez pas à contribuer.
|
* Documentation YunoHost : Il n'y a pas d'autre documentation, n'hésitez pas à contribuer.
|
||||||
|
|
||||||
## Fonctionnalités spécifiques à YunoHost
|
## Fonctionnalités spécifiques à YunoHost
|
||||||
|
|
||||||
* Login sécurisé par fail2ban
|
* Login sécurisé par Fail2Ban
|
||||||
|
|
||||||
#### Support multi-utilisateurs
|
#### Support multi-utilisateurs
|
||||||
|
|
||||||
|
@ -39,23 +39,21 @@ Non supportée.
|
||||||
|
|
||||||
#### Architectures supportées.
|
#### Architectures supportées.
|
||||||
|
|
||||||
* x86-64b - [](https://ci-apps.yunohost.org/ci/apps/leed/)
|
* x86-64 - [](https://ci-apps.yunohost.org/ci/apps/leed/)
|
||||||
* ARMv8-A - [](https://ci-apps-arm.yunohost.org/ci/apps/leed/)
|
* ARMv8-A - [](https://ci-apps-arm.yunohost.org/ci/apps/leed/)
|
||||||
* Jessie x86-64b - [](https://ci-stretch.nohost.me/ci/apps/leed/)
|
|
||||||
|
|
||||||
## Informations additionnelles
|
## Informations additionnelles
|
||||||
|
|
||||||
## Liens
|
## Liens
|
||||||
|
|
||||||
* Reporter un bug: https://github.com/YunoHost-Apps/leed_ynh/issues
|
* Reporter un bug : https://github.com/YunoHost-Apps/leed_ynh/issues
|
||||||
* Site de Leed: http://leed.idleman.fr/
|
* Site de Leed : http://leed.idleman.fr/
|
||||||
* Dépôt de Leed: http://git.idleman.fr/LeedRSS/Leed
|
* Dépôt de Leed : http://git.idleman.fr/LeedRSS/Leed
|
||||||
* Site de YunoHost: https://yunohost.org/
|
* Site de YunoHost : https://yunohost.org/
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Informations à l'intention des développeurs
|
## Informations à l'intention des développeurs
|
||||||
----------------
|
|
||||||
|
|
||||||
Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/leed_ynh/tree/testing).
|
Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/leed_ynh/tree/testing).
|
||||||
|
|
||||||
|
|
20
actions.json
20
actions.json
|
@ -1,20 +0,0 @@
|
||||||
[{
|
|
||||||
"id": "public_private",
|
|
||||||
"name": "Move to public or private",
|
|
||||||
"command": "/bin/bash scripts/actions/public_private",
|
|
||||||
"user": "root",
|
|
||||||
"accepted_return_codes": [0],
|
|
||||||
"description": {
|
|
||||||
"en": "Change the public access of the app."
|
|
||||||
},
|
|
||||||
"arguments": [
|
|
||||||
{
|
|
||||||
"name": "is_public",
|
|
||||||
"type": "boolean",
|
|
||||||
"ask": {
|
|
||||||
"en": "Is it a public app ?"
|
|
||||||
},
|
|
||||||
"default": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}]
|
|
14
actions.toml
Normal file
14
actions.toml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[public_private]
|
||||||
|
name = "Move to public or private"
|
||||||
|
command = "/bin/bash scripts/actions/public_private"
|
||||||
|
# user = "root" # optional
|
||||||
|
# cwd = "/" # optional
|
||||||
|
# accepted_return_codes = [0, 1, 2, 3] # optional
|
||||||
|
accepted_return_codes = [0]
|
||||||
|
description = "Change the public access of the app."
|
||||||
|
|
||||||
|
[public_private.arguments]
|
||||||
|
[public_private.arguments.is_public]
|
||||||
|
type = "boolean"
|
||||||
|
ask = "Is it a public app ?"
|
||||||
|
default = true
|
|
@ -7,6 +7,16 @@
|
||||||
language="fr"
|
language="fr"
|
||||||
market=1
|
market=1
|
||||||
is_public=1 (PUBLIC|public=1|private=0)
|
is_public=1 (PUBLIC|public=1|private=0)
|
||||||
|
; Actions
|
||||||
|
is_public=0|1
|
||||||
|
; Config_panel
|
||||||
|
main.is_public.is_public=0|1
|
||||||
|
main.overwrite_files.overwrite_nginx=0|1
|
||||||
|
main.overwrite_files.overwrite_phpfpm=0|1
|
||||||
|
main.global_config.email_type=0|1
|
||||||
|
main.php_fpm_config.footprint=low|medium|high
|
||||||
|
main.php_fpm_config.free_footprint=20
|
||||||
|
main.php_fpm_config.usage=low|medium|high
|
||||||
; Checks
|
; Checks
|
||||||
pkg_linter=1
|
pkg_linter=1
|
||||||
setup_sub_dir=1
|
setup_sub_dir=1
|
||||||
|
@ -18,14 +28,13 @@
|
||||||
upgrade=1 from_commit=8b622d430db9ab860aee156a32086507669243fd
|
upgrade=1 from_commit=8b622d430db9ab860aee156a32086507669243fd
|
||||||
backup_restore=1
|
backup_restore=1
|
||||||
multi_instance=1
|
multi_instance=1
|
||||||
incorrect_path=1
|
|
||||||
port_already_use=0
|
port_already_use=0
|
||||||
change_url=1
|
change_url=1
|
||||||
;;; Levels
|
actions=1
|
||||||
Level 5=auto
|
config_panel=1
|
||||||
;;; Options
|
;;; Options
|
||||||
Email=
|
Email=
|
||||||
Notification=down
|
Notification=change
|
||||||
;;; Upgrade options
|
;;; Upgrade options
|
||||||
; commit=8b622d430db9ab860aee156a32086507669243fd
|
; commit=8b622d430db9ab860aee156a32086507669243fd
|
||||||
name=MAJ 1.8.2
|
name=MAJ 1.8.2
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
SOURCE_URL=https://github.com/LeedRSS/Leed/archive/v1.8.3.tar.gz
|
SOURCE_URL=https://github.com/LeedRSS/Leed/archive/v1.8.3.tar.gz
|
||||||
SOURCE_SUM=4fb46124695dfc8e6a3bfa5e48850547
|
SOURCE_SUM=792215b9a4429c66ac52b4619fbda4b664c83ef03543a62a8b58e2c631874001
|
||||||
SOURCE_SUM_PRG=md5sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FORMAT=tar.gz
|
SOURCE_FORMAT=tar.gz
|
||||||
SOURCE_IN_SUBDIR=true
|
SOURCE_IN_SUBDIR=true
|
||||||
SOURCE_FILENAME=
|
SOURCE_FILENAME=
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Mise a jour de leed toutes les 2 heures.
|
# Mise a jour de Leed toutes les 2 heures.
|
||||||
|
|
||||||
0 */2 * * * __ADMIN__ wget -q -O - "https://__DOMAIN____PATH__/action.php?action=synchronize&code=__CODESYNC__" > /dev/null 2>&1
|
0 */2 * * * root wget -q -O - "https://__DOMAIN____PATH__/action.php?action=synchronize&code=__CODESYNC__" > /dev/null 2>&1
|
||||||
|
|
|
@ -14,7 +14,7 @@ location __PATH__/ {
|
||||||
try_files $uri $uri/ index.php;
|
try_files $uri $uri/ index.php;
|
||||||
location ~ [^/]\.php(/|$) {
|
location ~ [^/]\.php(/|$) {
|
||||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||||
fastcgi_pass unix:/var/run/php/php7.0-fpm-__NAME__.sock;
|
fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
include fastcgi_params;
|
include fastcgi_params;
|
||||||
fastcgi_param REMOTE_USER $remote_user;
|
fastcgi_param REMOTE_USER $remote_user;
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Leed configuration panel",
|
|
||||||
"version": "0.1",
|
|
||||||
"panel": [{
|
|
||||||
"name": "Leed configuration",
|
|
||||||
"id": "main",
|
|
||||||
"sections": [{
|
|
||||||
"name": "Public access",
|
|
||||||
"id": "is_public",
|
|
||||||
"options": [{
|
|
||||||
"name": "Is it a public app ?",
|
|
||||||
"id": "is_public",
|
|
||||||
"type": "bool",
|
|
||||||
"default": true
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Overwriting config files",
|
|
||||||
"id": "overwrite_files",
|
|
||||||
"options": [{
|
|
||||||
"name": "Overwrite the nginx config file ?",
|
|
||||||
"help": "If the file is overwritten, a backup will be created.",
|
|
||||||
"id": "overwrite_nginx",
|
|
||||||
"type": "bool",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Overwrite the php-fpm config file ?",
|
|
||||||
"help": "If the file is overwritten, a backup will be created.",
|
|
||||||
"id": "overwrite_phpfpm",
|
|
||||||
"type": "bool",
|
|
||||||
"default": true
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Global configuration",
|
|
||||||
"id": "global_config",
|
|
||||||
"options": [{
|
|
||||||
"name": "Send HTML email to admin ?",
|
|
||||||
"help": "Allow app scripts to send HTML mails instead of plain text.",
|
|
||||||
"id": "email_type",
|
|
||||||
"type": "bool",
|
|
||||||
"default": true
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "PHP-FPM configuration",
|
|
||||||
"id": "php_fpm_config",
|
|
||||||
"options": [{
|
|
||||||
"name": "Memory footprint of the service ?",
|
|
||||||
"help": "low <= 20Mb per pool. medium between 20Mb and 40Mb per pool. high > 40Mb per pool. Use specific to set a value with the following option.\n<br>We can't use a choices field for now. In the meantime please choose between one of this values:\n<br>low, medium, high, specific.",
|
|
||||||
"id": "footprint",
|
|
||||||
"type": "text",
|
|
||||||
"//": "\"choices\" : [\"low\", \"medium\", \"high\", \"specific\"]",
|
|
||||||
"default" : "low"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Memory footprint of the service ?",
|
|
||||||
"help": "Free field to specify exactly the footprint in Mb if you don't want to use one of the three previous values.",
|
|
||||||
"id": "free_footprint",
|
|
||||||
"type": "number",
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Expected usage of the service ?",
|
|
||||||
"help": "low: Personal usage, behind the sso. No RAM footprint when not used, but the impact on the processor can be high if many users are using the service.\n<br>medium: Low usage, few people or/and publicly accessible. Low RAM footprint, medium processor footprint when used.\n<br>high: High usage, frequently visited website. High RAM footprint, but lower on processor usage and quickly responding.\n<br>We can't use a choices field for now. In the meantime please choose between one of this values:\n<br>low, medium, high.",
|
|
||||||
"id": "usage",
|
|
||||||
"type": "text",
|
|
||||||
"//": "\"choices\" : [\"low\", \"medium\", \"high\"]",
|
|
||||||
"default" : "low"
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
62
config_panel.toml
Normal file
62
config_panel.toml
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
version = "0.1"
|
||||||
|
name = "Leed configuration panel"
|
||||||
|
|
||||||
|
[main]
|
||||||
|
name = "Leed configuration"
|
||||||
|
|
||||||
|
[main.is_public]
|
||||||
|
name = "Public access"
|
||||||
|
|
||||||
|
[main.is_public.is_public]
|
||||||
|
ask = "Is it a public website?"
|
||||||
|
type = "boolean"
|
||||||
|
default = true
|
||||||
|
help = "A public Leed will be accessible for third party apps.<br>By turning on 'anonymous readers' in Leed configuration, you can made your feeds public."
|
||||||
|
|
||||||
|
|
||||||
|
[main.overwrite_files]
|
||||||
|
name = "Overwriting config files"
|
||||||
|
|
||||||
|
[main.overwrite_files.overwrite_nginx]
|
||||||
|
ask = "Overwrite the nginx config file?"
|
||||||
|
type = "boolean"
|
||||||
|
default = true
|
||||||
|
help = "If the file is overwritten, a backup will be created."
|
||||||
|
|
||||||
|
[main.overwrite_files.overwrite_phpfpm]
|
||||||
|
ask = "Overwrite the php-fpm config file?"
|
||||||
|
type = "boolean"
|
||||||
|
default = true
|
||||||
|
help = "If the file is overwritten, a backup will be created."
|
||||||
|
|
||||||
|
|
||||||
|
[main.global_config]
|
||||||
|
name = "Global configuration"
|
||||||
|
|
||||||
|
[main.global_config.email_type]
|
||||||
|
ask = "Send HTML email to admin?"
|
||||||
|
type = "boolean"
|
||||||
|
default = true
|
||||||
|
help = "Allow app scripts to send HTML mails instead of plain text."
|
||||||
|
|
||||||
|
|
||||||
|
[main.php_fpm_config]
|
||||||
|
name = "PHP-FPM configuration"
|
||||||
|
|
||||||
|
[main.php_fpm_config.footprint]
|
||||||
|
ask = "Memory footprint of the service?"
|
||||||
|
choices = ["low", "medium", "high", "specific"]
|
||||||
|
default = "low"
|
||||||
|
help = "low <= 20Mb per pool. medium between 20Mb and 40Mb per pool. high > 40Mb per pool.<br>Use specific to set a value with the following option."
|
||||||
|
|
||||||
|
[main.php_fpm_config.free_footprint]
|
||||||
|
ask = "Memory footprint of the service?"
|
||||||
|
type = "number"
|
||||||
|
default = "0"
|
||||||
|
help = "Free field to specify exactly the footprint in Mb if you don't want to use one of the three previous values."
|
||||||
|
|
||||||
|
[main.php_fpm_config.usage]
|
||||||
|
ask = "Expected usage of the service?"
|
||||||
|
choices = ["low", "medium", "high"]
|
||||||
|
default = "low"
|
||||||
|
help = "low: Personal usage, behind the sso. No RAM footprint when not used, but the impact on the processor can be high if many users are using the service.<br>medium: Low usage, few people or/and publicly accessible. Low RAM footprint, medium processor footprint when used.<br>high: High usage, frequently visited website. High RAM footprint, but lower on processor usage and quickly responding."
|
|
@ -3,18 +3,22 @@
|
||||||
"id": "leed",
|
"id": "leed",
|
||||||
"packaging_format": 1,
|
"packaging_format": 1,
|
||||||
"description": {
|
"description": {
|
||||||
"en": "Leed is a minimalistic RSS feed aggregator which allows quick and non-intrusive reading of feeds.",
|
"en": "Minimalistic RSS feed aggregator which allows quick and non-intrusive reading of feeds.",
|
||||||
"fr": "Leed est un agrégateur RSS minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive."
|
"fr": "Agrégateur RSS minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive."
|
||||||
},
|
},
|
||||||
"version": "1.8.3~ynh9",
|
"version": "1.8.3~ynh10",
|
||||||
"url": "http://leed.idleman.fr/",
|
"url": "http://leed.idleman.fr/",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"maintainer": {
|
"maintainer": {
|
||||||
|
"name": "None...",
|
||||||
|
"email": ""
|
||||||
|
},
|
||||||
|
"previous_maintainers": [{
|
||||||
"name": "Maniack Crudelis",
|
"name": "Maniack Crudelis",
|
||||||
"email": "maniackc_dev@crudelis.fr"
|
"email": "maniackc_dev@crudelis.fr"
|
||||||
},
|
}],
|
||||||
"requirements": {
|
"requirements": {
|
||||||
"yunohost": ">= 3.5"
|
"yunohost": ">= 3.8.1"
|
||||||
},
|
},
|
||||||
"multi_instance": true,
|
"multi_instance": true,
|
||||||
"services": [
|
"services": [
|
||||||
|
@ -75,7 +79,7 @@
|
||||||
"name": "is_public",
|
"name": "is_public",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"ask": {
|
"ask": {
|
||||||
"en": "Is it a public website ?",
|
"en": "Is it a public website?",
|
||||||
"fr": "Est-ce un site public ?"
|
"fr": "Est-ce un site public ?"
|
||||||
},
|
},
|
||||||
"default": false,
|
"default": false,
|
||||||
|
|
|
@ -1,30 +1,10 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# PERSONAL HELPERS
|
# COMMON VARIABLES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
#=================================================
|
YNH_PHP_VERSION="7.3"
|
||||||
# BACKUP
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
HUMAN_SIZE () { # Transforme une taille en Ko en une taille lisible pour un humain
|
|
||||||
human=$(numfmt --to=iec --from-unit=1K $1)
|
|
||||||
echo $human
|
|
||||||
}
|
|
||||||
|
|
||||||
CHECK_SIZE () { # Vérifie avant chaque backup que l'espace est suffisant
|
|
||||||
file_to_analyse=$1
|
|
||||||
backup_size=$(du --summarize "$file_to_analyse" | cut -f1)
|
|
||||||
free_space=$(df --output=avail "/home/yunohost.backup" | sed 1d)
|
|
||||||
|
|
||||||
if [ $free_space -le $backup_size ]
|
|
||||||
then
|
|
||||||
ynh_print_err "Espace insuffisant pour sauvegarder $file_to_analyse."
|
|
||||||
ynh_print_err "Espace disponible: $(HUMAN_SIZE $free_space)"
|
|
||||||
ynh_die "Espace nécessaire: $(HUMAN_SIZE $backup_size)"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# PACKAGE CHECK BYPASSING...
|
# PACKAGE CHECK BYPASSING...
|
||||||
|
@ -69,7 +49,7 @@ ynh_multimedia_build_main_dir () {
|
||||||
local checksum="806a827ba1902d6911095602a9221181"
|
local checksum="806a827ba1902d6911095602a9221181"
|
||||||
|
|
||||||
# Download yunohost.multimedia scripts
|
# Download yunohost.multimedia scripts
|
||||||
wget -nv https://github.com/YunoHost-Apps/yunohost.multimedia/archive/${ynh_media_release}.tar.gz
|
wget -nv https://github.com/YunoHost-Apps/yunohost.multimedia/archive/${ynh_media_release}.tar.gz 2>&1
|
||||||
|
|
||||||
# Check the control sum
|
# Check the control sum
|
||||||
echo "${checksum} ${ynh_media_release}.tar.gz" | md5sum -c --status \
|
echo "${checksum} ${ynh_media_release}.tar.gz" | md5sum -c --status \
|
||||||
|
@ -283,30 +263,6 @@ __PRE_TAG1__$(yunohost tools diagnosis | grep -B 100 "services:" | sed '/service
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_debian_release () {
|
|
||||||
lsb_release --codename --short
|
|
||||||
}
|
|
||||||
|
|
||||||
is_stretch () {
|
|
||||||
if [ "$(ynh_debian_release)" == "stretch" ]
|
|
||||||
then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
is_jessie () {
|
|
||||||
if [ "$(ynh_debian_release)" == "jessie" ]
|
|
||||||
then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
ynh_maintenance_mode_ON () {
|
ynh_maintenance_mode_ON () {
|
||||||
# Load value of $path_url and $domain from the config if their not set
|
# Load value of $path_url and $domain from the config if their not set
|
||||||
if [ -z $path_url ]; then
|
if [ -z $path_url ]; then
|
||||||
|
@ -388,63 +344,139 @@ ynh_maintenance_mode_OFF () {
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Create a changelog for an app after an upgrade.
|
# Create a changelog for an app after an upgrade from the file CHANGELOG.md.
|
||||||
#
|
#
|
||||||
# The changelog is printed into the file ./changelog for the time of the upgrade.
|
# usage: ynh_app_changelog [--format=markdown/html/plain] [--output=changelog_file] --changelog=changelog_source]
|
||||||
|
# | arg: -f --format= - Format in which the changelog will be printed
|
||||||
|
# markdown: Default format.
|
||||||
|
# html: Turn urls into html format.
|
||||||
|
# plain: Plain text changelog
|
||||||
|
# | arg: -o --output= - Output file for the changelog file (Default ./changelog)
|
||||||
|
# | arg: -c --changelog= - CHANGELOG.md source (Default ../CHANGELOG.md)
|
||||||
#
|
#
|
||||||
# In order to create a changelog, ynh_app_changelog will get info from /etc/yunohost/apps/$app/status.json
|
# The changelog is printed into the file ./changelog and ./changelog_lite
|
||||||
# In order to find the current commit use by the app.
|
|
||||||
# The remote repository, and the branch.
|
|
||||||
# The changelog will be only the commits since the current revision.
|
|
||||||
#
|
|
||||||
# Because of the need of those info, ynh_app_changelog works only
|
|
||||||
# with apps that have been installed from a list.
|
|
||||||
#
|
|
||||||
# usage: ynh_app_changelog
|
|
||||||
ynh_app_changelog () {
|
ynh_app_changelog () {
|
||||||
get_value_from_settings ()
|
# Declare an array to define the options of this helper.
|
||||||
{
|
local legacy_args=foc
|
||||||
local value="$1"
|
declare -Ar args_array=( [f]=format= [o]=output= [c]=changelog= )
|
||||||
# Extract a value from the status.json file of an installed app.
|
local format
|
||||||
|
local output
|
||||||
|
local changelog
|
||||||
|
# Manage arguments with getopts
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
format=${format:-markdown}
|
||||||
|
output=${output:-changelog}
|
||||||
|
changelog=${changelog:-../CHANGELOG.md}
|
||||||
|
|
||||||
grep "$value\": \"" /etc/yunohost/apps/$app/status.json | sed "s/.*$value\": \"\([^\"]*\).*/\1/"
|
local original_changelog="$changelog"
|
||||||
}
|
local temp_changelog="changelog_temp"
|
||||||
|
local final_changelog="$output"
|
||||||
|
|
||||||
local current_revision="$(get_value_from_settings revision)"
|
if [ ! -n "$original_changelog" ]
|
||||||
local repo="$(get_value_from_settings url)"
|
|
||||||
local branch="$(get_value_from_settings branch)"
|
|
||||||
# ynh_app_changelog works only with an app installed from a list.
|
|
||||||
if [ -z "$current_revision" ] || [ -z "$repo" ] || [ -z "$branch" ]
|
|
||||||
then
|
then
|
||||||
ynh_print_warn "Unable to build the changelog..."
|
echo "No changelog available..." > "$final_changelog"
|
||||||
touch changelog
|
echo "No changelog available..." > "${final_changelog}_lite"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fetch the history of the repository, without cloning it
|
local current_version=$(ynh_read_manifest --manifest="/etc/yunohost/apps/$YNH_APP_INSTANCE_NAME/manifest.json" --manifest_key="version")
|
||||||
mkdir git_history
|
local update_version=$(ynh_read_manifest --manifest="../manifest.json" --manifest_key="version")
|
||||||
(cd git_history
|
|
||||||
ynh_exec_warn_less git init
|
|
||||||
ynh_exec_warn_less git remote add -f origin $repo
|
|
||||||
# Get the line of the current commit of the installed app in the history.
|
|
||||||
local line_to_head=$(git log origin/$branch --pretty=oneline | grep --line-number "$current_revision" | cut -d':' -f1)
|
|
||||||
# Cut the history before the current commit, to keep only newer commits.
|
|
||||||
# Then use sed to reorganise each lines and have a nice list of commits since the last upgrade.
|
|
||||||
# This list is redirected into the file changelog
|
|
||||||
git log origin/$branch --pretty=oneline | head --lines=$(($line_to_head-1)) | sed 's/^\([[:alnum:]]*\)\(.*\)/*(\1) -> \2/g' > ../changelog)
|
|
||||||
# Remove 'Merge pull request' commits
|
|
||||||
sed -i '/Merge pull request #[[:digit:]]* from/d' changelog
|
|
||||||
# As well as conflict resolving commits
|
|
||||||
sed -i '/Merge branch .* into/d' changelog
|
|
||||||
|
|
||||||
# Get the value of admin_mail_html
|
# Get the line of the version to update to into the changelog
|
||||||
admin_mail_html=$(ynh_app_setting_get $app admin_mail_html)
|
local update_version_line=$(grep --max-count=1 --line-number "^## \[$update_version" "$original_changelog" | cut -d':' -f1)
|
||||||
admin_mail_html="${admin_mail_html:-0}"
|
# If there's no entry for this version yet into the changelog
|
||||||
|
# Get the first available version
|
||||||
# If a html email is required. Apply html to the changelog.
|
if [ -z "$update_version_line" ]
|
||||||
if [ "$admin_mail_html" -eq 1 ]
|
|
||||||
then
|
then
|
||||||
sed -in-place "s@\*(\([[:alnum:]]*\)) -> \(.*\)@* __URL_TAG1__\2__URL_TAG2__${repo}/commit/\1__URL_TAG3__@g" changelog
|
update_version_line=$(grep --max-count=1 --line-number "^##" "$original_changelog" | cut -d':' -f1)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get the length of the complete changelog.
|
||||||
|
local changelog_length=$(wc --lines "$original_changelog" | awk '{print $1}')
|
||||||
|
# Cut the file before the version to update to.
|
||||||
|
tail --lines=$(( $changelog_length - $update_version_line + 1 )) "$original_changelog" > "$temp_changelog"
|
||||||
|
|
||||||
|
# Get the length of the troncated changelog.
|
||||||
|
changelog_length=$(wc --lines "$temp_changelog" | awk '{print $1}')
|
||||||
|
# Get the line of the current version into the changelog
|
||||||
|
# Keep only the last line found
|
||||||
|
local current_version_line=$(grep --line-number "^## \[$current_version" "$temp_changelog" | cut -d':' -f1 | tail --lines=1)
|
||||||
|
# If there's no entry for this version into the changelog
|
||||||
|
# Get the last available version
|
||||||
|
if [ -z "$current_version_line" ]
|
||||||
|
then
|
||||||
|
current_version_line=$(grep --line-number "^##" "$original_changelog" | cut -d':' -f1 | tail --lines=1)
|
||||||
|
fi
|
||||||
|
# Cut the file before the current version.
|
||||||
|
# Then grep the previous version into the changelog to get the line number of the previous version
|
||||||
|
local previous_version_line=$(tail --lines=$(( $changelog_length - $current_version_line )) \
|
||||||
|
"$temp_changelog" | grep --max-count=1 --line-number "^## " | cut -d':' -f1)
|
||||||
|
# If there's no previous version into the changelog
|
||||||
|
# Go until the end of the changelog
|
||||||
|
if [ -z "$previous_version_line" ]
|
||||||
|
then
|
||||||
|
previous_version_line=$changelog_length
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Cut the file after the previous version to keep only the changelog between the current version and the version to update to.
|
||||||
|
head --lines=$(( $current_version_line + $previous_version_line - 1 )) "$temp_changelog" | tee "$final_changelog"
|
||||||
|
|
||||||
|
if [ "$format" = "html" ]
|
||||||
|
then
|
||||||
|
# Replace markdown links by html links
|
||||||
|
ynh_replace_string --match_string="\[\(.*\)\](\(.*\)))" --replace_string="<a href=\"\2\">\1</a>)" --target_file="$final_changelog"
|
||||||
|
ynh_replace_string --match_string="\[\(.*\)\](\(.*\))" --replace_string="<a href=\"\2\">\1</a>" --target_file="$final_changelog"
|
||||||
|
elif [ "$format" = "plain" ]
|
||||||
|
then
|
||||||
|
# Change title format.
|
||||||
|
ynh_replace_string --match_string="^##.*\[\(.*\)\](\(.*\)) - \(.*\)$" --replace_string="## \1 (\3) - \2" --target_file="$final_changelog"
|
||||||
|
# Change modifications lines format.
|
||||||
|
ynh_replace_string --match_string="^\([-*]\).*\[\(.*\)\]\(.*\)" --replace_string="\1 \2 \3" --target_file="$final_changelog"
|
||||||
|
fi
|
||||||
|
# else markdown. As the file is already in markdown, nothing to do.
|
||||||
|
|
||||||
|
# Keep only important changes into the changelog
|
||||||
|
# Remove all minor changes
|
||||||
|
sed '/^-/d' "$final_changelog" > "${final_changelog}_lite"
|
||||||
|
# Remove all blank lines (to keep a clear workspace)
|
||||||
|
sed --in-place '/^$/d' "${final_changelog}_lite"
|
||||||
|
# Add a blank line at the end
|
||||||
|
echo "" >> "${final_changelog}_lite"
|
||||||
|
|
||||||
|
# Clean titles if there's no significative changes
|
||||||
|
local line
|
||||||
|
local previous_line=""
|
||||||
|
while read line <&3
|
||||||
|
do
|
||||||
|
if [ -n "$previous_line" ]
|
||||||
|
then
|
||||||
|
# Remove the line if it's a title or a blank line, and the previous one was a title as well.
|
||||||
|
if ( [ "${line:0:1}" = "#" ] || [ ${#line} -eq 0 ] ) && [ "${previous_line:0:1}" = "#" ]
|
||||||
|
then
|
||||||
|
ynh_replace_special_string --match_string="${previous_line//[/.}" --replace_string="" --target_file="${final_changelog}_lite"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
previous_line="$line"
|
||||||
|
done 3< "${final_changelog}_lite"
|
||||||
|
|
||||||
|
# Remove all blank lines again
|
||||||
|
sed --in-place '/^$/d' "${final_changelog}_lite"
|
||||||
|
|
||||||
|
# Restore changelog format with blank lines
|
||||||
|
ynh_replace_string --match_string="^##.*" --replace_string="\n\n&\n" --target_file="${final_changelog}_lite"
|
||||||
|
# Remove the 2 first blank lines
|
||||||
|
sed --in-place '1,2d' "${final_changelog}_lite"
|
||||||
|
# Add a blank line at the end
|
||||||
|
echo "" >> "${final_changelog}_lite"
|
||||||
|
|
||||||
|
# If changelog are empty, add an info
|
||||||
|
if [ $(wc --words "$final_changelog" | awk '{print $1}') -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "No changes from the changelog..." > "$final_changelog"
|
||||||
|
fi
|
||||||
|
if [ $(wc --words "${final_changelog}_lite" | awk '{print $1}') -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "No significative changes from the changelog..." > "${final_changelog}_lite"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -520,158 +552,3 @@ ynh_check_ram () {
|
||||||
echo $ram
|
echo $ram
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
# Define the values to configure php-fpm
|
|
||||||
#
|
|
||||||
# usage: ynh_get_scalable_phpfpm --usage=usage --footprint=footprint [--print]
|
|
||||||
# | arg: -f, --footprint - Memory footprint of the service (low/medium/high).
|
|
||||||
# low - Less than 20Mb of ram by pool.
|
|
||||||
# medium - Between 20Mb and 40Mb of ram by pool.
|
|
||||||
# high - More than 40Mb of ram by pool.
|
|
||||||
# Or specify exactly the footprint, the load of the service as Mb by pool instead of having a standard value.
|
|
||||||
# To have this value, use the following command and stress the service.
|
|
||||||
# watch -n0.5 ps -o user,cmd,%cpu,rss -u APP
|
|
||||||
#
|
|
||||||
# | arg: -u, --usage - Expected usage of the service (low/medium/high).
|
|
||||||
# low - Personal usage, behind the sso.
|
|
||||||
# medium - Low usage, few people or/and publicly accessible.
|
|
||||||
# high - High usage, frequently visited website.
|
|
||||||
#
|
|
||||||
# | arg: -p, --print - Print the result
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# The footprint of the service will be used to defined the maximum footprint we can allow, which is half the maximum RAM.
|
|
||||||
# So it will be used to defined 'pm.max_children'
|
|
||||||
# A lower value for the footprint will allow more children for 'pm.max_children'. And so for
|
|
||||||
# 'pm.start_servers', 'pm.min_spare_servers' and 'pm.max_spare_servers' which are defined from the
|
|
||||||
# value of 'pm.max_children'
|
|
||||||
# NOTE: 'pm.max_children' can't exceed 4 times the number of processor's cores.
|
|
||||||
#
|
|
||||||
# The usage value will defined the way php will handle the children for the pool.
|
|
||||||
# A value set as 'low' will set the process manager to 'ondemand'. Children will start only if the
|
|
||||||
# service is used, otherwise no child will stay alive. This config gives the lower footprint when the
|
|
||||||
# service is idle. But will use more proc since it has to start a child as soon it's used.
|
|
||||||
# Set as 'medium', the process manager will be at dynamic. If the service is idle, a number of children
|
|
||||||
# equal to pm.min_spare_servers will stay alive. So the service can be quick to answer to any request.
|
|
||||||
# The number of children can grow if needed. The footprint can stay low if the service is idle, but
|
|
||||||
# not null. The impact on the proc is a little bit less than 'ondemand' as there's always a few
|
|
||||||
# children already available.
|
|
||||||
# Set as 'high', the process manager will be set at 'static'. There will be always as many children as
|
|
||||||
# 'pm.max_children', the footprint is important (but will be set as maximum a quarter of the maximum
|
|
||||||
# RAM) but the impact on the proc is lower. The service will be quick to answer as there's always many
|
|
||||||
# children ready to answer.
|
|
||||||
ynh_get_scalable_phpfpm () {
|
|
||||||
local legacy_args=ufp
|
|
||||||
# Declare an array to define the options of this helper.
|
|
||||||
declare -Ar args_array=( [u]=usage= [f]=footprint= [p]=print )
|
|
||||||
local usage
|
|
||||||
local footprint
|
|
||||||
local print
|
|
||||||
# Manage arguments with getopts
|
|
||||||
ynh_handle_getopts_args "$@"
|
|
||||||
# Set all characters as lowercase
|
|
||||||
footprint=${footprint,,}
|
|
||||||
usage=${usage,,}
|
|
||||||
print=${print:-0}
|
|
||||||
|
|
||||||
if [ "$footprint" = "low" ]
|
|
||||||
then
|
|
||||||
footprint=20
|
|
||||||
elif [ "$footprint" = "medium" ]
|
|
||||||
then
|
|
||||||
footprint=35
|
|
||||||
elif [ "$footprint" = "high" ]
|
|
||||||
then
|
|
||||||
footprint=50
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Define the way the process manager handle child processes.
|
|
||||||
if [ "$usage" = "low" ]
|
|
||||||
then
|
|
||||||
php_pm=ondemand
|
|
||||||
elif [ "$usage" = "medium" ]
|
|
||||||
then
|
|
||||||
php_pm=dynamic
|
|
||||||
elif [ "$usage" = "high" ]
|
|
||||||
then
|
|
||||||
php_pm=static
|
|
||||||
else
|
|
||||||
ynh_die --message="Does not recognize '$usage' as an usage value."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get the total of RAM available, except swap.
|
|
||||||
local max_ram=$(ynh_check_ram --no_swap)
|
|
||||||
|
|
||||||
less0() {
|
|
||||||
# Do not allow value below 1
|
|
||||||
if [ $1 -le 0 ]
|
|
||||||
then
|
|
||||||
echo 1
|
|
||||||
else
|
|
||||||
echo $1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Define pm.max_children
|
|
||||||
# The value of pm.max_children is the total amount of ram divide by 2 and divide again by the footprint of a pool for this app.
|
|
||||||
# So if php-fpm start the maximum of children, it won't exceed half of the ram.
|
|
||||||
php_max_children=$(( $max_ram / 2 / $footprint ))
|
|
||||||
# If process manager is set as static, use half less children.
|
|
||||||
# Used as static, there's always as many children as the value of pm.max_children
|
|
||||||
if [ "$php_pm" = "static" ]
|
|
||||||
then
|
|
||||||
php_max_children=$(( $php_max_children / 2 ))
|
|
||||||
fi
|
|
||||||
php_max_children=$(less0 $php_max_children)
|
|
||||||
|
|
||||||
# To not overload the proc, limit the number of children to 4 times the number of cores.
|
|
||||||
local core_number=$(nproc)
|
|
||||||
local max_proc=$(( $core_number * 4 ))
|
|
||||||
if [ $php_max_children -gt $max_proc ]
|
|
||||||
then
|
|
||||||
php_max_children=$max_proc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$php_pm" = "dynamic" ]
|
|
||||||
then
|
|
||||||
# Define pm.start_servers, pm.min_spare_servers and pm.max_spare_servers for a dynamic process manager
|
|
||||||
php_min_spare_servers=$(( $php_max_children / 8 ))
|
|
||||||
php_min_spare_servers=$(less0 $php_min_spare_servers)
|
|
||||||
|
|
||||||
php_max_spare_servers=$(( $php_max_children / 2 ))
|
|
||||||
php_max_spare_servers=$(less0 $php_max_spare_servers)
|
|
||||||
|
|
||||||
php_start_servers=$(( $php_min_spare_servers + ( $php_max_spare_servers - $php_min_spare_servers ) /2 ))
|
|
||||||
php_start_servers=$(less0 $php_start_servers)
|
|
||||||
else
|
|
||||||
php_min_spare_servers=0
|
|
||||||
php_max_spare_servers=0
|
|
||||||
php_start_servers=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $print -eq 1 ]
|
|
||||||
then
|
|
||||||
ynh_debug --message="Footprint=${footprint}Mb by pool."
|
|
||||||
ynh_debug --message="Process manager=$php_pm"
|
|
||||||
ynh_debug --message="Max RAM=${max_ram}Mb"
|
|
||||||
if [ "$php_pm" != "static" ]; then
|
|
||||||
ynh_debug --message="\nMax estimated footprint=$(( $php_max_children * $footprint ))"
|
|
||||||
ynh_debug --message="Min estimated footprint=$(( $php_min_spare_servers * $footprint ))"
|
|
||||||
fi
|
|
||||||
if [ "$php_pm" = "dynamic" ]; then
|
|
||||||
ynh_debug --message="Estimated average footprint=$(( $php_max_spare_servers * $footprint ))"
|
|
||||||
elif [ "$php_pm" = "static" ]; then
|
|
||||||
ynh_debug --message="Estimated footprint=$(( $php_max_children * $footprint ))"
|
|
||||||
fi
|
|
||||||
ynh_debug --message="\nRaw php-fpm values:"
|
|
||||||
ynh_debug --message="pm.max_children = $php_max_children"
|
|
||||||
if [ "$php_pm" = "dynamic" ]; then
|
|
||||||
ynh_debug --message="pm.start_servers = $php_start_servers"
|
|
||||||
ynh_debug --message="pm.min_spare_servers = $php_min_spare_servers"
|
|
||||||
ynh_debug --message="pm.max_spare_servers = $php_max_spare_servers"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,132 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Create a dedicated php-fpm config
|
|
||||||
#
|
|
||||||
# usage 1: ynh_add_fpm_config [--phpversion=7.X] [--use_template]
|
|
||||||
# | arg: -v, --phpversion - Version of php to use.
|
|
||||||
# | arg: -t, --use_template - Use this helper in template mode.
|
|
||||||
#
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# usage 2: ynh_add_fpm_config [--phpversion=7.X] --usage=usage --footprint=footprint
|
|
||||||
# | arg: -v, --phpversion - Version of php to use.#
|
|
||||||
# | arg: -f, --footprint - Memory footprint of the service (low/medium/high).
|
|
||||||
# low - Less than 20Mb of ram by pool.
|
|
||||||
# medium - Between 20Mb and 40Mb of ram by pool.
|
|
||||||
# high - More than 40Mb of ram by pool.
|
|
||||||
# Or specify exactly the footprint, the load of the service as Mb by pool instead of having a standard value.
|
|
||||||
# To have this value, use the following command and stress the service.
|
|
||||||
# watch -n0.5 ps -o user,cmd,%cpu,rss -u APP
|
|
||||||
#
|
|
||||||
# | arg: -u, --usage - Expected usage of the service (low/medium/high).
|
|
||||||
# low - Personal usage, behind the sso.
|
|
||||||
# medium - Low usage, few people or/and publicly accessible.
|
|
||||||
# high - High usage, frequently visited website.
|
|
||||||
#
|
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
|
||||||
ynh_add_fpm_config () {
|
|
||||||
# Declare an array to define the options of this helper.
|
|
||||||
local legacy_args=vtuf
|
|
||||||
declare -Ar args_array=( [v]=phpversion= [t]=use_template [u]=usage= [f]=footprint= )
|
|
||||||
local phpversion
|
|
||||||
local use_template
|
|
||||||
local usage
|
|
||||||
local footprint
|
|
||||||
# Manage arguments with getopts
|
|
||||||
ynh_handle_getopts_args "$@"
|
|
||||||
# The default behaviour is to use the template.
|
|
||||||
use_template="${use_template:-1}"
|
|
||||||
usage="${usage:-}"
|
|
||||||
footprint="${footprint:-}"
|
|
||||||
if [ -n "$usage" ] || [ -n "$footprint" ]; then
|
|
||||||
use_template=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Configure PHP-FPM 7.0 by default
|
|
||||||
phpversion="${phpversion:-7.0}"
|
|
||||||
|
|
||||||
local fpm_config_dir="/etc/php/$phpversion/fpm"
|
|
||||||
local fpm_service="php${phpversion}-fpm"
|
|
||||||
# Configure PHP-FPM 5 on Debian Jessie
|
|
||||||
if [ "$(ynh_get_debian_release)" == "jessie" ]; then
|
|
||||||
fpm_config_dir="/etc/php5/fpm"
|
|
||||||
fpm_service="php5-fpm"
|
|
||||||
fi
|
|
||||||
ynh_app_setting_set --app=$app --key=fpm_config_dir --value="$fpm_config_dir"
|
|
||||||
ynh_app_setting_set --app=$app --key=fpm_service --value="$fpm_service"
|
|
||||||
finalphpconf="$fpm_config_dir/pool.d/$app.conf"
|
|
||||||
ynh_backup_if_checksum_is_different --file="$finalphpconf"
|
|
||||||
|
|
||||||
if [ $use_template -eq 1 ]
|
|
||||||
then
|
|
||||||
# Usage 1, use the template in ../conf/php-fpm.conf
|
|
||||||
sudo cp ../conf/php-fpm.conf "$finalphpconf"
|
|
||||||
ynh_replace_string --match_string="__NAMETOCHANGE__" --replace_string="$app" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string="__USER__" --replace_string="$app" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$phpversion" --target_file="$finalphpconf"
|
|
||||||
|
|
||||||
else
|
|
||||||
# Store settings
|
|
||||||
ynh_app_setting_set --app=$app --key=fpm_footprint --value=$footprint
|
|
||||||
ynh_app_setting_set --app=$app --key=fpm_usage --value=$usage
|
|
||||||
|
|
||||||
# Usage 2, generate a php-fpm config file with ynh_get_scalable_phpfpm
|
|
||||||
ynh_get_scalable_phpfpm --usage=$usage --footprint=$footprint
|
|
||||||
|
|
||||||
# Copy the default file
|
|
||||||
sudo cp "$fpm_config_dir/pool.d/www.conf" "$finalphpconf"
|
|
||||||
|
|
||||||
# Replace standard variables into the default file
|
|
||||||
ynh_replace_string --match_string="^\[www\]" --replace_string="[$app]" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*listen = .*" --replace_string="listen = /var/run/php/php7.0-fpm-$app.sock" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string="^user = .*" --replace_string="user = $app" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string="^group = .*" --replace_string="group = $app" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*chdir = .*" --replace_string="chdir = $final_path" --target_file="$finalphpconf"
|
|
||||||
|
|
||||||
# Configure fpm children
|
|
||||||
ynh_replace_string --match_string=".*pm = .*" --replace_string="pm = $php_pm" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*pm.max_children = .*" --replace_string="pm.max_children = $php_max_children" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*pm.max_requests = .*" --replace_string="pm.max_requests = 500" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*request_terminate_timeout = .*" --replace_string="request_terminate_timeout = 1d" --target_file="$finalphpconf"
|
|
||||||
if [ "$php_pm" = "dynamic" ]
|
|
||||||
then
|
|
||||||
ynh_replace_string --match_string=".*pm.start_servers = .*" --replace_string="pm.start_servers = $php_start_servers" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*pm.min_spare_servers = .*" --replace_string="pm.min_spare_servers = $php_min_spare_servers" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*pm.max_spare_servers = .*" --replace_string="pm.max_spare_servers = $php_max_spare_servers" --target_file="$finalphpconf"
|
|
||||||
elif [ "$php_pm" = "ondemand" ]
|
|
||||||
then
|
|
||||||
ynh_replace_string --match_string=".*pm.process_idle_timeout = .*" --replace_string="pm.process_idle_timeout = 10s" --target_file="$finalphpconf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Comment unused parameters
|
|
||||||
if [ "$php_pm" != "dynamic" ]
|
|
||||||
then
|
|
||||||
ynh_replace_string --match_string=".*\(pm.start_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*\(pm.min_spare_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
|
||||||
ynh_replace_string --match_string=".*\(pm.max_spare_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
|
||||||
fi
|
|
||||||
if [ "$php_pm" != "ondemand" ]
|
|
||||||
then
|
|
||||||
ynh_replace_string --match_string=".*\(pm.process_idle_timeout = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Concatene the extra config.
|
|
||||||
if [ -e ../conf/extra_php-fpm.conf ]; then
|
|
||||||
cat ../conf/extra_php-fpm.conf >> "$finalphpconf"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
sudo chown root: "$finalphpconf"
|
|
||||||
ynh_store_file_checksum --file="$finalphpconf"
|
|
||||||
|
|
||||||
if [ -e "../conf/php-fpm.ini" ]
|
|
||||||
then
|
|
||||||
echo "Packagers ! Please do not use a separate php ini file, merge your directives in the pool file instead." >&2
|
|
||||||
finalphpini="$fpm_config_dir/conf.d/20-$app.ini"
|
|
||||||
ynh_backup_if_checksum_is_different "$finalphpini"
|
|
||||||
sudo cp ../conf/php-fpm.ini "$finalphpini"
|
|
||||||
sudo chown root: "$finalphpini"
|
|
||||||
ynh_store_file_checksum "$finalphpini"
|
|
||||||
fi
|
|
||||||
ynh_systemd_action --service_name=$fpm_service --action=reload
|
|
||||||
}
|
|
|
@ -9,6 +9,13 @@
|
||||||
source scripts/_common.sh
|
source scripts/_common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# MANAGE SCRIPT FAILURE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Exit if an error occurs during the execution of the script
|
||||||
|
ynh_abort_if_errors
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RETRIEVE ARGUMENTS
|
# RETRIEVE ARGUMENTS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -19,50 +19,47 @@ ynh_abort_if_errors
|
||||||
#=================================================
|
#=================================================
|
||||||
# LOAD SETTINGS
|
# LOAD SETTINGS
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Loading installation settings..." --weight=2
|
ynh_print_info --message="Loading installation settings..."
|
||||||
|
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
|
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
|
||||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD BACKUP STEPS
|
# DECLARE DATA AND CONF FILES TO BACKUP
|
||||||
|
#=================================================
|
||||||
|
ynh_print_info --message="Declaring files to be backed up..."
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE APP MAIN DIR
|
# BACKUP THE APP MAIN DIR
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Backing up the main app directory..."
|
|
||||||
|
|
||||||
CHECK_SIZE "$final_path"
|
|
||||||
ynh_backup --src_path="$final_path"
|
ynh_backup --src_path="$final_path"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP NGINX CONFIGURATION
|
# BACKUP NGINX CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Backing up nginx web server configuration..."
|
|
||||||
|
|
||||||
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 PHP-FPM CONFIGURATION
|
# BACKUP PHP-FPM CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Backing up php-fpm configuration..."
|
|
||||||
|
|
||||||
ynh_backup --src_path="/etc/php/7.0/fpm/pool.d/$app.conf"
|
ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE MYSQL DATABASE
|
# BACKUP THE MYSQL DATABASE
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Backing up the MySQL database..." --weight=2
|
|
||||||
|
|
||||||
ynh_mysql_dump_db --database="$db_name" > db.sql
|
ynh_mysql_dump_db --database="$db_name" > db.sql
|
||||||
CHECK_SIZE "db.sql"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP FAIL2BAN CONFIGURATION
|
# BACKUP FAIL2BAN CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Backing up fail2ban configuration"
|
|
||||||
|
|
||||||
ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf"
|
ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf"
|
||||||
ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf"
|
ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf"
|
||||||
|
@ -72,7 +69,6 @@ ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf"
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE CRON FILE
|
# BACKUP THE CRON FILE
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Backing up cron file"
|
|
||||||
|
|
||||||
ynh_backup --src_path="/etc/cron.d/$app"
|
ynh_backup --src_path="/etc/cron.d/$app"
|
||||||
|
|
||||||
|
@ -80,4 +76,4 @@ ynh_backup --src_path="/etc/cron.d/$app"
|
||||||
# END OF SCRIPT
|
# END OF SCRIPT
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_script_progression --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." --last
|
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
|
||||||
|
|
|
@ -65,7 +65,7 @@ ynh_abort_if_errors
|
||||||
#=================================================
|
#=================================================
|
||||||
# MODIFY URL IN NGINX CONF
|
# MODIFY URL IN NGINX CONF
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Updating nginx web server configuration..." --weight=2
|
ynh_script_progression --message="Updating NGINX web server configuration..." --weight=2
|
||||||
|
|
||||||
nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
|
nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ ynh_mysql_execute_as_root --sql="UPDATE leed_configuration SET value='$domain_pa
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reloading nginx web server..."
|
ynh_script_progression --message="Reloading NGINX web server..."
|
||||||
|
|
||||||
ynh_systemd_action --service_name=nginx --action=reload
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
source _ynh_add_fpm_config
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RETRIEVE ARGUMENTS
|
# RETRIEVE ARGUMENTS
|
||||||
|
@ -29,24 +28,19 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
|
|
||||||
# is_public
|
# is_public
|
||||||
old_is_public="$(ynh_app_setting_get --app=$app --key=is_public)"
|
old_is_public="$(ynh_app_setting_get --app=$app --key=is_public)"
|
||||||
old_is_public=$(bool_to_true_false $old_is_public)
|
|
||||||
is_public="${YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC:-$old_is_public}"
|
is_public="${YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC:-$old_is_public}"
|
||||||
|
|
||||||
|
|
||||||
# Overwrite nginx configuration
|
# Overwrite nginx configuration
|
||||||
old_overwrite_nginx="$(ynh_app_setting_get --app=$app --key=overwrite_nginx)"
|
old_overwrite_nginx="$(ynh_app_setting_get --app=$app --key=overwrite_nginx)"
|
||||||
old_overwrite_nginx=$(bool_to_true_false $old_overwrite_nginx)
|
|
||||||
overwrite_nginx="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX:-$old_overwrite_nginx}"
|
overwrite_nginx="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX:-$old_overwrite_nginx}"
|
||||||
|
|
||||||
# Overwrite php-fpm configuration
|
# Overwrite php-fpm configuration
|
||||||
old_overwrite_phpfpm="$(ynh_app_setting_get --app=$app --key=overwrite_phpfpm)"
|
old_overwrite_phpfpm="$(ynh_app_setting_get --app=$app --key=overwrite_phpfpm)"
|
||||||
old_overwrite_phpfpm=$(bool_to_true_false $old_overwrite_phpfpm)
|
|
||||||
overwrite_phpfpm="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_PHPFPM:-$old_overwrite_phpfpm}"
|
overwrite_phpfpm="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_PHPFPM:-$old_overwrite_phpfpm}"
|
||||||
|
|
||||||
|
|
||||||
# Type of admin mail configuration
|
# Type of admin mail configuration
|
||||||
old_admin_mail_html="$(ynh_app_setting_get --app=$app --key=admin_mail_html)"
|
old_admin_mail_html="$(ynh_app_setting_get --app=$app --key=admin_mail_html)"
|
||||||
old_admin_mail_html=$(bool_to_true_false $old_admin_mail_html)
|
|
||||||
admin_mail_html="${YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE:-$old_admin_mail_html}"
|
admin_mail_html="${YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE:-$old_admin_mail_html}"
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,6 +54,7 @@ if [ "$fpm_footprint" -eq "$fpm_footprint" ] 2> /dev/null
|
||||||
then
|
then
|
||||||
# If fpm_footprint is an integer, that's a numeric value for the footprint
|
# If fpm_footprint is an integer, that's a numeric value for the footprint
|
||||||
old_free_footprint=$fpm_footprint
|
old_free_footprint=$fpm_footprint
|
||||||
|
fpm_footprint=specific
|
||||||
else
|
else
|
||||||
old_free_footprint=0
|
old_free_footprint=0
|
||||||
fi
|
fi
|
||||||
|
@ -75,18 +70,18 @@ fpm_usage="${YNH_CONFIG_MAIN_PHP_FPM_CONFIG_USAGE:-$old_fpm_usage}"
|
||||||
|
|
||||||
show_config() {
|
show_config() {
|
||||||
# here you are supposed to read some config file/database/other then print the values
|
# here you are supposed to read some config file/database/other then print the values
|
||||||
# echo "YNH_CONFIG_${PANEL_ID}_${SECTION_ID}_${OPTION_ID}=value"
|
# ynh_return "YNH_CONFIG_${PANEL_ID}_${SECTION_ID}_${OPTION_ID}=value"
|
||||||
|
|
||||||
echo "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=$is_public"
|
ynh_return "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=$is_public"
|
||||||
|
|
||||||
echo "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX=$overwrite_nginx"
|
ynh_return "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX=$overwrite_nginx"
|
||||||
echo "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_PHPFPM=$overwrite_phpfpm"
|
ynh_return "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_PHPFPM=$overwrite_phpfpm"
|
||||||
|
|
||||||
echo "YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE=$admin_mail_html"
|
ynh_return "YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE=$admin_mail_html"
|
||||||
|
|
||||||
echo "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FOOTPRINT=$fpm_footprint"
|
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FOOTPRINT=$fpm_footprint"
|
||||||
echo "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FREE_FOOTPRINT=$free_footprint"
|
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_FREE_FOOTPRINT=$free_footprint"
|
||||||
echo "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_USAGE=$fpm_usage"
|
ynh_return "YNH_CONFIG_MAIN_PHP_FPM_CONFIG_USAGE=$fpm_usage"
|
||||||
}
|
}
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -100,22 +95,23 @@ apply_config() {
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Change public accessibility
|
# Change public accessibility
|
||||||
if [ "$is_public" = "true" ]
|
if [ "$is_public" != "$old_is_public" ]
|
||||||
|
then
|
||||||
|
if [ "$is_public" = "1" ]
|
||||||
then
|
then
|
||||||
yunohost app action run $app public_private --args is_public=1
|
yunohost app action run $app public_private --args is_public=1
|
||||||
else
|
else
|
||||||
yunohost app action run $app public_private --args is_public=0
|
yunohost app action run $app public_private --args is_public=0
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# MODIFY OVERWRITTING SETTINGS
|
# MODIFY OVERWRITTING SETTINGS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Set overwrite_nginx
|
# Set overwrite_nginx
|
||||||
overwrite_nginx=$(bool_to_01 $overwrite_nginx)
|
|
||||||
ynh_app_setting_set --app=$app --key=overwrite_nginx --value="$overwrite_nginx"
|
ynh_app_setting_set --app=$app --key=overwrite_nginx --value="$overwrite_nginx"
|
||||||
# Set overwrite_phpfpm
|
# Set overwrite_phpfpm
|
||||||
overwrite_phpfpm=$(bool_to_01 $overwrite_phpfpm)
|
|
||||||
ynh_app_setting_set --app=$app --key=overwrite_phpfpm --value="$overwrite_phpfpm"
|
ynh_app_setting_set --app=$app --key=overwrite_phpfpm --value="$overwrite_phpfpm"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -123,16 +119,26 @@ apply_config() {
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Set admin_mail_html
|
# Set admin_mail_html
|
||||||
admin_mail_html=$(bool_to_01 $admin_mail_html)
|
|
||||||
ynh_app_setting_set --app=$app --key=admin_mail_html --value="$admin_mail_html"
|
ynh_app_setting_set --app=$app --key=admin_mail_html --value="$admin_mail_html"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RECONFIGURE PHP-FPM
|
# RECONFIGURE PHP-FPM
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ "$fpm_usage" != "$old_fpm_usage" ] || [ "$fpm_footprint" != "$old_fpm_footprint" ]
|
if [ "$fpm_usage" != "$old_fpm_usage" ] || [ "$fpm_footprint" != "$old_fpm_footprint" ] || [ "$free_footprint" != "$old_free_footprint" ]
|
||||||
|
then
|
||||||
|
# If fpm_footprint is set to 'specific', use $free_footprint value.
|
||||||
|
if [ "$fpm_footprint" = "specific" ]
|
||||||
|
then
|
||||||
|
fpm_footprint=$free_footprint
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$fpm_footprint" != "0" ]
|
||||||
then
|
then
|
||||||
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint
|
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint
|
||||||
|
else
|
||||||
|
ynh_print_err --message="When selecting 'specific', you have to set a footprint value into the field below."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
source _ynh_add_fpm_config
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# MANAGE FAILURE OF THE SCRIPT
|
# MANAGE FAILURE OF THE SCRIPT
|
||||||
|
@ -77,9 +76,9 @@ ynh_setup_source --dest_dir="$final_path"
|
||||||
#=================================================
|
#=================================================
|
||||||
# NGINX CONFIGURATION
|
# NGINX CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Configuring nginx web server..." --weight=2
|
ynh_script_progression --message="Configuring NGINX web server..." --weight=2
|
||||||
|
|
||||||
# Create a dedicated nginx config
|
# Create a dedicated NGINX config
|
||||||
ynh_add_nginx_config
|
ynh_add_nginx_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -93,17 +92,18 @@ ynh_system_user_create --username=$app
|
||||||
#=================================================
|
#=================================================
|
||||||
# PHP-FPM CONFIGURATION
|
# PHP-FPM CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Configuring php-fpm..." --weight=2
|
ynh_script_progression --message="Configuring PHP-FPM..." --weight=2
|
||||||
|
|
||||||
# Create a dedicated php-fpm config
|
# Create a dedicated PHP-FPM config
|
||||||
ynh_add_fpm_config --usage=low --footprint=low
|
ynh_add_fpm_config --usage=low --footprint=low
|
||||||
|
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SPECIFIC SETUP
|
# SPECIFIC SETUP
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETTING UP WITH CURL
|
# SETTING UP WITH CURL
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing Leed with Curl..." --weight=5
|
ynh_script_progression --message="Installing Leed with cURL..." --weight=5
|
||||||
|
|
||||||
# Set right permissions for curl install
|
# Set right permissions for curl install
|
||||||
chown -R $app: $final_path
|
chown -R $app: $final_path
|
||||||
|
@ -132,7 +132,6 @@ code_sync=$(mysql -h localhost -u $db_name -p$db_pwd -s $db_name -e 'SELECT valu
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Setting up a cron file..."
|
ynh_script_progression --message="Setting up a cron file..."
|
||||||
|
|
||||||
ynh_replace_string --match_string="__ADMIN__" --replace_string="$admin" --target_file=../conf/cron_leed
|
|
||||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file=../conf/cron_leed
|
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file=../conf/cron_leed
|
||||||
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file=../conf/cron_leed
|
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file=../conf/cron_leed
|
||||||
ynh_replace_string --match_string="__CODESYNC__" --replace_string="$code_sync" --target_file=../conf/cron_leed
|
ynh_replace_string --match_string="__CODESYNC__" --replace_string="$code_sync" --target_file=../conf/cron_leed
|
||||||
|
@ -153,7 +152,7 @@ chown -R $app $final_path/cache $final_path/plugins $final_path/updates
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP FAIL2BAN
|
# SETUP FAIL2BAN
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Configuring fail2ban..." --weight=9
|
ynh_script_progression --message="Configuring Fail2Ban..." --weight=9
|
||||||
|
|
||||||
# Create a dedicated fail2ban config
|
# Create a dedicated fail2ban config
|
||||||
ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="PHP message: Leed: wrong login for .* client: <HOST>" --max_retry=5
|
ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="PHP message: Leed: wrong login for .* client: <HOST>" --max_retry=5
|
||||||
|
@ -176,7 +175,7 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reloading nginx web server..." --weight=3
|
ynh_script_progression --message="Reloading NGINX web server..." --weight=3
|
||||||
|
|
||||||
ynh_systemd_action --service_name=nginx --action=reload
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
|
|
@ -49,15 +49,15 @@ ynh_remove_nginx_config
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE PHP-FPM CONFIGURATION
|
# REMOVE PHP-FPM CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Removing php-fpm configuration..."
|
ynh_script_progression --message="Removing PHP-FPM configuration..."
|
||||||
|
|
||||||
# Remove the dedicated php-fpm config
|
# Remove the dedicated PHP-FPM config
|
||||||
ynh_remove_fpm_config
|
ynh_remove_fpm_config
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE FAIL2BAN CONFIGURATION
|
# REMOVE FAIL2BAN CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Removing fail2ban configuration..." --weight=5
|
ynh_script_progression --message="Removing Fail2Ban configuration..." --weight=5
|
||||||
|
|
||||||
# Remove the dedicated fail2ban config
|
# Remove the dedicated fail2ban config
|
||||||
ynh_remove_fail2ban_config
|
ynh_remove_fail2ban_config
|
||||||
|
|
|
@ -28,6 +28,7 @@ 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)
|
||||||
admin=$(ynh_app_setting_get --app=$app --key=admin)
|
admin=$(ynh_app_setting_get --app=$app --key=admin)
|
||||||
|
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CHECK IF THE APP CAN BE RESTORED
|
# CHECK IF THE APP CAN BE RESTORED
|
||||||
|
@ -82,7 +83,7 @@ ynh_system_user_create --username=$app
|
||||||
# RESTORE THE PHP-FPM CONFIGURATION
|
# RESTORE THE PHP-FPM CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_restore_file --origin_path="/etc/php/7.0/fpm/pool.d/$app.conf"
|
ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE FAIL2BAN CONFIGURATION
|
# RESTORE FAIL2BAN CONFIGURATION
|
||||||
|
@ -114,7 +115,7 @@ chown -R $app $final_path/cache $final_path/plugins $final_path/updates
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reloading nginx web server and php-fpm..."
|
ynh_script_progression --message="Reloading nginx web server and php-fpm..."
|
||||||
|
|
||||||
ynh_systemd_action --service_name=php7.0-fpm --action=reload
|
ynh_systemd_action --service_name=php${phpversion}-fpm --action=reload
|
||||||
ynh_systemd_action --service_name=nginx --action=reload
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
source _ynh_add_fpm_config
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# LOAD SETTINGS
|
# LOAD SETTINGS
|
||||||
|
@ -31,6 +30,7 @@ admin_mail_html=$(ynh_app_setting_get --app=$app --key=admin_mail_html)
|
||||||
|
|
||||||
fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint)
|
fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint)
|
||||||
fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage)
|
fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage)
|
||||||
|
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CHECK VERSION
|
# CHECK VERSION
|
||||||
|
@ -106,6 +106,18 @@ if [ -z "$fpm_usage" ]; then
|
||||||
ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage
|
ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# If fpm_footprint doesn't exist, create it
|
||||||
|
if [ -z "$fpm_footprint" ]; then
|
||||||
|
fpm_footprint=low
|
||||||
|
ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If fpm_usage doesn't exist, create it
|
||||||
|
if [ -z "$fpm_usage" ]; then
|
||||||
|
fpm_usage=low
|
||||||
|
ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -120,13 +132,6 @@ ynh_clean_setup () {
|
||||||
# Exit if an error occurs during the execution of the script
|
# Exit if an error occurs during the execution of the script
|
||||||
ynh_abort_if_errors
|
ynh_abort_if_errors
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# CHECK THE PATH
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
# Normalize the URL path syntax
|
|
||||||
path_url=$(ynh_normalize_url_path --path_url=$path_url)
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# ACTIVATE MAINTENANCE MODE
|
# ACTIVATE MAINTENANCE MODE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -174,7 +179,7 @@ ynh_system_user_create --username=$app
|
||||||
# Overwrite the php-fpm configuration only if it's allowed
|
# Overwrite the php-fpm configuration only if it's allowed
|
||||||
if [ $overwrite_phpfpm -eq 1 ]
|
if [ $overwrite_phpfpm -eq 1 ]
|
||||||
then
|
then
|
||||||
ynh_script_progression --message="Upgrading php-fpm configuration..." --weight=2
|
ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=2
|
||||||
# Create a dedicated php-fpm config
|
# Create a dedicated php-fpm config
|
||||||
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint
|
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint
|
||||||
fi
|
fi
|
||||||
|
@ -191,7 +196,6 @@ code_sync=$(mysql -h localhost -u $db_name -p$db_pwd -s $db_name -e 'SELECT valu
|
||||||
# SETUP CRON FILE FOR SYNCHRONISATION
|
# SETUP CRON FILE FOR SYNCHRONISATION
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ynh_replace_string --match_string="__ADMIN__" --replace_string="$admin" --target_file=../conf/cron_leed
|
|
||||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file=../conf/cron_leed
|
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file=../conf/cron_leed
|
||||||
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file=../conf/cron_leed
|
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file=../conf/cron_leed
|
||||||
ynh_replace_string --match_string="__CODESYNC__" --replace_string="$code_sync" --target_file=../conf/cron_leed
|
ynh_replace_string --match_string="__CODESYNC__" --replace_string="$code_sync" --target_file=../conf/cron_leed
|
||||||
|
@ -215,7 +219,7 @@ chown -R $app $final_path/cache $final_path/plugins $final_path/updates
|
||||||
|
|
||||||
if [ "$upgrade_type" == "UPGRADE_APP" ]
|
if [ "$upgrade_type" == "UPGRADE_APP" ]
|
||||||
then
|
then
|
||||||
ynh_script_progression --message="Upgrading Leed with curl..." --weight=4
|
ynh_script_progression --message="Upgrading Leed with cURL..." --weight=4
|
||||||
# Set the app as temporarily public for curl call
|
# Set the app as temporarily public for curl call
|
||||||
ynh_app_setting_set --app=$app --key=unprotected_uris --value="/"
|
ynh_app_setting_set --app=$app --key=unprotected_uris --value="/"
|
||||||
# Regen SSOwat configuration
|
# Regen SSOwat configuration
|
||||||
|
@ -229,7 +233,7 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
# UPGRADE FAIL2BAN
|
# UPGRADE FAIL2BAN
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reconfiguring fail2ban..." --weight=8
|
ynh_script_progression --message="Reconfiguring Fail2Ban..." --weight=8
|
||||||
|
|
||||||
# Create a dedicated fail2ban config
|
# Create a dedicated fail2ban config
|
||||||
ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="PHP message: Leed: wrong login for .* client: <HOST>" --max_retry=5
|
ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="PHP message: Leed: wrong login for .* client: <HOST>" --max_retry=5
|
||||||
|
@ -270,7 +274,16 @@ ynh_maintenance_mode_OFF
|
||||||
admin_panel="https://$(grep portal_domain /etc/ssowat/conf.json | cut -d'"' -f4)/yunohost/admin/#/apps/$app"
|
admin_panel="https://$(grep portal_domain /etc/ssowat/conf.json | cut -d'"' -f4)/yunohost/admin/#/apps/$app"
|
||||||
|
|
||||||
# Build the changelog
|
# Build the changelog
|
||||||
ynh_app_changelog || true
|
# Get the value of admin_mail_html
|
||||||
|
admin_mail_html=$(ynh_app_setting_get $app admin_mail_html)
|
||||||
|
admin_mail_html="${admin_mail_html:-0}"
|
||||||
|
# If a html email is required. Apply html to the changelog.
|
||||||
|
if [ "$admin_mail_html" -eq 1 ]; then
|
||||||
|
format=html
|
||||||
|
else
|
||||||
|
format=plain
|
||||||
|
fi
|
||||||
|
ynh_app_changelog --format=$format
|
||||||
|
|
||||||
echo "You can configure this app easily by using the experimental __URL_TAG1__config-panel feature__URL_TAG2__$admin_panel/config-panel__URL_TAG3__.
|
echo "You can configure this app easily by using the experimental __URL_TAG1__config-panel feature__URL_TAG2__$admin_panel/config-panel__URL_TAG3__.
|
||||||
You can also find some specific actions for this app by using the experimental __URL_TAG1__action feature__URL_TAG2__$admin_panel/actions__URL_TAG3__.
|
You can also find some specific actions for this app by using the experimental __URL_TAG1__action feature__URL_TAG2__$admin_panel/actions__URL_TAG3__.
|
||||||
|
|
Loading…
Add table
Reference in a new issue