YunoHost application logo

YunoHost package generator

In tutorial version, the generated app will contain additionnal comments to ease the understanding. In steamlined version, the generated app will only contain the necessary minimum.

General information (1/7)

It's the application name, displayed in the user interface

This is the 'technical' name of the app. Lowercase, no space

Explain in a few words (10-15) why this app is useful or what it does (the goal is to give a broad idea for the user browsing an hundred apps long catalog

Explain in a few words (10-15) why this app is useful or what it does (the goal is to give a broad idea for the user browsing an hundred apps long catalog

Corresponds to 'doc/DESCRIPTION.md' and you can use markdown in there. Typically you should list the main features, possible warnings and specific details on its functioning in YunoHost (e.g. warning about integration issues).

Upstream information (2/7)

The word 'upstream' refers to the original project that develops and maintains the app

You should check this on the upstream repository. The expected format is a SPDX id listed in https://spdx.org/licenses/

Leave empty if there is no official website

Leave empty if there is no official demo

Leave empty if there is no official admin doc

Leave empty if there is no official user doc

Integration in YunoHost (3/7)

Corresponds to the upstream version that will be deployed. Typically this should match the URL of the source that you'll specify in section 5

Usually you put your name here... If you're okay with it ;)

Which means it's possible to use YunoHost credentials to log into this app. LDAP corresponds to the technology used by YunoHost to handle a centralised user base. Bridging the app and YunoHost's LDAP often requires to add the proper technical details in the app's configuration file.

Which means that people will be logged in the app after logging in YunoHost's portal, without having to sign on specifically into this app.

Questions to ask during installation (4/7)

This part is meant to indicate the questions that will be asked.
NB: only standard questions are asked here, it might be required to complete it by hand using other questions as a guide.

Will correspond to the `$domain` and `$path` variables in scripts, and `__DOMAIN__` and `__PATH__` in configuration templates.

In the users groups: by default at least 'visitors', 'all_users' et 'admins' exists.

In the case where the app has an admin interface

Resources to initialize (5/7)

Technical elements configured before launching the 'real' app install script. Usually: creating a system user, downloading app sources, initialiser le dossier d'install et de données, install apt dependencies, create a database...

If the upstream software is hosted in one of the handled sources and publishes proper releases or tags, the bot will create a pull request to update the sources URL and checksum.

By default it's /var/www/$app

By default it's /var/yunohost.app/$app

Separated by comma and/or spaces

App build and configuration (6/7)

Composer is a PHP dependencies manager used by some apps

For example: 16.4, 18, 18.2, 20, 20.1...

For example: 1.20, 1.21, 1.22, 1.23...

These commands are executed from the app installation folder (by default, /var/www/$app) after the sources have been deployed. This field uses by default a classic example based on the selected technology. You should probably compare and adapt it according to the app installation documentation.

Corresponds to 'ExecStart' statement in systemd. You can use '__INSTALL_DIR__' to refer to the install directory, or '__APP__' to refer to the app id

Typically: .env, config.json, conf.ini, params.yml...

In this field, you can use the syntax __FOO_BAR__ which will automatically replaced by the value of the variable $foo_bar

Advanced options (7/7)

Corresponds to the `change_url` script, allowing to change the domain/path where the app is exposed after installation

Use fail2ban, assuming the app logs failed connection attempts, this option allows to automatically ban suspicious IP after a number of failed attempts.

Regular expression to check in the log file to activate FailBan (search for a line that indicates a credentials error).

Corresponds to some app periodic operations

Additional documentation bits

Corresponds to 'doc/ADMIN.md'. Leave empty if not relevant

Corresponds to 'doc/PRE_INSTALL.md' Leave empty if not relevant

Corresponds to 'doc/POST_INSTALL.md' Leave empty if not relevant