diff --git a/pages/02.administer/15.admin_guide/20.users/05.groups_and_permissions/groups_and_permissions.fr.md b/pages/02.administer/15.admin_guide/20.users/05.groups_and_permissions/groups_and_permissions.fr.md index 90ce28c7..e907cc91 100644 --- a/pages/02.administer/15.admin_guide/20.users/05.groups_and_permissions/groups_and_permissions.fr.md +++ b/pages/02.administer/15.admin_guide/20.users/05.groups_and_permissions/groups_and_permissions.fr.md @@ -87,10 +87,10 @@ Pour supprimer un utilisateur, cliquez sur la croix à côté de son nom d'utili En ligne de commande, utilisez la commande suivante pour ajouter `charlie` et `delphine` au groupe `yolo_crew` : ```shell -$ yunohost user group update yolo_crew --add charlie delphine +$ yunohost user group add yolo_crew charlie delphine ``` -(De même, `--remove` peut être utilisé pour retirer des membres d'un groupe.) +(De même, `remove` peut être utilisé pour retirer des membres d'un groupe.) Dans la liste des groupes, nous devrions voir : @@ -260,4 +260,4 @@ $ yunohost user group info admins Il est possible de les ajouter avec l'action `add-mailalias` ou de les enlever avec `remove-mailalias`. ```shell $ yunohost user group add-mailalias -``` \ No newline at end of file +``` diff --git a/pages/02.administer/15.admin_guide/20.users/05.groups_and_permissions/groups_and_permissions.md b/pages/02.administer/15.admin_guide/20.users/05.groups_and_permissions/groups_and_permissions.md index 32ac2649..587d25ac 100644 --- a/pages/02.administer/15.admin_guide/20.users/05.groups_and_permissions/groups_and_permissions.md +++ b/pages/02.administer/15.admin_guide/20.users/05.groups_and_permissions/groups_and_permissions.md @@ -90,10 +90,10 @@ To remove a user, click on the cross next to their username, in the group panel. In CLI, use the following command to add `charlie` and `delphine`to the `yolo_crew` group: ```shell -$ yunohost user group update yolo_crew --add charlie delphine +$ yunohost user group add yolo_crew charlie delphine ``` -(similarly, `--remove` can be used to remove members from a group) +(similarly, `remove` can be used to remove members from a group) Now in the group list we should see: @@ -260,4 +260,4 @@ $ yunohost user group info admins To add a new mail, use the action `add-mailalias` or `remove-mailalias` to delete it. ```shell $ yunohost user group add-mailalias -``` \ No newline at end of file +``` diff --git a/pages/02.administer/45.tutorials/35.email_relay/email_configure_relay.fr.md b/pages/02.administer/45.tutorials/35.email_relay/email_configure_relay.fr.md index fb3a8d42..006c0bfb 100644 --- a/pages/02.administer/45.tutorials/35.email_relay/email_configure_relay.fr.md +++ b/pages/02.administer/45.tutorials/35.email_relay/email_configure_relay.fr.md @@ -50,6 +50,8 @@ Il suffit d'activer l'option, et de renseigner les champs nécessaires : - **Utilisateur du relais SMTP** : Login ou mail d'identification pour le serveur. - **Mot de passe du relais SMTP** : Tout simplement le mot de passe. +! [fa=exclamation-triangle /] Les mots de passe avec le caractère `#` ne fonctionneront pas proprement à cause d'une limitation de postfix (d'autres caractères sont peut-être interdit, n'hésitez pas à rapporter ce genre de cas pour la mise à jour de cette doc). + ![Option-Relais-Smtp](image://relay_smtp_option_webadmin_en.png?resize=800) [/ui-tab] @@ -60,6 +62,8 @@ Pour que YunoHost soit capable d'utiliser le relais, il faut paramétrer 4 chose 3. Votre nom d'utilisateur SMTP (on utilisera `username`). 4. Votre mot de passe SMTP (on utilisera `password`). +! [fa=exclamation-triangle /] Les mots de passe avec le caractère `#` ne fonctionneront pas proprement à cause d'une limitation de postfix (d'autres caractères sont peut-être interdit, n'hésitez pas à rapporter ce genre de cas pour la mise à jour de cette doc). + Le fournisseur SMTP vous fournit ces trois informations. Premièrement se connecter sur son serveur en SSH avec la commande : diff --git a/pages/02.administer/45.tutorials/35.email_relay/email_configure_relay.md b/pages/02.administer/45.tutorials/35.email_relay/email_configure_relay.md index cd761dab..2a09fa01 100644 --- a/pages/02.administer/45.tutorials/35.email_relay/email_configure_relay.md +++ b/pages/02.administer/45.tutorials/35.email_relay/email_configure_relay.md @@ -53,6 +53,8 @@ Now set all options requests : - **SMTP relay port** : Port use with the distant server. - **SMTP relay user** : Login or identification mail server. - **SMTP relay password** : Your SMTP relay password. +- +! [fa=exclamation-triangle /] Password with `#` char won't works properly due to postfix limitation (it's possible other chars are forbidden, don't hesitate to report it to update this doc). ![Option-Relais-Smtp](image://relay_smtp_option_webadmin_en.png?resize=800) @@ -64,6 +66,8 @@ In order to setup your YunoHost to use your SMTP relay, you will have to configu 3. Your SMTP relay username (for this tutorial we will use `username`) 4. Your SMTP relay password (for this tutorial we will use `password`) +! [fa=exclamation-triangle /] Password with `#` char won't works properly due to postfix limitation (it's possible other chars are forbidden, don't hesitate to report it to update this doc). + Your SMTP relay will obviously provide you with these four things, that should be available in your control panel or whatsoever. You can log into your YunoHost server using SSH: diff --git a/pages/04.applications/99.wishlist/apps_wishlist.md b/pages/04.applications/99.wishlist/apps_wishlist.md index 61db0c04..6979c662 100644 --- a/pages/04.applications/99.wishlist/apps_wishlist.md +++ b/pages/04.applications/99.wishlist/apps_wishlist.md @@ -244,6 +244,7 @@ You can [contribute to this list by adding something you'd like to be packaged]( | [Privoxy](https://www.privoxy.org) | | | | | [ProcessMaker](https://www.processmaker.com) | | | | | proftpd | | | [Package Draft](https://github.com/abeudin/proftpd_ynh) | +| [ProtonMail Bridge](https://proton.me/mail/bridge) | Use Proton Mail with your email client | [Upstream](https://github.com/ProtonMail/proton-bridge) | | | ProtonMail’s WebClient | | [Upstream](https://github.com/ProtonMail/WebClient) | | | [Psono](https://psono.com/) | Password Manager for Teams | [Upstream](https://gitlab.com/psono/psono-server) | | | [pterodactyl](https://pterodactyl.io/) | | | [Package Draft](https://github.com/YunoHost-Apps/pterodactyl_ynh) | @@ -257,7 +258,7 @@ You can [contribute to this list by adding something you'd like to be packaged]( | [Raspap](https://raspap.com/) | | [Upstream](https://github.com/RaspAP/raspap-webgui) | | | Redash | Connect to any data source, easily visualize, dashboard and share your data. | [Upstream](https://github.com/getredash/redash) | | | remoteStorage | A remoteStorage server implementation written in PHP | [Upstream](https://github.com/fkooman/php-remote-storage) | [Package Draft](https://github.com/YunoHost-Apps/RemoteStorage_ynh) | -| [Renovate](https://www.mend.io/renovate/) | Bot for automating dependency updates on Gitlab / Gitea / Forgejo | [Upstream](https://github.com/renovatebot/renovate) +| [Renovate](https://www.mend.io/renovate/) | Bot for automating dependency updates on Gitlab / Gitea / Forgejo | [Upstream](https://github.com/renovatebot/renovate) | | | [Request Tracker](https://bestpractical.com) | | [Upstream](https://github.com/bestpractical/rt) | | | [Restya](https://restya.com) | | [Upstream](https://github.com/RestyaPlatform/board/) | | | [Retroshare](https://retroshare.cc/) | | [Upstream](https://github.com/RetroShare/RetroShare) | | @@ -370,7 +371,6 @@ You can [contribute to this list by adding something you'd like to be packaged]( | Zoneminder | | [Upstream](https://github.com/ZoneMinder/zoneminder) | | | [Zulip](https://zulipchat.com/) | | [Upstream](https://github.com/zulip/zulip) | | | Zusam | A truly private space for you and your friends | [Upstream](https://github.com/zusam/zusam) | [Package Draft](https://github.com/zusam/zusam_ynh) | -| [XBackBone](https://xbackbone.app) | XBackBone is a simple and lightweight PHP file manager that support the instant sharing tool ShareX and NIX systems. | [Upstream](https://github.com/SergiX44/XBackBone) | | ### Other references listing self-hosted applications diff --git a/pages/05.community/20.faq/faq.fr.md b/pages/05.community/20.faq/faq.fr.md index 63545604..f443438d 100644 --- a/pages/05.community/20.faq/faq.fr.md +++ b/pages/05.community/20.faq/faq.fr.md @@ -18,7 +18,7 @@ Les applications et leurs paquets ont leurs licences respectives. #### Quel est l’objectif de YunoHost ? -Nous pensons que la décentralisation d’Internet, et la reprise du contrôle et de la responsabilité des données et services par les citoyens est un enjeu crucial pour garantir une société libre et démocratique. +Nous pensons que la décentralisation d’Internet, et la reprise du contrôle et de la responsabilité des données et services par les personnes est un enjeu crucial pour garantir une société libre et démocratique. Le projet YunoHost cherche à démocratiser l’auto-hébergement. @@ -27,7 +27,7 @@ Nous fournissons un logiciel qui cherche à rendre simple le fait de gérer et d #### Mais qu’est-ce que ça fait *vraiment* ? -YunoHost peut être appelé une distribution ou un système d’exploitation, mais dans les faits, c’est une « simple » sur-couche à Debian, qui gère les manipulations pénibles à votre place. +YunoHost est à la fois une distribution, dans le sens où c'est une version de GNU/Linux-Debian dédié à un objectif précis et que YunoHost distribue un ensemble d'applications via son catalogue, mais c'est aussi un « simple » programme qui configure Debian de manière automatique, et gère les manipulations pénibles à votre place. Par exemple, pour installer un WordPress à la main, il vous faudrait taper toute une série de commandes pour créer des utilisateurs, mettre en place un serveur web, mettre en place un serveur SQL, télécharger l’archive de WordPress, la décompresser, configurer le serveur web, configurer la base de données SQL, et finalement configurer WordPress. YunoHost gère toute cette partie technique et « tape les commandes à votre place », pour que vous puissiez vous concentrer sur ce qui compte vraiment. @@ -42,7 +42,7 @@ Elle fournit une « coquille vide » : après l’installation, il suffit d’en #### Peut-on héberger plusieurs sites indépendants avec des noms de domaines différents ? -On peut tout à fait héberger plusieurs sites web car YunoHost est multi-domaine et que certaines applications de gestion de sites web, comme *WordPress* ou *Web App Multi Custom*, sont multi-instances, c’est-à-dire que l’application peut-être installée plusieurs fois. +On peut tout à fait héberger plusieurs sites web car YunoHost est multi-domaine et que certaines applications de gestion de sites web, comme *WordPress* ou *My Webapp*, sont multi-instances, c’est-à-dire que l’application peut-être installée plusieurs fois. #### Pourquoi je ne peux pas accéder à mes applications avec l’adresse IP ? @@ -51,16 +51,14 @@ Pour des raisons techniques, le [SSO](https://github.com/YunoHost/SSOwat/) ne pe #### Quel est le modèle économique de YunoHost ? -À l’heure actuelle, YunoHost est maintenu uniquement par une équipe de bénévoles travaillant pendant leur temps libre. Il n’y a pas d’argent impliqué dans le projet (hormis quelques frais de serveurs et stickers :P). +YunoHost est maintenu par une équipe de bénévoles travaillant pendant leur temps libre. Le projet reçoit régulièrement des dons qui financent principalement des frais de serveurs et de communication (stickers ;P). Le projet a reçu dans le passé (ou continue de recevoir) des subventions de la part d'organismes comme [NLnet](https://nlnet.nl/) ou [CodeLutin](https://www.codelutin.com/) pour financer des développements précis. -Étant donné que certains contributeurs sont très engagés dans ce projet, nous réfléchissons à un moyen de pérenniser le projet. - -Il est question de financement par dons ou subventions, certains contributeurs mènent par ailleurs des activités professionnelles liées à YunoHost. +Les dons au projet étant de plus en plus important, des initiatives sont en cours pour tenter de redistribuer l'argent aux contributeur·ice·s principales et ainsi aider à pérenniser le projet. Des contributeur·ice·s mènent par ailleurs des activités professionnelles basées partiellement sur YunoHost. #### Puis-je faire un don au projet ? -Oui, c'est possible ! YunoHost a besoin de payer des serveurs et noms de domaine, par ailleurs nous souhaiterions pouvoir permettre aux développeurs principaux de continuer à développer YunoHost plutôt que de chercher un emploi ailleurs. +Oui, c'est possible ! YunoHost a besoin de payer des serveurs et noms de domaine, et nous souhaitons permettre aux contributeur·ice·s de continuer à développer YunoHost plutôt que de chercher un emploi ailleurs. Pour faire un don ça se passe via [notre interface de don](https://donate.yunohost.org) @@ -73,45 +71,28 @@ Il existe [plusieurs façons de contribuer](/contribute) :). N’hésitez pas à venir nous parler de vos idées ! -Une idée répandue parmi les nouveaux contributeurs aux logiciels libres est de ne pas être « assez compétent ». En pratique, croyez-le, personne n’est compétent :). Ce qui compte vraiment est : [d’aimer ce que vous faites](https://www.youtube.com/watch?v=zIbR5TAz2xQ&t=113s), être sympathique avec les autres êtres humains du projet, être patient et têtu avec les machines, et avoir du temps libre. À part ça, juste faire ce que vous pouvez, c’est déjà trop cool ! +Le syndrome de l'imposteur (ne pas se sentir « assez compétent·e ») est assez répandu, mais en pratique, croyez-le, personne ne se sent compétent même 10 ans après sa première contrib' :). Ce qui compte vraiment est : [d’aimer ce que vous faites](https://www.youtube.com/watch?v=zIbR5TAz2xQ&t=113s), être sympathique avec les autres êtres humains du projet, être patient et têtu avec les machines, et avoir du temps libre. À part ça, juste faire ce que vous pouvez, c’est déjà trop cool ! -#### Quel est le modèle politique de YunoHost ? +#### Quelle est l'organisation politique du projet YunoHost ? -Il est décrit dans [ce document](/project_organization) :). +Elle est décrite dans [ce document](/project_organization) :). #### Pouvez-vous porter YunoHost sur [ma distro préférée] ? -Réponse courte : non. L’équipe n’a pas l’énergie et ce n’est pas pertinent pour le but recherché par YunoHost. +Si vous vous préoccupez des guéguerres de distro, ou pensez que « Debian c’est sale », vous n’êtes pas le public de YunoHost. -Réponse longue -
-

Si vous vous préoccupez des guéguerres de distro, ou pensez que « Debian c’est sale », vous n’êtes pas le public de YunoHost.

+YunoHost vise un public de non-technophiles ou de bidouilleur·euse·s qui veulent simplement que « ça marche » sans devoir investir des semaines entières. Debian a probablement des défauts, mais c’est une (la ?) distribution la plus connue et utilisée pour gérer des serveurs. C’est une distribution stable. La plupart des services auto-hébergeables sont compatibles d’une manière ou d’une autre avec Debian. Elle est facilement bidouillable par quelqu’un qui a déjà utilisé la ligne de commande sur son ordinateur personnel. Il n’y a pas de « killer feature » particulière dans les autres distributions qui rendrait pertinent de porter YunoHost dessus. -

YunoHost vise un public de non-technophiles ou de bidouilleurs qui veulent simplement que le serveur fonctionne sans devoir investir des semaines entières. Debian a probablement des défauts, mais c’est une (la ?) distribution la plus connue et utilisée pour gérer des serveurs. C’est une distribution stable. La plupart des services auto-hébergeables sont compatibles d’une manière ou d’une autre avec Debian. Elle est facilement bidouillable par quelqu’un qui a déjà utilisé la ligne de commande sur son ordinateur personnel. Il n’y a pas de « killer feature » particulière dans les autres distributions qui rendrait pertinent de porter YunoHost dessus.

- -

Si cela ne vous convient pas, il existe d’autres projets sous d’autres distributions ou avec d’autres philosophies.

-
+Si cela ne vous convient pas, il existe d’autres projets sous d’autres distributions ou avec d’autres philosophies. #### J’ai regardé comment le packaging des apps fonctionne. Pourquoi réinventez-vous [mon format de paquet préféré] ? -Réponse courte : ce n’est pas ce que nous faisons. +Des personnes ont été tentées de comparer le système de packaging de YunoHost aux `.deb` de Debian. Pourtant, l’objectif des paquets d’application YunoHost est de celui des paquets traditionnels (comme les .deb de Debian) qui remplissent le rôle d’installer des éléments bas-niveau tels que des fichiers, commandes, programmes ou services sur le système. Il est à la charge de l’administrateur de les configurer ensuite proprement, simplement parce qu’il n’existe pas d’environnement standard. Typiquement, les applications web requièrent beaucoup de configuration car elles ont besoin de s’interfacer avec un serveur web et une base de données (et le système de connexion unique / SSO). -Réponse moyenne : Par le passé, les apps étaient gérées via des .deb. C’était cauchemardesque. Nous sommes heureux maintenant ;). +YunoHost manipule des abstractions haut-niveau (apps, domaines, utilisateurs…) et définit un environnement standard (NGINX, Postfix, Metronome, SSOwat...) et, grâce à cela, peut gérer la configuration à la place de l’administrateur. -Longue réponse -
- -

YunoHost cherche à garder un système de packaging simple. L’idée depuis le départ était que « si tu sais installer l’app à la main, alors tu peux facilement créer un package basique en copiant-collant les étapes, sans besoin de connaissances particulières ». Ce n’est pas le cas des paquets Debian.

- -

Il se trouve que l’objectif des paquets d’application YunoHost est subtilement différent de celui des paquets traditionnels (comme les .deb de Debian) qui remplissent le rôle d’installer des éléments bas-niveau tels que des fichiers, commandes, programmes ou services sur le système. Il est à la charge de l’administrateur de les configurer ensuite proprement, simplement parce qu’il n’existe pas d’environnement standard. Typiquement, les applications web requièrent beaucoup de configuration car elles ont besoin de s’interfacer avec un serveur web et une base de données (et le système de connexion unique / SSO).

- -

YunoHost manipule des abstractions haut-niveau (apps, domaines, utilisateurs…) et définit un environnement standard (NGINX, Postfix, Metronome, SSOwat...) et, grâce à cela, peut gérer la configuration à la place de l’administrateur.

- -

Si vous restez persuadé que l’on peut néanmoins bricoler les paquets .deb pour gérer tout cela, voir les réponses précédentes.

-
- -#### Quand est-ce que *cette fonctionnalité* sera ajoutée ? Pourquoi *cette app* n'a pas encore été packagée ? Je n'en reviens pas que vous ne fassiez pas encore *cela* ! +#### Quand est-ce que [cette fonctionnalité] sera ajoutée ? Pourquoi [cette app] n'a pas encore été packagée ? Je n'en reviens pas que vous ne fassiez pas encore [cela] ! Nous ne donnons pas de calendrier. diff --git a/pages/05.community/20.faq/faq.md b/pages/05.community/20.faq/faq.md index c6b7b441..1fc73d7d 100644 --- a/pages/05.community/20.faq/faq.md +++ b/pages/05.community/20.faq/faq.md @@ -27,7 +27,7 @@ It provides a software that aims to make it easy for people to run and administe #### But what does YunoHost exactly *do*? -YunoHost may be called a distribution or an operating system, but it's actually "just" a simple layer added over the top of Debian, which does most of the hard work for you. +YunoHost is a distribution, in the sense that it is a purpose-specific version of GNU/Linux-Debian and it distributes a set of application via its catalog, but it is also "just" a program that automatically configures Debian and does most of the hard work for you. For instance, if you wanted to install WordPress, you would need to type a bunch of commands to create some users, setup a web server, setup a SQL server, download the WordPress archive, uncompress it, configure the web server, configure the SQL database, and finally configure WordPress. YunoHost handles the technical details and "types all these commands for you", so that you can focus on what really matters. @@ -39,7 +39,7 @@ Yes! Have a look at the [Custom Web app](https://github.com/YunoHost-Apps/my_web #### Can I host many independent websites with different domain names? -Yes! YunoHost is multi-user and multi-domain. Some applications like *WordPress* or *Web App Multi Custom*, are multi-instances, which means that the application can be installed many times. +Yes! YunoHost is multi-user and multi-domain. Some applications like *WordPress* or *My webapp*, are multi-instances, which means that the application can be installed many times. #### Why can't I access applications via the IP address? @@ -49,22 +49,18 @@ The [SSO](https://github.com/Kloadut/SSOwat/) (single sign-on) cannot properly a #### What's YunoHost's business model? -At the moment, YunoHost is maintained only by volunteers working in their free time. Basically no money is involved in the project (apart from server fees or stickers :P). - -Considering that a few contributors are investing a large amount of time in the project, we are thinking about ways to make the project sustainable. - -This could be achieved via donations, grants, and a few contributors have professional activities related to YunoHost. +YunoHost is maintained by volunteers working on their free time. The project regularly receives donations which pay for the servers' bills and stickers. The project received (or continues to receive) grants from organization like [NLnet](https://nlnet.nl/) or [CodeLutin](https://www.codelutin.com/) to fund specific developments +Donations to the project are increasing, and we are in the process of defining the way we redistribute this money to main contributors and therefore help make the project sustainable. Additionally, some contributors do have professional activities based (at least partially) on YunoHost. #### Can I donate to the project? -Yes, you can! YunoHost needs money to pay servers and domain names. We would also like contributors to be able to continue contributing rather than look for jobs elsewhere. +Yes, you can! YunoHost needs money to pay servers and domain names. We would also like contributors to be able to spend more time contributing rather than looking for jobs. You can donate using [our donation interface](https://donate.yunohost.org) If you can, you can also make in-kind contributions, like servers (some of our infrastructure relies on servers from a few associations). - #### How can I contribute to the project? There are [many ways to contribute](/contribute) :). @@ -74,44 +70,27 @@ Don't hesitate to come talk to us about your ideas! A common misconception for newcomers in free software projects is to think that they are "not skilled enough". In practice, nobody is "skilled" :). What really matter is: [liking what you do](https://www.youtube.com/watch?v=zIbR5TAz2xQ&t=113s), being friendly with other human beings, being patient and stubborn with machines, and having some free time. Other than that, just doing what you can is already awesome! -#### What's YunoHost's political model? +#### How is the YunoHost project organized? It is described in [this document](/project_organization) :). #### Will you port YunoHost to [insert favorite distro]? -Short answer: No. We don't have the energy for it and this is irrelevant. +If you care about distrowars, or think 'Debian is dirty', then YunoHost is not for you. -Long answer -
-

If you care about distrowars, or think 'Debian is dirty', then YunoHost is not for you.

+YunoHost is aimed at non-tech people who just want their server to work. Debian has its flaws, but it's (one of?) the most widely known and used distribution for servers. It's stable. Most self-hosted software are one way or another compatible with Debian. It's easily hackable by anybody who's been doing a bit of CLI on their personal Ubuntu/Mint computer. There is no killer feature in other distributions that makes it relevant for YunoHost to switch or port to it. -

YunoHost is aimed at non-tech people who just want their server to work. Debian has its flaws, but it's (one of?) the most widely known and used distribution for servers. It's stable. Most self-hosted software are one way or another compatible with Debian. It's easily hackable by anybody who's been doing a bit of CLI on their personal Ubuntu/Mint computer. There is no killer feature in other distributions that makes it relevant for YunoHost to switch or port to it.

- -

If this does not convince you, there are other projects running on other distributions or with different philosophies.

-
+If this does not convince you, there are other projects running on other distributions or with different philosophies. #### I checked how apps packaging work. Why are you reinventing [insert favorite package format]? -Short answer: We are not. +People have been tempted to compare YunoHost packages to traditional package managers (such as Debian's `.deb`), which hold a different purpose. Traditional package managers are meant to install low-level purpose of installing files, commands, programs and services on the system. It is often your duty to configure them properly, simply because there is no standard server setup. Typically, web apps requires a lot of configuration because they rely on a web server and a database (and the single sign-on). -Medium answer: Apps were packaged in .deb in the past. It was a nightmare. We're happy now ;). +YunoHost manages high-level abstractions (apps, domains, users...) and defines a standard setup (NGINX, Postfix, Metronome, SSOwat...) and, because of this, can handle the configuration for the user. -Long answer -
- -

YunoHost aims to make packaging easy. The idea from the beginning was to keep it as simple as « if you can install the app manually, then you can easily copy/paste steps into a basic install/remove package with no particular training ». This is not the case with Debian packages.

- -

Turns out, YunoHost apps packaging holds a subtly different purpose than traditional packaging like .deb. Debian packages fulfill the low-level purpose of installing files, commands, programs and services on the system. It is often your duty to configure them properly, simply because there is no standard server setup. Typically, web apps requires a lot of configuration because they rely on a web server and a database (and the single sign-on).

- -

YunoHost manipulates high-level abstractions (apps, domains, users...) and defines a standard setup (NGINX, Postfix, Metronome, SSOwat...) and, because of this, can handle the configuration for the user.

- -

If you still think it's possible to handle everything by fiddling with .deb packages, see previous answers.

-
- -#### When will *this feature* be implemented? Why *that app* has not been packaged yet? I cannot believe you do not do *that* yet! +#### When will [this feature] be implemented? Why isn't [that app] packaged yet? I cannot believe you do not do [this] yet! We do not give timelines. @@ -136,3 +115,12 @@ The project therefore allows the inclusion inside the official app catalog, ***o If you notice an app is missing such a tag/disclaimer, feel free to open a discussion or pull requet on [the app catalog](https://github.com/YunoHost/apps/). If you run YunoHost for your business, you are responsible for doing your due diligence by checking the licenses of the software you want to install on your server. + +### Why won't you include [feature X] ? + +YunoHost is primarily designed for not-so-tech-savvy users and aims to remain relatively simple in terms of UI/UX. At the same time, the project has limited time and energy available to be maintained and developed. Therefore we may lower the priority of features, or refuse entirely the inclusion of features, based on the criteria that they: +- would only be meaningful for advanced / power-users stuff which is out of the scope of the project ; +- would introduce too much UI/UX bloat ; +- would only cover unrealistic threat models ; +- would be there only to satisfy purists ; +- or overall would not be worth it in terms of development/maintenance time/energy for what it brings to the project. \ No newline at end of file diff --git a/pages/06.contribute/10.packaging_apps/10.manifest/docs.md b/pages/06.contribute/10.packaging_apps/10.manifest/docs.md index 62b620f8..4e0e226f 100644 --- a/pages/06.contribute/10.packaging_apps/10.manifest/docs.md +++ b/pages/06.contribute/10.packaging_apps/10.manifest/docs.md @@ -139,10 +139,15 @@ Every install question is not necessarily mandatory (e.g. a question to propose ## Resource system -The resource section corresponds to recurring app needs that are to be provisioned/deprovisioned by the core of YunoHost. They include for example: system user, apt dependencies, install dir, data dir, port, permissions, SQL database... Each resource is to be provisioned *before* running the install script, deprovisioned *after* the remove script, and automatically upgraded if needed before running the upgrade script (or provisionned if introduced in the new app version, or deprovisioned if removed w.r.t. the previous app version) +The resource section corresponds to recurring app needs that are to be provisioned/deprovisioned by the core of YunoHost. They include for example: downloading the app's sources, creating a system user, installing apt dependencies, creating the install dir, creating the data dir, finding an available internal port, configuring permissions, initializing an SQL database... Each resource is to be provisioned *before* running the install script, deprovisioned *after* the remove script, and automatically upgraded if needed before running the upgrade script (or provisionned if introduced in the new app version, or deprovisioned if removed w.r.t. the previous app version) ```toml [resources] +```toml + [resources.sources.main] + url = "https://some.domain/url/where/to/download/the/app/sources.tar.gz" + sha256 = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + [resources.system_user] [resources.install_dir] @@ -155,6 +160,7 @@ The resource section corresponds to recurring app needs that are to be provision ``` In this example: +- `sources.main`: the URL+checksum from which the app sources will be downloaded + validated - `system_user`: a system (unix) user will be created for this app, using the app id as username. - `install_dir`: an install dir will be initialized, named `/var/www/$app` by default. Additional `owner` and `group` property allow to change the owner/group and r/w/x permissions on the created folder. - `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` diff --git a/pages/06.contribute/10.packaging_apps/20.scripts/scripts.md b/pages/06.contribute/10.packaging_apps/20.scripts/scripts.md index f6e84b07..6901d3bc 100644 --- a/pages/06.contribute/10.packaging_apps/20.scripts/scripts.md +++ b/pages/06.contribute/10.packaging_apps/20.scripts/scripts.md @@ -130,21 +130,19 @@ location __PATH__/ { ## App sources -App scripts will often need to download the upsteam app sources to be deployed in the install dir, via `ynh_setup_source`. +App sources were historically defined in `conf/app.src` files containing the URL + checksum of assets to download. -The `ynh_setup_source` is coupled to another conf file, usually `conf/app.src` which describes where to download the sources, how to check integrity, and how to extract the source. +This is now integrated in `manifest.toml` using the `sources` resource, which pre-download the assets prior to entering the install or upgrade scripts. The sources can then be effectively deployed using `ynh_setup_source`. -For example, this is an `app.src` for wordpress: +For example, for YesWiki, the sources are defined in `manifest.toml` using: -```text -SOURCE_URL=https://downloads.wordpress.org/release/wordpress-6.1.1.zip # The url of the sources -SOURCE_SUM=088280b34aebc7331693e729d8e6b05eb8b9998c.... # The sha256 checksum -SOURCE_SUM_PRG=sha256sum -SOURCE_FORMAT=zip # The format is zip -SOURCE_IN_SUBDIR=true # This is wether or not the sources are directly in the install root -SOURCE_EXTRACT=true # (yes, we want to extract the zip) +```toml +[resources.sources.main] +url = "https://github.com/YesWiki/yeswiki/archive/refs/tags/v4.4.0.tar.gz" +sha256 = "5ceb12d225c20de2ba3cb4ce483348ed1a8ad5b1789d4f4f8f89dc4871524007" ``` +More infos on the `source` resource in [the resource system documentation](/packaging_apps_resources). ## Common operations (TODO/FIXME) diff --git a/pages/06.contribute/10.packaging_apps/packaging_apps_intro.fr.md b/pages/06.contribute/10.packaging_apps/packaging_apps_intro.fr.md index fde1f964..50d05075 100644 --- a/pages/06.contribute/10.packaging_apps/packaging_apps_intro.fr.md +++ b/pages/06.contribute/10.packaging_apps/packaging_apps_intro.fr.md @@ -69,6 +69,7 @@ Parmi les fichiers contenus dans un paquet, les plus importants sont les suivant - le **manifeste de l'application** `manifest.toml` (ou `.json` dans le passé) - Il peut être considéré comme la carte d'identité de l'application, contenant diverses métadonnées. - Il contient également les questions posées lors de l'installation de l'application. + - ainsi qu'un ensemble de "ressource" à initialiser, telles que les sources de l'app à télécharger ou les dépendances apt à installer - **scripts/** contient un ensemble de scripts bash correspondant aux actions exposées dans YunoHost - `_common.sh`: common variables or custom functions included in other scripts - `install`/`remove` : la procédure d'installation et de suppression @@ -76,7 +77,6 @@ Parmi les fichiers contenus dans un paquet, les plus importants sont les suivant - `backup`/`restore` : les procédures de sauvegarde/restauration - (`change_url`) : changer l'endroit où l'application est installée en termes de son url d'accès web - **conf/** contient un ensemble de modèles de configuration utilisés lors de l'installation de l'application. Voici quelques exemples de fichiers couramment trouvés : - - `app.src` : contient l'URL et la somme de contrôle pour télécharger les sources de l'application - `nginx.conf` : le modèle de configuration de NGINX (=serveur web) pour cette application - `systemd.service` : le modèle de configuration du service systemd pour cette application - `config.json/yaml/???` : le modèle de configuration de l'application @@ -109,7 +109,9 @@ Grosso modo, l'installation proprement dite se compose généralement des opéra A moins que vous ne souhaitiez vraiment partir de zéro ou de [`example_ynh`] (https://github.com/YunoHost/example_ynh), une pratique courante consiste à identifier une application similaire à celle que vous essayez d'empaqueter - typiquement parce qu'elle repose sur les mêmes technologies - à cloner le dépôt de code correspondant, et à adapter les différents fichiers. +TODO/FIXME : here we should list a bunch of well-knowh apps for classic technologies + - Applications PHP : - Applications NodeJS : - Applications Python : -- ??? \ No newline at end of file +- ??? diff --git a/pages/06.contribute/10.packaging_apps/packaging_apps_intro.md b/pages/06.contribute/10.packaging_apps/packaging_apps_intro.md index 97ab4591..59df3dc4 100644 --- a/pages/06.contribute/10.packaging_apps/packaging_apps_intro.md +++ b/pages/06.contribute/10.packaging_apps/packaging_apps_intro.md @@ -69,6 +69,7 @@ Among the file contained in a package, the most important ones are: - the **app manifest** `manifest.toml` (or `.json` in the past) - this can be seen as the ID card of the application, containing various metadatas. - it also contains the questions asked during the installation of the app. + - and a bunch of "resources" to initialize, such as sources to download or apt dependencies to install - **scripts/** contains a bunch of bash scripts corresponding to actions exposed in YunoHost - `_common.sh`: common variables or custom functions included in other scripts - `install`/`remove`: the install and remove procedure @@ -76,7 +77,6 @@ Among the file contained in a package, the most important ones are: - `backup`/`restore`: the backup/restore procedures - (`change_url`): changing where the app is installed in terms of web access url - **conf/** contains a bunch of configuration templates used when installing the app. Here are some example of commonly found files: - - `app.src`: contains the URL and checksum to downlowd the application sources - `nginx.conf`: the NGINX (=web server) configuration template for this app - `systemd.service`: the systemd service configuration template for this app - `config.json/yaml/???`: the app's configuration template @@ -109,6 +109,8 @@ Roughly speaking, the install itself generally consists of the following operati Unless you really want to start from scratch or from [`example_ynh`](https://github.com/YunoHost/example_ynh), one common practice is to identify an app similar to the one you're trying to package - typically because it relies on the same technologies - clone the corresponding code repository, and adapt the various files. +TODO/FIXME : here we should list a bunch of well-knowh apps for classic technologies + - PHP apps: - NodeJS apps: - Python apps: