From a2c8b7df53419e8cd90afb3b2dd5b99be094c946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sun, 9 Apr 2023 23:13:23 +0200 Subject: [PATCH] first commit --- LICENSE | 4 + README.md | 85 +++++++ README_fr.md | 73 ++++++ conf/nginx.conf | 11 + conf/systemd.service | 17 ++ conf/xwiki_env | 2 + config_panel.toml.example | 295 ++++++++++++++++++++++++ doc/.gitkeep | 0 doc/ADMIN.md | 3 + doc/ADMIN_fr.md | 3 + doc/DESCRIPTION.md | 1 + doc/DESCRIPTION_fr.md | 1 + doc/POST_INSTALL.md | 7 + doc/screenshots/.gitkeep | 0 doc/screenshots/XWiki-standard-help.jpg | Bin 0 -> 154334 bytes manifest.toml | 65 ++++++ scripts/_common.sh | 17 ++ scripts/backup | 47 ++++ scripts/change_url | 41 ++++ scripts/config | 102 ++++++++ scripts/install | 63 +++++ scripts/remove | 36 +++ scripts/restore | 69 ++++++ scripts/upgrade | 71 ++++++ sources/extra_files/app/.gitignore | 2 + sources/patches/.gitignore | 2 + tests.toml.example | 55 +++++ 27 files changed, 1072 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 README_fr.md create mode 100644 conf/nginx.conf create mode 100644 conf/systemd.service create mode 100644 conf/xwiki_env create mode 100644 config_panel.toml.example create mode 100644 doc/.gitkeep create mode 100644 doc/ADMIN.md create mode 100644 doc/ADMIN_fr.md create mode 100644 doc/DESCRIPTION.md create mode 100644 doc/DESCRIPTION_fr.md create mode 100644 doc/POST_INSTALL.md create mode 100644 doc/screenshots/.gitkeep create mode 100644 doc/screenshots/XWiki-standard-help.jpg create mode 100644 manifest.toml create mode 100644 scripts/_common.sh create mode 100755 scripts/backup create mode 100644 scripts/change_url create mode 100644 scripts/config create mode 100755 scripts/install create mode 100755 scripts/remove create mode 100755 scripts/restore create mode 100755 scripts/upgrade create mode 100644 sources/extra_files/app/.gitignore create mode 100644 sources/patches/.gitignore create mode 100644 tests.toml.example diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2026412 --- /dev/null +++ b/LICENSE @@ -0,0 +1,4 @@ +File containing the license of your package. + +More information here: +https://choosealicense.com/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..8cf224e --- /dev/null +++ b/README.md @@ -0,0 +1,85 @@ +# Packaging an app, starting from this example + +* Copy this app before working on it, using the ['Use this template'](https://github.com/YunoHost/example_ynh/generate) button on the Github repo. +* Edit the `manifest.toml` with app specific info. +* Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and any relevant conf files in `conf/`. + * Using the [script helpers documentation.](https://yunohost.org/packaging_apps_helpers) +* Edit the `change_url` and `config` scripts too, or remove them if you have no use of them +* Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to necessarily be the LICENSE of the upstream app - it is only the LICENSE you want this package's code to published with ;). We recommend to use [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt). +* Edit `doc/DISCLAIMER*.md` +* The `README.md` files are to be automatically generated by https://github.com/YunoHost/apps/tree/master/tools/README-generator + +--- + + +# Example app for YunoHost + +[![Integration level](https://dash.yunohost.org/integration/example.svg)](https://dash.yunohost.org/appci/app/example) ![Working status](https://ci-apps.yunohost.org/ci/badges/example.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/example.maintain.svg) +[![Install Example app with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=example) + +*[Lire ce readme en français.](./README_fr.md)* + +> *This package allows you to install Example app quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* + +## Overview + +Some long and extensive description of what the app is and does, lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + +### Features + +- Ut enim ad minim veniam, quis nostrud exercitation ullamco ; +- Laboris nisi ut aliquip ex ea commodo consequat ; +- Duis aute irure dolor in reprehenderit in voluptate ; +- Velit esse cillum dolore eu fugiat nulla pariatur ; +- Excepteur sint occaecat cupidatat non proident, sunt in culpa." + + +**Shipped version:** 1.0~ynh1 + +**Demo:** https://demo.example.com + +## Screenshots + +![Screenshot of Example app](./doc/screenshots/example.jpg) + +## Disclaimers / important information + +* Any known limitations, constrains or stuff not working, such as (but not limited to): + * requiring a full dedicated domain ? + * architectures not supported ? + * not-working single-sign on or LDAP integration ? + * the app requires an important amount of RAM / disk / .. to install or to work properly + * etc... + +* Other infos that people should be aware of, such as: + * any specific step to perform after installing (such as manually finishing the install, specific admin credentials, ...) + * how to configure / administrate the application if it ain't obvious + * upgrade process / specificities / things to be aware of ? + * security considerations ? + +## Documentation and resources + +* Official app website: +* Official user documentation: +* Official admin documentation: +* Upstream app code repository: +* YunoHost documentation for this app: +* Report a bug: + +## Developer info + +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/example_ynh/tree/testing). + +To try the testing branch, please proceed like that. + +``` bash +sudo yunohost app install https://github.com/YunoHost-Apps/example_ynh/tree/testing --debug +or +sudo yunohost app upgrade example -u https://github.com/YunoHost-Apps/example_ynh/tree/testing --debug +``` + +**More info regarding app packaging:** diff --git a/README_fr.md b/README_fr.md new file mode 100644 index 0000000..4da6fb7 --- /dev/null +++ b/README_fr.md @@ -0,0 +1,73 @@ + + +# Exemple d'app pour YunoHost + +[![Niveau d'intégration](https://dash.yunohost.org/integration/example.svg)](https://dash.yunohost.org/appci/app/example) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/example.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/example.maintain.svg) +[![Installer Example app avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=example) + +*[Read this readme in english.](./README.md)* + +> *Ce package vous permet d'installer Example app 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.* + +## Vue d'ensemble + +Some long and extensive description of what the app is and does, lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + +### Features + +- Ut enim ad minim veniam, quis nostrud exercitation ullamco ; +- Laboris nisi ut aliquip ex ea commodo consequat ; +- Duis aute irure dolor in reprehenderit in voluptate ; +- Velit esse cillum dolore eu fugiat nulla pariatur ; +- Excepteur sint occaecat cupidatat non proident, sunt in culpa." + + +**Version incluse :** 1.0~ynh1 + +**Démo :** https://demo.example.com + +## Captures d'écran + +![Capture d'écran de Example app](./doc/screenshots/example.jpg) + +## Avertissements / informations importantes + +* Any known limitations, constrains or stuff not working, such as (but not limited to): + * requiring a full dedicated domain ? + * architectures not supported ? + * not-working single-sign on or LDAP integration ? + * the app requires an important amount of RAM / disk / .. to install or to work properly + * etc... + +* Other infos that people should be aware of, such as: + * any specific step to perform after installing (such as manually finishing the install, specific admin credentials, ...) + * how to configure / administrate the application if it ain't obvious + * upgrade process / specificities / things to be aware of ? + * security considerations ? + +## Documentations et ressources + +* Site officiel de l'app : +* Documentation officielle utilisateur : +* Documentation officielle de l'admin : +* Dépôt de code officiel de l'app : +* Documentation YunoHost pour cette app : +* Signaler un bug : + +## Informations pour les développeurs + +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/example_ynh/tree/testing). + +Pour essayer la branche testing, procédez comme suit. + +``` bash +sudo yunohost app install https://github.com/YunoHost-Apps/example_ynh/tree/testing --debug +ou +sudo yunohost app upgrade example -u https://github.com/YunoHost-Apps/example_ynh/tree/testing --debug +``` + +**Plus d'infos sur le packaging d'applications :** diff --git a/conf/nginx.conf b/conf/nginx.conf new file mode 100644 index 0000000..32329ce --- /dev/null +++ b/conf/nginx.conf @@ -0,0 +1,11 @@ +#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; +location __PATH__/ { + + proxy_pass http://127.0.0.1:__PORT__; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-Proto $scheme; + + expires 0m; + } diff --git a/conf/systemd.service b/conf/systemd.service new file mode 100644 index 0000000..dd7a987 --- /dev/null +++ b/conf/systemd.service @@ -0,0 +1,17 @@ +[Unit] +Description=xWiki +After=network.target + +[Service] +Type=simple +User=__APP__ +Group=__APP__ +EnvironmentFile=__INSTALL_DIR__/xwiki_env +WorkingDirectory=__INSTALL_DIR__/ +ExecStart=/bin/bash start_xwiki.sh -p __PORT__ -sp __PORT_STOP__ -ni +ExecStop=/bin/bash stop_xwiki.sh +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/conf/xwiki_env b/conf/xwiki_env new file mode 100644 index 0000000..33b38d8 --- /dev/null +++ b/conf/xwiki_env @@ -0,0 +1,2 @@ +JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/jre +PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/puppetlabs/bin:/snap/bin \ No newline at end of file diff --git a/config_panel.toml.example b/config_panel.toml.example new file mode 100644 index 0000000..3b89740 --- /dev/null +++ b/config_panel.toml.example @@ -0,0 +1,295 @@ + +## Config panel are available from webadmin > Apps > YOUR_APP > Config Panel Button +## Those panels let user configure some params on their apps using a friendly interface, +## and remove the need to manually edit files from the command line. + +## From a packager perspective, this .toml is coupled to the scripts/config script, +## which may be used to define custom getters/setters. However, most use cases +## should be covered automagically by the core, thus it may not be necessary +## to define a scripts/config at all! + +## ----------------------------------------------------------------------------- +## IMPORTANT: In accordance with YunoHost's spirit, please keep things simple and +## do not overwhelm the admin with tons of misunderstandable or advanced settings. +## ----------------------------------------------------------------------------- + +## The top level describe the entire config panels screen. + +## The version is a required property. +## Here a small reminder to associate config panel version with YunoHost version +## | Config | YNH | Config panel small change log | +## | ------ | --- | ------------------------------------------------------- | +## | 0.1 | 3.x | 0.1 config script not compatible with YNH >= 4.3 | +## | 1.0 | 4.3.x | The new config panel system with 'bind' property | +version = "1.0" + +## (optional) i18n property let you internationalize questions, however this feature +## is only available in core configuration panel (like yunohost domain config). +## So in app config panel this key is ignored for now, but you can internationalize +## by using a lang dictionary (see property name bellow) +# i18n = "prefix_translation_key" + +################################################################################ +#### ABOUT PANELS +################################################################################ + +## The next level describes web admin panels +## You have to choose an ID for each panel, in this example the ID is "main" +## Keep in mind this ID will be used in CLI to refer to your question, so choose +## something short and meaningfull. +## In the webadmin, each panel corresponds to a distinct tab / form +[main] + +## Define the label for your panel +## Internationalization works similarly to the 'description' and 'ask' questions in the manifest +# name.en = "Main configuration" +# name.fr = "Configuration principale" + +## (optional) If you need to trigger a service reload-or-restart after the user +## change a question in this panel, you can add your service in the list. +services = ["__APP__"] +# or services = ["nginx", "__APP__"] to also reload-or-restart nginx + +## (optional) This help properties is a short help displayed on the same line +## than the panel title but not displayed in the tab. +# help = "" + + ############################################################################ + #### ABOUT SECTIONS + ############################################################################ + + ## A panel is composed of one or several sections. + ## + ## Sections are meant to group questions together when they correspond to + ## a same subtopic. This impacts the rendering in terms of CLI prompts + ## and HTML forms + ## + ## You should choose an ID for your section, and prefix it with the panel ID + ## (Be sure to not make a typo in the panel ID, which would implicitly create + ## an other entire panel) + ## + ## We use the context of pepettes_ynh as an example, + ## which is a simple donation form app written in python, + ## and for which the admin will want to edit the configuration + [main.customization] + + ## (optional) Defining a proper title for sections is not mandatory + ## and depends on the exact rendering you're aiming for the CLI / webadmin + name = "" + + ## (optional) This help properties is a short help displayed on the same line + ## than the section title, meant to provide additional details + # help = "" + + ## (optional) As for panel, you can specify to trigger a service + ## reload-or-restart after the user change a question in this section. + ## This property is added to the panel property, it doesn't deactivate it. + ## So no need to replicate, the service list from panel services property. + # services = [] + + ## (optional) By default all questions are optionals, but you can specify a + ## default behaviour for question in the section + optional = false + + ## (optional) It's also possible with the 'visible' property to only + ## display the section depending on the user's answers to previous questions. + ## + ## Be careful that the 'visible' property should only refer to **previous** questions + ## Hence, it should not make sense to have a "visible" property on the very first section. + ## + ## Also, keep in mind that this feature only works in the webadmin and not in CLI + ## (therefore a user could be prompted in CLI for a question that may not be relevant) + # visible = true + + ######################################################################## + #### ABOUT QUESTIONS + ######################################################################## + + ## A section is compound of one or several questions. + + ## --------------------------------------------------------------------- + ## IMPORTANT: as for panel and section you have to choose an ID, but this + ## one should be unique in all this document, even if the question is in + ## an other panel. + ## --------------------------------------------------------------------- + + ## You can use same questions types and properties than in manifest.yml + ## install part. However, in YNH 4.3, a lot of change has been made to + ## extend availables questions types list. + ## See: TODO DOC LINK + + [main.customization.project_name] + + ## (required) The ask property is equivalent to the ask property in + ## the manifest. However, in config panels, questions are displayed on the + ## left side and therefore have less space to be rendered. Therefore, + ## it is better to use a short question, and use the "help" property to + ## provide additional details if necessary. + ask.en = "Name of the project" + + ## (required) The type property indicates how the question should be + ## displayed, validated and managed. Some types have specific properties. + ## + ## Types available: string, boolean, number, range, text, password, path + ## email, url, date, time, color, select, domain, user, tags, file. + ## + ## For a complete list with specific properties, see: TODO DOC LINK + type = "string" + + ######################################################################## + #### ABOUT THE BIND PROPERTY + ######################################################################## + + ## (recommended) 'bind' property is a powerful feature that let you + ## configure how and where the data will be read, validated and written. + + ## By default, 'bind property is in "settings" mode, it means it will + ## **only** read and write the value in application settings file. + ## bind = "settings" + + ## However, settings usually correspond to key/values in actual app configurations + ## Hence, a more useful mode is to have bind = ":FILENAME". In that case, YunoHost + ## will automagically find a line with "KEY=VALUE" in FILENAME + ## (with the adequate separator between KEY and VALUE) + ## + ## YunoHost will then use this value for the read/get operation. + ## During write/set operations, YunoHost will overwrite the value + ## in **both** FILENAME and in the app's settings.yml + + ## Configuration file format supported: yaml, toml, json, ini, env, php, + ## python. The feature probably works with others formats, but should be tested carefully. + + ## Note that this feature only works with relatively simple cases + ## such as `KEY: VALUE`, but won't properly work with + ## complex data structures like multilin array/lists or dictionnaries. + ## It also doesn't work with XML format, custom config function call, php define(), ... + + ## More info on TODO + # bind = ":/var/www/__APP__/settings.py" + + + ## By default, bind = ":FILENAME" will use the question ID as KEY + ## ... but the question ID may sometime not be the exact KEY name in the configuration file. + ## + ## In particular, in pepettes, the python variable is 'name' and not 'project_name' + ## (c.f. https://github.com/YunoHost-Apps/pepettes_ynh/blob/5cc2d3ffd6529cc7356ff93af92dbb6785c3ab9a/conf/settings.py##L11 ) + ## + ## In that case, the key name can be specified before the column ':' + + bind = "name:/var/www/__APP__/settings.py" + + ## --------------------------------------------------------------------- + ## IMPORTANT: other 'bind' mode exists: + ## + ## bind = "FILENAME" (with no column character before FILENAME) + ## may be used to bind to the **entire file content** (instead of a single KEY/VALUE) + ## This could be used to expose an entire configuration file, or binary files such as images + ## For example: + ## bind = "/var/www/__APP__/img/logo.png" + ## + ## bind = "null" can be used to disable reading / writing in settings. + ## This creates sort of a "virtual" or "ephemeral" question which is not related to any actual setting + ## In this mode, you are expected to define custom getter/setters/validators in scripts/config: + ## + ## getter: get__QUESTIONID() + ## setter: set__QUESTIONID() + ## validator: validate__QUESTIONID() + ## + ## You can also specify a common getter / setter / validator, with the + ## function 'bind' mode, for example here it will try to run + ## get__array_settings() first. + # bind = "array_settings()" + ## --------------------------------------------------------------------- + + ## --------------------------------------------------------------------- + ## IMPORTANT: with the exception of bind=null questions, + ## question IDs should almost **always** correspond to an app setting + ## initialized / reused during install/upgrade. + ## Not doing so may result in inconsistencies between the config panel mechanism + ## and the use of ynh_add_config + ## --------------------------------------------------------------------- + + ######################################################################## + #### OTHER GENERIC PROPERTY FOR QUESTIONS + ######################################################################## + + ## (optional) An help text for the question + help = "Fill the name of the project which will received donation" + + ## (optional) An example display as placeholder in web form + # example = "YunoHost" + + ## (optional) set to true in order to redact the value in operation logs + # redact = false + + ## (optional) A validation pattern + ## --------------------------------------------------------------------- + ## IMPORTANT: your pattern should be between simple quote, not double. + ## --------------------------------------------------------------------- + pattern.regexp = '^\w{3,30}$' + pattern.error = "The name should be at least 3 chars and less than 30 chars. Alphanumeric chars are accepted" + + ## Note: visible and optional properties are also available for questions + + + [main.customization.contact_url] + ask = "Contact url" + type = "url" + example = "mailto: contact@example.org" + help = "mailto: accepted" + pattern.regexp = '^mailto:[^@]+@[^@]+|https://$' + pattern.error = "Should be https or mailto:" + bind = ":/var/www/__APP__/settings.py" + + [main.customization.logo] + ask = "Logo" + type = "file" + accept = ".png" + help = "Fill with an already resized logo" + bind = "__INSTALL_DIR__/img/logo.png" + + [main.customization.favicon] + ask = "Favicon" + type = "file" + accept = ".png" + help = "Fill with an already sized favicon" + bind = "__INSTALL_DIR__/img/favicon.png" + + + [main.stripe] + name = "Stripe general info" + optional = false + + # The next alert is overwrited with a getter from the config script + [main.stripe.amount] + ask = "Donation in the month : XX € + type = "alert" + style = "success" + + [main.stripe.publishable_key] + ask = "Publishable key" + type = "string" + redact = true + help = "Indicate here the stripe publishable key" + bind = ":/var/www/__APP__/settings.py" + + [main.stripe.secret_key] + ask = "Secret key" + type = "string" + redact = true + help = "Indicate here the stripe secret key" + bind = ":/var/www/__APP__/settings.py" + + [main.stripe.prices] + ask = "Prices ID" + type = "tags" + help = """\ + Indicates here the prices ID of donation products you created in stripe interfaces. \ + Go on [Stripe products](https://dashboard.stripe.com/products) to create those donation products. \ + Fill it tag with 'FREQUENCY/CURRENCY/PRICE_ID' \ + FREQUENCY: 'one_time' or 'recuring' \ + CURRENCY: 'EUR' or 'USD' \ + PRICE_ID: ID from stripe interfaces starting with 'price_' \ + """ + pattern.regexp = '^(one_time|recuring)/(EUR|USD)/price_.*$' + pattern.error = "Please respect the format describe in help text for each price ID" diff --git a/doc/.gitkeep b/doc/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/doc/ADMIN.md b/doc/ADMIN.md new file mode 100644 index 0000000..c9b5225 --- /dev/null +++ b/doc/ADMIN.md @@ -0,0 +1,3 @@ +This is a dummy admin doc for this app + +The app install dir is `__INSTALL_DIR__` diff --git a/doc/ADMIN_fr.md b/doc/ADMIN_fr.md new file mode 100644 index 0000000..a138028 --- /dev/null +++ b/doc/ADMIN_fr.md @@ -0,0 +1,3 @@ +Ceci est une fausse doc d'admin pour cette app + +Le dossier d'install de l'app est `__INSTALL_DIR__` diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md new file mode 100644 index 0000000..3f2e57a --- /dev/null +++ b/doc/DESCRIPTION.md @@ -0,0 +1 @@ +This is a dummy description of this app features diff --git a/doc/DESCRIPTION_fr.md b/doc/DESCRIPTION_fr.md new file mode 100644 index 0000000..13f4b64 --- /dev/null +++ b/doc/DESCRIPTION_fr.md @@ -0,0 +1 @@ +Ceci est une fausse description des fonctionalités de l'app diff --git a/doc/POST_INSTALL.md b/doc/POST_INSTALL.md new file mode 100644 index 0000000..f367b62 --- /dev/null +++ b/doc/POST_INSTALL.md @@ -0,0 +1,7 @@ +This is a dummy disclaimer to display after the install + +The app url is `__DOMAIN____PATH__` + +The app install dir is `__INSTALL_DIR__` + +The app id is `__ID__` diff --git a/doc/screenshots/.gitkeep b/doc/screenshots/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/doc/screenshots/XWiki-standard-help.jpg b/doc/screenshots/XWiki-standard-help.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9e7d68e931aa9c42509db23078385d3f47c0a41a GIT binary patch literal 154334 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 cAUB3d_-RssL7`|9F<17#j;tpET3 literal 0 HcmV?d00001 diff --git a/manifest.toml b/manifest.toml new file mode 100644 index 0000000..a35a09d --- /dev/null +++ b/manifest.toml @@ -0,0 +1,65 @@ +packaging_format = 2 + +id = "xwiki" +name = "Xwiki" +description.en = "Explain in *a few (10~15) words* the purpose of the app or what it actually does (it is meant to give a rough idea to users browsing a catalog of 100+ apps)" +description.fr = "Expliquez en *quelques* (10~15) mots l'utilité de l'app ou ce qu'elle fait (l'objectif est de donner une idée grossière pour des utilisateurs qui naviguent dans un catalogue de 100+ apps)" + +version = "14.10.8~ynh1" + +maintainers = ["johndoe"] + +[upstream] +license = "LGPL-2.1" +website = "https://www.xwiki.org/" +demo = "https://demo.example.com" +admindoc = "https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/" +userdoc = "https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/" +code = "https://github.com/xwiki/xwiki-platform" + +[integration] +yunohost = ">= 11.1.17" +architectures = "all" +multi_instance = true +ldap = false +sso = false +disk = "50M" +ram.build = "50M" +ram.runtime = "50M" + +[install] + [install.domain] + type = "domain" + + [install.path] + type = "path" + default = "/xwiki" + + [install.init_main_permission] + type = "group" + default = "visitors" + +[resources] + + [resources.sources] + + [resources.sources.main] + url = "https://nexus.xwiki.org/nexus/content/groups/public/org/xwiki/platform/xwiki-platform-distribution-jetty-hsqldb/14.10.8/xwiki-platform-distribution-jetty-hsqldb-14.10.8.zip" + sha256 = "42bb11563587860d2268f3226b90c6ae5cf5930e027fe0e3386fb2de29445a2b" + + [resources.ports] + main.default = 31386 + stop.default = 31387 + + [resources.system_user] + + [resources.install_dir] + + [resources.permissions] + main.url = "/" + + [resources.apt] + packages = "mariadb-server openjdk-17-jdk" + + [resources.database] + type = "mysql" diff --git a/scripts/_common.sh b/scripts/_common.sh new file mode 100644 index 0000000..944a65e --- /dev/null +++ b/scripts/_common.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +#================================================= +# COMMON VARIABLES +#================================================= + +#================================================= +# PERSONAL HELPERS +#================================================= + +#================================================= +# EXPERIMENTAL HELPERS +#================================================= + +#================================================= +# FUTURE OFFICIAL HELPERS +#================================================= diff --git a/scripts/backup b/scripts/backup new file mode 100755 index 0000000..bd64834 --- /dev/null +++ b/scripts/backup @@ -0,0 +1,47 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts +source ../settings/scripts/_common.sh +source /usr/share/yunohost/helpers + +#================================================= +# DECLARE DATA AND CONF FILES TO BACKUP +#================================================= +ynh_print_info --message="Declaring files to be backed up..." + +#================================================= +# BACKUP THE APP MAIN DIR +#================================================= + +ynh_backup --src_path="$install_dir" + +#================================================= +# BACKUP THE NGINX CONFIGURATION +#================================================= + +ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" + +#================================================= +# BACKUP SYSTEMD +#================================================= + +ynh_backup --src_path="/etc/systemd/system/$app.service" + +#================================================= +# BACKUP THE MYSQL DATABASE +#================================================= +ynh_print_info --message="Backing up the MySQL database..." + +ynh_mysql_dump_db --database="$db_name" > db.sql + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." diff --git a/scripts/change_url b/scripts/change_url new file mode 100644 index 0000000..ae914ad --- /dev/null +++ b/scripts/change_url @@ -0,0 +1,41 @@ +#!/bin/bash + +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# STANDARD MODIFICATIONS +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Stopping a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" + +#================================================= +# MODIFY URL IN NGINX CONF +#================================================= +ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1 + +ynh_change_url_nginx_config + +#================================================= +# GENERIC FINALISATION +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Change of URL completed for $app" --last diff --git a/scripts/config b/scripts/config new file mode 100644 index 0000000..dca69fb --- /dev/null +++ b/scripts/config @@ -0,0 +1,102 @@ +#!/bin/bash +# In simple cases, you don't need a config script. + +# With a simple config_panel.toml, you can write in the app settings, in the +# upstream config file or replace complete files (logo ...) and restart services. + +# The config scripts allows you to go further, to handle specific cases +# (validation of several interdependent fields, specific getter/setter for a value, +# display dynamic informations or choices, pre-loading of config type .cube... ). + +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source /usr/share/yunohost/helpers + +ynh_abort_if_errors + +#================================================= +# RETRIEVE ARGUMENTS +#================================================= + +install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) + +#================================================= +# SPECIFIC GETTERS FOR TOML SHORT KEY +#================================================= + +get__amount() { + # Here we can imagine to have an API call to stripe to know the amount of donation during a month + local amount = 200 + + # It's possible to change some properties of the question by overriding it: + if [ $amount -gt 100 ] + then + cat << EOF +style: success +value: $amount +ask: + en: A lot of donation this month: **$amount €** +EOF + else + cat << EOF +style: danger +value: $amount +ask: + en: Not so much donation this month: $amount € +EOF + fi +} + +get__prices() { + local prices = "$(grep "DONATION\['" "$install_dir/settings.py" | sed -r "s@^DONATION\['([^']*)'\]\['([^']*)'\] = '([^']*)'@\1/\2/\3@g" | sed -z 's/\n/,/g;s/,$/\n/')" + if [ "$prices" == "," ]; + then + # Return YNH_NULL if you prefer to not return a value at all. + echo YNH_NULL + else + echo $prices + fi +} + + +#================================================= +# SPECIFIC VALIDATORS FOR TOML SHORT KEYS +#================================================= +validate__publishable_key() { + + # We can imagine here we test if the key is really a publisheable key + (is_secret_key $publishable_key) && + echo 'This key seems to be a secret key' +} + +#================================================= +# SPECIFIC SETTERS FOR TOML SHORT KEYS +#================================================= +set__prices() { + + #--------------------------------------------- + # IMPORTANT: setter are trigger only if a change is detected + #--------------------------------------------- + for price in $(echo $prices | sed "s/,/ /"); do + frequency=$(echo $price | cut -d/ -f1) + currency=$(echo $price | cut -d/ -f2) + price_id=$(echo $price | cut -d/ -f3) + sed "d/DONATION\['$frequency'\]\['$currency'\]" "$install_dir/settings.py" + + echo "DONATION['$frequency']['$currency'] = '$price_id'" >> "$install_dir/settings.py" + done + + #--------------------------------------------- + # IMPORTANT: to be able to upgrade properly, you have to saved the value in settings too + #--------------------------------------------- + ynh_app_setting_set $app prices $prices +} + +#================================================= +# GENERIC FINALIZATION +#================================================= +ynh_app_config_run $1 diff --git a/scripts/install b/scripts/install new file mode 100755 index 0000000..56e03eb --- /dev/null +++ b/scripts/install @@ -0,0 +1,63 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# APP "BUILD" (DEPLOYING SOURCES, VENV, COMPILING ETC) +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= +ynh_script_progression --message="Setting up source files..." --weight=1 + +# Download, check integrity, uncompress and patch the source from app.src +ynh_setup_source --dest_dir="$install_dir" + +chown -R $app:www-data "$install_dir" +chmod +x "$install_dir/start_xwiki.sh" + +#================================================= +# SYSTEM CONFIGURATION +#================================================= +ynh_script_progression --message="Adding system configurations related to $app..." --weight=1 + +# Create a dedicated NGINX config using the conf/nginx.conf template +ynh_add_nginx_config + +# Create a dedicated systemd config +ynh_add_systemd_config + +yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" + +#================================================= +# APP INITIAL CONFIGURATION +#================================================= +# ADD A CONFIGURATION +#================================================= +ynh_script_progression --message="Adding a configuration file..." --weight=1 + +ynh_add_config --template="../conf/xwiki_env" --destination="$install_dir/xwiki_env" + +chmod 400 "$install_dir/xwiki_env" +chown $app:$app "$install_dir/xwiki_env" + +#================================================= +# GENERIC FINALIZATION +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + +# Start a systemd service +ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" + +#================================================= +# END OF SCRIPT +#================================================= +ynh_script_progression --message="Installation of $app completed" --last diff --git a/scripts/remove b/scripts/remove new file mode 100755 index 0000000..e62239a --- /dev/null +++ b/scripts/remove @@ -0,0 +1,36 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# REMOVE SYSTEM CONFIGURATIONS +#================================================= +# REMOVE SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 + +# This should be a symetric version of what happens in the install script + +# Remove the service from the list of services known by YunoHost (added from `yunohost service add`) +#if ynh_exec_warn_less yunohost service status $app >/dev/null +#then +# ynh_script_progression --message="Removing $app service integration..." --weight=1 +# yunohost service remove $app +#fi + +#ynh_remove_systemd_config + +ynh_remove_nginx_config + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Removal of $app completed" --last diff --git a/scripts/restore b/scripts/restore new file mode 100755 index 0000000..7c88a44 --- /dev/null +++ b/scripts/restore @@ -0,0 +1,69 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts +source ../settings/scripts/_common.sh +source /usr/share/yunohost/helpers + +#================================================= +# RESTORE THE APP MAIN DIR +#================================================= +ynh_script_progression --message="Restoring the app main directory..." --weight=1 + +ynh_restore_file --origin_path="$install_dir" + +chown -R $app:www-data "$install_dir" + +#================================================= +# RESTORE THE DATA DIRECTORY +#================================================= +ynh_script_progression --message="Restoring the data directory..." --weight=1 + +ynh_restore_file --origin_path="$data_dir" --not_mandatory + +# (Same as for install dir) +chown -R $app:www-data "$data_dir" + +#================================================= +# RESTORE THE MYSQL DATABASE +#================================================= +ynh_script_progression --message="Restoring the MySQL database..." --weight=1 + +ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql + +#================================================= +# RESTORE SYSTEM CONFIGURATIONS +#================================================= +# RESTORE THE PHP-FPM CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 + +ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" + +ynh_restore_file --origin_path="/etc/systemd/system/$app.service" +systemctl enable $app.service --quiet + +yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" + +#================================================= +# GENERIC FINALIZATION +#================================================= +# RELOAD NGINX AND PHP-FPM OR THE APP SERVICE +#================================================= +ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 + +# Typically you only have either $app or php-fpm but not both at the same time... +ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Restoration completed for $app" --last diff --git a/scripts/upgrade b/scripts/upgrade new file mode 100755 index 0000000..0393df2 --- /dev/null +++ b/scripts/upgrade @@ -0,0 +1,71 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +upgrade_type=$(ynh_check_app_version_changed) + +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Stopping a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" + +#================================================= +# "REBUILD" THE APP (DEPLOY NEW SOURCES, RERUN NPM BUILD...) +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= + +if [ "$upgrade_type" == "UPGRADE_APP" ] +then + ynh_script_progression --message="Upgrading source files..." --weight=1 + + # Download, check integrity, uncompress and patch the source from app.src + ynh_setup_source --dest_dir="$install_dir" +fi + +chown -R $app:www-data "$install_dir" + +#================================================= +# REAPPLY SYSTEM CONFIGURATIONS +#================================================= +ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1 + +ynh_add_nginx_config + +ynh_add_systemd_config + +yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" + +#================================================= +# RECONFIGURE THE APP (UPDATE CONF, APPLY MIGRATIONS...) +#================================================= +# UPDATE A CONFIG FILE +#================================================= +ynh_script_progression --message="Updating a configuration file..." --weight=1 + +ynh_add_config --template="some_config_file" --destination="$install_dir/some_config_file" + +chmod 400 "$install_dir/some_config_file" +chown $app:$app "$install_dir/some_config_file" + +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Upgrade of $app completed" --last diff --git a/sources/extra_files/app/.gitignore b/sources/extra_files/app/.gitignore new file mode 100644 index 0000000..783a4ae --- /dev/null +++ b/sources/extra_files/app/.gitignore @@ -0,0 +1,2 @@ +*~ +*.sw[op] diff --git a/sources/patches/.gitignore b/sources/patches/.gitignore new file mode 100644 index 0000000..783a4ae --- /dev/null +++ b/sources/patches/.gitignore @@ -0,0 +1,2 @@ +*~ +*.sw[op] diff --git a/tests.toml.example b/tests.toml.example new file mode 100644 index 0000000..3a732e4 --- /dev/null +++ b/tests.toml.example @@ -0,0 +1,55 @@ +test_format = 1.0 + +[default] + + # ------------ + # Tests to run + # ------------ + + # NB: the tests to run are automatically deduced by the CI script according to the + # content of the app's manifest. The declarations below allow to customize which + # tests are ran, possibly add special test suite to test special args, or + # declare which commits to test upgrade from. + # + # You can also decide (though this is discouraged!) to ban/ignore some tests, + + exclude = ["install.private", "install.multi"] # The test IDs to be used in only/exclude statements are: install.root, install.subdir, install.nourl, install.multi, backup_restore, upgrade, upgrade.someCommitId change_url + # NB: you should NOT need this except if you really have a good reason... + + # For special usecases, sometimes you need to setup other things on the machine + # prior to installing the app (such as installing another app) + # (Remove this key entirely if not needed) + preinstall = """ + sudo yunohost app install foobar + sudo yunohost user list + """ + + # ------------------------------- + # Default args to use for install + # ------------------------------- + + # By default, the CI will automagically fill the 'standard' args + # such as domain, path, admin, is_public and password with relevant values + # and also install args with a "default" provided in the manifest.. + # It should only make sense to declare custom args here for args with no default values + + args.language = "fr_FR" # NB: you should NOT need those lines unless for custom questions with no obvious/default value + args.multisite = 0 + + # ------------------------------- + # Commits to test upgrade from + # ------------------------------- + + test_upgrade_from.00a1a6e7.name = "Upgrade from 5.4" + test_upgrade_from.00a1a6e7.args.foo = "bar" + + +# This is an additional test suite +[some_additional_testsuite] + + # On additional tests suites, you can decide to run only specific tests + + only = ["install.subdir"] + + args.language = "en_GB" + args.multisite = 1