Merge branch 'YunoHost:master' into master

This commit is contained in:
Leandro Noferini 2023-08-03 18:04:23 +02:00 committed by GitHub
commit ff0e0cb781
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 30 deletions

View file

@ -25,9 +25,11 @@ You can [contribute to this list by adding something you'd like to be packaged](
| [AnonAddy](https://anonaddy.com/) | Anonymous email forwarding - Create Unlimited Email Aliases For Free | [Upstream](https://github.com/anonaddy/anonaddy) | | | [AnonAddy](https://anonaddy.com/) | Anonymous email forwarding - Create Unlimited Email Aliases For Free | [Upstream](https://github.com/anonaddy/anonaddy) | |
| [Ansible Matrix Docker Deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) | Full Featured Matrix Server Setup with All Bridges and Integrations | [Upstream](https://github.com/spantaleev/matrix-docker-ansible-deploy) | | | [Ansible Matrix Docker Deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) | Full Featured Matrix Server Setup with All Bridges and Integrations | [Upstream](https://github.com/spantaleev/matrix-docker-ansible-deploy) | |
| [Apache Superset](https://superset.apache.org/) | Apache Superset is a Data Visualization and Data Exploration Platform | [Upstream](https://github.com/apache/superset) | | | [Apache Superset](https://superset.apache.org/) | Apache Superset is a Data Visualization and Data Exploration Platform | [Upstream](https://github.com/apache/superset) | |
| [Appflowy.IO](https://appflowy.io/) | Open-source alternative to Notion | [Upstream](https://github.com/AppFlowy-IO/appflowy) | |
| [askbot](https://askbot.com/) | Questions and answers | | [Package Draft](https://github.com/zamentur/askbot_ynh) | | [askbot](https://askbot.com/) | Questions and answers | | [Package Draft](https://github.com/zamentur/askbot_ynh) |
| [Archivematica](https://www.archivematica.org/) | Mature digital preservation system designed to maintain standards-based, long-term access to collections of digital objects. | [Upstream](https://github.com/artefactual/archivematica) | | | [Archivematica](https://www.archivematica.org/) | Mature digital preservation system designed to maintain standards-based, long-term access to collections of digital objects. | [Upstream](https://github.com/artefactual/archivematica) | |
| [ArchivesSpace](https://archivesspace.org/) | Archives information management application for managing and providing Web access to archives, manuscripts and digital objects. | [Upstream](https://github.com/archivesspace/archivesspace) | | | [ArchivesSpace](https://archivesspace.org/) | Archives information management application for managing and providing Web access to archives, manuscripts and digital objects. | [Upstream](https://github.com/archivesspace/archivesspace) | |
| [Asqatasun.org](https://asqatasun.org/) | website analyser for web accessibility and SEO | [Upstream](https://gitlab.com/asqatasun/Asqatasun) | |
| [ass](https://github.com/tycrek/ass) | ass is a self-hosted ShareX upload server written in Node.js. |[Upstream](https://github.com/tycrek/ass)| | | [ass](https://github.com/tycrek/ass) | ass is a self-hosted ShareX upload server written in Node.js. |[Upstream](https://github.com/tycrek/ass)| |
| [Astral](https://astralapp.com/) | Organize Your GitHub Stars With Ease |[Upstream](https://github.com/astralapp/astral)| | | [Astral](https://astralapp.com/) | Organize Your GitHub Stars With Ease |[Upstream](https://github.com/astralapp/astral)| |
| [Azuracast](https://azuracast.com/) | A Simple, Self-Hosted Web Radio Management Suite |[Upstream](https://github.com/AzuraCast/AzuraCast)| | | [Azuracast](https://azuracast.com/) | A Simple, Self-Hosted Web Radio Management Suite |[Upstream](https://github.com/AzuraCast/AzuraCast)| |
@ -153,6 +155,7 @@ You can [contribute to this list by adding something you'd like to be packaged](
| Kenoma | Pleroma frontend | [Upstream](https://git.pleroma.social/lambadalambda/kenoma) | | | Kenoma | Pleroma frontend | [Upstream](https://git.pleroma.social/lambadalambda/kenoma) | |
| Keyoxide | Keyoxide is a privacy-friendly tool to create and verify decentralized online identities. | [Upstream](https://codeberg.org/keyoxide) | | | Keyoxide | Keyoxide is a privacy-friendly tool to create and verify decentralized online identities. | [Upstream](https://codeberg.org/keyoxide) | |
| [Kill the newsletter](https://kill-the-newsletter.com/) | Convert email newsletters to RSS feeds | [Upstream](https://github.com/leafac/kill-the-newsletter.com) | | | [Kill the newsletter](https://kill-the-newsletter.com/) | Convert email newsletters to RSS feeds | [Upstream](https://github.com/leafac/kill-the-newsletter.com) | |
| [Kitchenowl](https://kitchenowl.org/) | grocery list and recipe manager | [Upstream](https://github.com/TomBursch/kitchenowl) | |
| [Klaxon](https://newsklaxon.org) | Easily create alerts for changes on the web | [Upstream](https://github.com/themarshallproject/klaxon) | | | [Klaxon](https://newsklaxon.org) | Easily create alerts for changes on the web | [Upstream](https://github.com/themarshallproject/klaxon) | |
| [Known](https://withknown.com) | | [Upstream](https://github.com/idno/known) | | | [Known](https://withknown.com) | | [Upstream](https://github.com/idno/known) | |
| [Koel](https://koel.phanan.net) | | [Upstream](https://github.com/phanan/koel) | | | [Koel](https://koel.phanan.net) | | [Upstream](https://github.com/phanan/koel) | |
@ -265,6 +268,7 @@ You can [contribute to this list by adding something you'd like to be packaged](
| [RustDesk](https://rustdesk.com/server 'RustDesk Server') | [TeamViewer](https://teamviewer.com) alternative | [Upstream](https://github.com/rustdesk/rustdesk-server 'RustDesk Server on GitHub') and [easy install script](https://github.com/dinger1986/rustdeskinstall) | | | [RustDesk](https://rustdesk.com/server 'RustDesk Server') | [TeamViewer](https://teamviewer.com) alternative | [Upstream](https://github.com/rustdesk/rustdesk-server 'RustDesk Server on GitHub') and [easy install script](https://github.com/dinger1986/rustdeskinstall) | |
| rutorrent | Torrent client | | [Package Draft](https://github.com/CotzaDev/rutorrent_ynh) | | rutorrent | Torrent client | | [Package Draft](https://github.com/CotzaDev/rutorrent_ynh) |
| rwtxt | Minimalist CMS | [Upstream](https://github.com/schollz/rwtxt) | | | rwtxt | Minimalist CMS | [Upstream](https://github.com/schollz/rwtxt) | |
| [SABnzbd](https://sabnzbd.org/) | The automated Usenet download tool | [Upstream](https://github.com/sabnzbd/sabnzbd) | |
| [sat](https://salut-a-toi.org) | An all-in-one tool to manage all your communications | | [Package Draft](https://github.com/YunoHost-Apps/sat_ynh) | | [sat](https://salut-a-toi.org) | An all-in-one tool to manage all your communications | | [Package Draft](https://github.com/YunoHost-Apps/sat_ynh) |
| [satdress] | Federated Lightning addresses server | | [Upstream](https://github.com/nbd-wtf/satdress) | | [satdress] | Federated Lightning addresses server | | [Upstream](https://github.com/nbd-wtf/satdress) |
| [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/) | | | | | [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/) | | | |

View file

@ -1,46 +1,38 @@
--- ---
title: Writing app manifest title: 'Writing the app manifest'
template: docs template: docs
taxonomy: taxonomy:
category: docs category:
- docs
routes: routes:
default: '/packaging_manifest' default: /packaging_manifest
--- ---
The app's `manifest.toml` can be seen as the ID card of the app. It declares various basic metadata such as the id, name, description of the app, its version, install questions to be asked to the admin prior to installation, etc. The app's `manifest.toml` can be seen as the ID card of the app. It declares various basic metadata such as the id, name, description of the app, its version, install questions to be asked to the admin prior to installation, etc.
In this page, the data are described according to a somewhat dummy app called `helloworld` In this page, the data are described according to a somewhat dummy app called `helloworld`
!!! If you want to convert an application from the packaging v1 to v2 format, [please see here](/packaging_v2)!
## General information ## General information
```toml ```toml
packaging_format = 2 packaging_format = 2
```
- `packaging_format` (`int`) is the packaging version format used to package this app. Newly packaged apps are strongly encouraged to use the new "v2" format (starting with YunoHost 11.1) while older apps may still be in "v1" format.
```toml
id = "helloworld" id = "helloworld"
name = "Hello World" name = "Hello World"
description.en = "A dummy basic app to illustrate YunoHost's app packaging." description.en = "A dummy basic app to illustrate YunoHost's app packaging."
description.fr = "Une app simple et bidon pour illustrer comme le packaging d'app de YunoHost fonctionne" description.fr = "Une app simple et bidon pour illustrer comme le packaging d'app de YunoHost fonctionne"
```
- `id` (`str`) is expected to be lower-case alphanumeric (and possibly `-`). This is what will be used for instance in the syntax `yunohost app install <app_id>`. This will also be the name of various folder or conf files such as `/etc/yunohost/apps/<app_id>` or `/etc/nginx/conf.d/<domain>.d/<app_id>.conf` (if applicable), and a dedicated system user.
- `name` (`str`) is the display name of the app, shown for example in the webadmin UI or user portal. It is limited to 22 chars <small>(though not sure why this number?)</small>.
- `description` (`dict` of `lang code`->`str`) contains *short*, *concise* descriptions of the app in different languages (at least `en`). It is limited to 150 chars. It will be displayed on the app catalog and should allow people to understand what this app is about at a glance. A more extensive description of the app can be provided in `doc/DESCRIPTION.md`.
```toml
version = "0.1~ynh1" version = "0.1~ynh1"
```
- `version` (`str`) is composed of the *upstream* version of the app shipped, and an `~ynhX` suffix. Changing this version is what effectively triggers an available upgrade for YunoHost instances which installed this package (hence no upgrade will be displayed as available if you forget to change it). The point of the `~ynhX` suffix is to have a way to increment the version when commiting changes unrelated to the upstream but still trigger an upgrade.
```toml
maintainers = ["alexAubin"] maintainers = ["alexAubin"]
``` ```
- `packaging_format` (`int`) is the packaging version format used to package this app. Newly packaged apps are strongly encouraged to use the new "v2" format (starting with YunoHost 11.1) while older apps may still be in "v1" format.
- `id` (`str`) is expected to be lower-case alphanumeric (and possibly `-`). This is what will be used for instance in the syntax `yunohost app install <app_id>`. This will also be the name of various folder or conf files such as `/etc/yunohost/apps/<app_id>` or `/etc/nginx/conf.d/<domain>.d/<app_id>.conf` (if applicable), and a dedicated system user.
- `name` (`str`) is the display name of the app, shown for example in the webadmin UI or user portal. It is limited to 22 chars <small>(though not sure why this number?)</small>.
- `description` (`dict` of `lang code`->`str`) contains *short*, *concise* descriptions of the app in different languages (at least `en`). It is limited to 150 chars. It will be displayed on the app catalog and should allow people to understand what this app is about at a glance. A more extensive description of the app can be provided in `doc/DESCRIPTION.md`.
- `version` (`str`) is composed of the *upstream* version of the app shipped, and an `~ynhX` suffix. Changing this version is what effectively triggers an available upgrade for YunoHost instances which installed this package (hence no upgrade will be displayed as available if you forget to change it). The point of the `~ynhX` suffix is to have a way to increment the version when commiting changes unrelated to the upstream but still trigger an upgrade.
- `maintainers` (`list` or `str`) may allow to declare which person should be the referring person for this package (though packages are often maintained collectively and not really used in practice). This should contain a list of easily identifiable persons (eg your Github or Matrix username) - `maintainers` (`list` or `str`) may allow to declare which person should be the referring person for this package (though packages are often maintained collectively and not really used in practice). This should contain a list of easily identifiable persons (eg your Github or Matrix username)
## Upstream section ## Upstream section
@ -168,4 +160,6 @@ In this example:
- `permissions`: an SSOwat `$app.main` permission will be initialized such that the SSO allows access to the app's endpoint according to the chosen `init_main_permission` question. The `main.url = "/"` is here to tell that the main endpoint is the "root" of the app, that is `https://domain.tld/helloworld/` if the app is installed with `domain=domain.tld` and `path=/helloworld` - `permissions`: an SSOwat `$app.main` permission will be initialized such that the SSO allows access to the app's endpoint according to the chosen `init_main_permission` question. The `main.url = "/"` is here to tell that the main endpoint is the "root" of the app, that is `https://domain.tld/helloworld/` if the app is installed with `domain=domain.tld` and `path=/helloworld`
- `apt`: the packages `nyancat`, `lolcat`, `sl` will be installed with `apt`. These are just dummy apt dependencies to illustrate the syntax. - `apt`: the packages `nyancat`, `lolcat`, `sl` will be installed with `apt`. These are just dummy apt dependencies to illustrate the syntax.
The full documentation on resources is available [here](/packaging_apps_resources) ### List of app resources
The full documentation on resources is available [here](/packaging_apps_resources).

View file

@ -1,13 +1,13 @@
--- ---
title: Packaging v2 title: 'Packaging v2'
template: docs template: docs
taxonomy: taxonomy:
category: docs category:
- docs
routes: routes:
default: '/packaging_v2' default: /packaging_v2
--- ---
Packaging v2 is a major improvement for the packaging introduced in YunoHost 11.1 Packaging v2 is a major improvement for the packaging introduced in YunoHost 11.1
### Motivation ### Motivation
@ -23,7 +23,7 @@ However, this "v2" is not the end of the story and should be seen as an intermed
### Adapting a v1 app to v2 ### Adapting a v1 app to v2
A script is available in https://github.com/YunoHost/apps/tree/master/tools/packaging_v2 and will attempt to convert what it can from the v1 format to the v2 format, in particular: A script is available in <https://github.com/YunoHost/apps/tree/master/tools/packaging_v2> and will attempt to convert what it can from the v1 format to the v2 format, in particular:
- initializing a `manifest.toml` and prefilling it with info scrapped from the various scripts - initializing a `manifest.toml` and prefilling it with info scrapped from the various scripts
- comment out now-unecessary lines in the various scripts - comment out now-unecessary lines in the various scripts

View file

@ -60,9 +60,9 @@ Cependant, [**un futur format v3** est encore à venir] (https://github.com/Yuno
## 4. Aperçu général de la structure d'une application YunoHost ## 4. Aperçu général de la structure d'une application YunoHost
Une application YunoHost est construite dans un dépôt Git. Nous vous encourageons à jeter un coup d'oeil à ces dépôts de code pour vous familiariser avec les structures des dépôts d'applications : Une application YunoHost est construite dans un dépôt Git. Nous vous encourageons à jeter un coup d'oeil à ces dépôts de code pour vous familiariser avec les structures des dépôts d'applications :
- l'application [`helloworld_ynh`](https://github.com/YunoHost-Apps/helloworld_ynh) - [l'application `helloworld_ynh`](https://github.com/YunoHost-Apps/helloworld_ynh)
- l'application [`example_ynh`](https://github.com/YunoHost/example_ynh) which illustrates all common features and recommended formatting - [l'application `example_ynh`](https://github.com/YunoHost/example_ynh) qui contient toutes les fonctionnalités générales et le formattage recommandé
- votre application "réelle" préférée dans la liste des dépots [YunoHost-Apps].(https://github.com/orgs/YunoHost-Apps/repositories)) - votre application "réelle" préférée dans la liste des dépots [YunoHost-Apps](https://github.com/orgs/YunoHost-Apps/repositories)
Parmi les fichiers contenus dans un paquet, les plus importants sont les suivants : Parmi les fichiers contenus dans un paquet, les plus importants sont les suivants :

View file

@ -60,9 +60,9 @@ However, [**a future v3 format** has yet to come](https://github.com/YunoHost/is
## 4. General overview of a YunoHost app structure ## 4. General overview of a YunoHost app structure
A YunoHost app consists in a Git repository. We encourage you to have a look at those code repository to get familiar witch app repository structures: A YunoHost app consists in a Git repository. We encourage you to have a look at those code repository to get familiar witch app repository structures:
- the [`helloworld_ynh`](https://github.com/YunoHost-Apps/helloworld_ynh) app - [the `helloworld_ynh` app](https://github.com/YunoHost-Apps/helloworld_ynh)
- the [`example_ynh`](https://github.com/YunoHost/example_ynh) app which illustrates all common features and recommended formatting - [the `example_ynh` app](https://github.com/YunoHost/example_ynh) which illustrates all common features and recommended formatting
- your favourite "real-life" app in the [YunoHost-Apps organization](https://github.com/orgs/YunoHost-Apps/repositories)) - your favourite "real-life" app in the [YunoHost-Apps organization](https://github.com/orgs/YunoHost-Apps/repositories)
Among the file contained in a package, the most important ones are: Among the file contained in a package, the most important ones are: