2.7 KiB
Manifest
The manifest.json
file defines the app's constants, a bunch of values that YunoHost needs to identify the app and install it correctly. It looks like this:
{
"name": "Roundcube",
"id": "roundcube",
"description": {
"en": "Open Source Webmail software",
"fr": "Webmail Open Source"
},
"license": "free",
"maintainer": {
"name": "kload",
"email": "kload@kload.fr",
"url": "http://kload.fr"
},
"multi_instance": "true",
"arguments": {
"install" : [
{
"name": "domain",
"ask": {
"en": "Choose a domain for Roundcube"
},
"example": "domain.org"
},
{
"name": "path",
"ask": {
"en": "Choose a path for Roundcube"
},
"example": "/webmail",
"default": "/webmail"
}
]
}
}
-
name: the app name. It does not have to be unique, but it should be, since it is the name shown to all the YunoHost administrators in the app list.
-
id: the unique ID of the app. You have to ensure that this ID is unique before submit an app integration request.
-
description: the complete description of the app. You can make it as detailed as you feel it should be. Only
en
is required right now, but you can translate the description by prepending the locale prefix. -
license: software license type:
free
ornon-free
. Be careful to not confuse with package license which must be put inLICENSE
file. -
maintainer: informations about the app maintainer.
-
multi_instance: this defines your app's ability to be installed multiple times. When YunoHost tries to install a second instance of the app, it will replace the
id
in the scripts by anid__2
. It means that, if you want to bemulti_instance
, you have to put all the identifiers in the scripts.
E.g. in the roundcube script, database is calledroundcube
, the install directoryroundcube
and the Nginx configurationroundcube
. This way, the second instance of roundcube will not conflict with the first one, and will be installed in theroundcube__2
database, in theroundcube__2
directory, and with theroundcube__2
Nginx configuration. -
arguments: the settings for the YunoHost's administrator to enter at installation. You have to set a
name
(for argument identification), and a question inask
(at least inen
) that you can translate like the description above. You can also set adefault
value and anexample
to help administrator to fill the input.