#:schema https://raw.githubusercontent.com/YunoHost/apps/master/schemas/manifest.v2.schema.json 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 license = "free" 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" # 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) cpe = "???" # 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. fund = "???" [integration] yunohost = ">= 11.1.21" # 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 # 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. ldap = "?" # 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. sso = "?" # FIXME: replace with an **estimate** minimum disk and RAM requirements. e.g. 20M, 400M, 1G... 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" type = "select" choices = ["fr", "en"] 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 [resources.sources] [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" [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] # This will pick a random port for reverse-proxying and store it as the $port setting [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) packages = "deb1, deb2, php8.0-foo, php8.0-bar" [resources.database] # This will automatically provision/deprovison a MySQL DB and store the corresponding credentials in settings $db_user, $db_name, $db_pwd type = "mysql"