manifest.toml 6.1 KB

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