2023-08-26 05:21:42 -04:00
#:schema https://raw.githubusercontent.com/YunoHost/apps/master/schemas/manifest.v2.schema.json
2023-01-30 13:10:14 -05:00
packaging_format = 2
id = "example"
name = "Example app"
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 = "1.0~ynh1"
maintainers = [ "johndoe" ]
[ upstream ]
# NB: Only the "license" key is mandatory. Remove entries for which there's no relevant data
2024-02-23 14:53:25 -05:00
license = "free" # you can see the available licenses identifiers list here: https://spdx.org/licenses/
2023-01-30 13:10:14 -05:00
website = "https://example.com"
demo = "https://demo.example.com"
admindoc = "https://yunohost.org/packaging_apps"
userdoc = "https://yunohost.org/apps"
code = "https://some.forge.com/example/example"
2023-08-26 05:38:57 -04:00
# FIXME: optional but recommended if relevant, this is meant to contain the Common Platform Enumeration, which is
# sort of a standard id for applications defined by the NIST. In particular, YunoHost may use this is in the future
# to easily track CVE (=security reports) related to apps. The CPE may be obtained by searching here:
# https://nvd.nist.gov/products/cpe/search.
# For example, for Nextcloud, the CPE is 'cpe:2.3:a:nextcloud:nextcloud' (no need to include the version number)
2023-01-30 13:10:14 -05:00
cpe = "???"
2023-08-26 05:38:57 -04:00
# FIXME: optional but recommended (or remove if irrelevant / not applicable).
# This is meant to be an URL where people can financially support this app, especially when its development is based
# on volunteers and/or financed by its community. YunoHost may later advertise it in the webadmin.
2023-01-30 13:10:14 -05:00
fund = "???"
[ integration ]
2023-07-24 10:11:17 -04:00
yunohost = ">= 11.2"
2024-06-20 17:49:43 -04:00
helpers_version = "2.1"
2023-01-30 13:10:14 -05:00
# FIXME: can be replaced by a list of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386"]
architectures = "all"
multi_instance = true
2023-08-26 05:38:57 -04:00
# FIXME: replace with true, false, or "not_relevant".
# Not to confuse with the "sso" key: the "ldap" key corresponds to wether or not a user *can* login on the app using
# its YunoHost credentials.
2023-03-04 13:30:36 -05:00
ldap = "?"
2023-08-26 05:38:57 -04:00
# FIXME: replace with true, false, or "not_relevant".
# Not to confuse with the "ldap" key: the "sso" key corresponds to wether or not a user is *automatically logged-in*
# on the app when logged-in on the YunoHost portal.
2023-01-30 13:10:14 -05:00
sso = "?"
2023-08-26 05:38:57 -04:00
2023-02-07 04:09:33 -05:00
# FIXME: replace with an **estimate** minimum disk and RAM requirements. e.g. 20M, 400M, 1G...
2023-01-30 13:10:14 -05:00
disk = "50M"
ram . build = "50M"
ram . runtime = "50M"
[ install ]
[ install . domain ]
# this is a generic question - ask strings are automatically handled by YunoHost's core
type = "domain"
[ install . path ]
# this is a generic question - ask strings are automatically handled by YunoHost's core
type = "path"
default = "/example"
[ install . init_main_permission ]
# this is a generic question - ask strings are automatically handled by YunoHost's core
# This won't be saved as setting and will instead be used to initialize the SSOwat permission
type = "group"
default = "visitors"
[ install . language ]
ask . en = "Choose the application language"
ask . fr = "Choisissez la langue de l'application"
2023-07-19 07:16:13 -04:00
type = "select"
choices = [ "fr" , "en" ]
2023-01-30 13:10:14 -05:00
default = "fr"
[ install . admin ]
# this is a generic question - ask strings are automatically handled by YunoHost's core
type = "user"
[ install . password ]
# this is a generic question - ask strings are automatically handled by YunoHost's core
# Note that user-provided passwords questions are not automatically saved as setting
help . en = "Use the help field to add an information for the admin about this question."
help . fr = "Utilisez le champ aide pour ajouter une information à l'intention de l'administrateur à propos de cette question."
type = "password"
[ resources ]
# See the packaging documentation for the full set
# of explanation regarding the behavior and properties for each of those
2023-03-09 14:50:23 -05:00
[ resources . sources ]
2024-01-10 17:53:53 -05:00
[ resources . sources . main ]
# This will pre-fetch the asset which can then be deployed during the install/upgrade scripts with :
# ynh_setup_source --dest_dir="$install_dir"
# You can also define other assets than "main" and add --source_id="foobar" in the previous command
url = "https://github.com/foo/bar/archive/refs/tags/v1.2.3.tar.gz"
sha256 = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
# These infos are used by https://github.com/YunoHost/apps/blob/master/tools/autoupdate_app_sources/autoupdate_app_sources.py
# to auto-update the previous asset urls and sha256sum + manifest version
# assuming the upstream's code repo is on github and relies on tags or releases
# See the 'sources' resource documentation for more details
# autoupdate.strategy = "latest_github_tag"
2023-03-27 19:03:32 -04:00
2023-01-30 13:10:14 -05:00
[ resources . system_user ]
# This will provision/deprovision a unix system user
[ resources . install_dir ]
# This will create/remove the install dir as /var/www/$app
# and store the corresponding setting $install_dir
[ resources . data_dir ]
# This will create/remove the data dir as /home/yunohost.app/$app
# and store the corresponding setting $data_dir
[ resources . permissions ]
# This will configure SSOwat permission for $domain/$path/
# The initial allowed group of user is configured via the init_main_permission question (public=visitors, private=all_users)
main . url = "/"
[ resources . ports ]
2023-03-09 14:50:23 -05:00
# This will pick a random port for reverse-proxying and store it as the $port setting
2023-01-30 13:10:14 -05:00
[ resources . apt ]
# This will automatically install/uninstall the following apt packages
# and implicitly define the $phpversion setting as 8.0 (if phpX.Y-foobar dependencies are listed)
2023-06-08 11:21:21 -04:00
packages = "mariadb-server, deb1, deb2, php8.0-foo, php8.0-bar"
2023-01-30 13:10:14 -05:00
[ resources . database ]
2023-03-07 16:26:31 -05:00
# This will automatically provision/deprovison a MySQL DB and store the corresponding credentials in settings $db_user, $db_name, $db_pwd
2023-01-30 13:10:14 -05:00
type = "mysql"