diff --git a/.gitignore b/.gitignore
index 783a4aee..5d23856f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
-*~
-*.sw[op]
+/*
+!/pages
+!/images
+!/themes
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 18a27402..38a1a730 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,5 +2,3 @@ language: bash
script:
- bash tests/dead_links.sh
- - bash tests/unreferenced_pages.sh
- - bash tests/check_code_block_syntax.sh
diff --git a/README.md b/README.md
index ed5d3ad2..31d94298 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,26 @@
# YunoHost Documentation
* [Web Site](https://yunohost.org)
-* Based on [Simone](https://github.com/YunoHost/Simone)
+* Based on [Grav](https://getgrav.org/)
Please report [issues on YunoHost bugtracker](https://github.com/YunoHost/issues/issues).
-You can live test any changes by adding `/edit` to the URL on
-[yunohost.org](https://yunohost.org). For example, if you make changes to
-[apps.md](./apps.md), you can test them on [yunohost.org/#/apps/edit](https://yunohost.org/#/apps/edit).
+# Contributing
+
+You can refer to the page on [writing documentation](https://yunohost.org/write_documentation).
+
+## Regenerate the css
+
+We use scss to manage the css. If you want to change it, you must rebuild it.
+
+First install npm, then in the root folder of this repo, install sass: `npm install sass`
+
+Finally you can rebuild the css with (You can replace `expanded` by `compressed` if you want):
+
+```bash
+./node_modules/sass/sass.js themes/yunohost-docs/scss:themes/yunohost-docs/css --style expanded
+```
+
+Source:
+https://sass-lang.com/guide
+
diff --git a/XMPP.md b/XMPP.md
deleted file mode 100644
index 8355f87a..00000000
--- a/XMPP.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Chat, VoIP and social network with
-
-YunoHost comes installed by default with an instant messaging server Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (previously known as Jabber).
-
-This protocol is already used by millions of people around the world - it is an open protocol. All applications based on XMPP are compatible with each other: when using an XMPP client, you can interact with anybody who has an XMPP account.
-
-XMPP is an extensible protocol - this means users can configure "extensions" to chatrooms, to share messages and files, and to make voice and video calls using XMPP.
-
-## XMPP account
-
-To use an XMPP account you need a username, which takes the format: `user@domain.tld`, and a password.
-
-With YunoHost, an XMPP account is created for all YunoHost users automatically. The XMPP account credentials corresponds to the user's main email address and password.
-
-## Connecting to your YunoHost XMPP account
-
-You can connect to your YunoHost XMPP account in different ways.
-
-### Web clients
-
-- [Movim](https://movim.eu)
-- [ConverseJS](https://conversejs.org/)
-- [Libervia/Salut à Toi](https://salut-a-toi.org/)
-
-### Desktop clients
-
-- [Gajim](http://gajim.org/) (Linux,Windows)
-- [Dino](https://dino.im) (Linux)
-- [Thunderbird](https://www.thunderbird.net/fr/) (multiplatform)
-- [Beagle IM](https://beagle.im/) (Mac OS)
-- [Profanity](https://profanity-im.github.io/) (Linux)
-
-### Mobile clients
-
-- [Conversations](https://conversations.im/) (Android)
-- [Xabber](http://xabber.com) (Android)
-- [Movim under Android](https://movim.eu)
-- [Monal](https://monal.im/) (iOS)
-- [Siskin IM](https://siskin.im/) (iOS)
-- [Kaidan](https://www.kaidan.im/) (Ubuntu Touch / Plasma Mobile)
-
-Here is an exhaustive list of XMPP clients : https://xmpp.org/software/clients.html
-
-## Encrypt conversations with OMEMO
-
-XMPP chats can be made secure and private using [OMEMO] encryption (https://xmpp.org/extensions/xep-0384.html), for instance using Gajim:
-- Install `gajim` and the plugin `gajim-omemo`
-- Enable the plugin in `Tools > Plugins`
-- Enable it
-- Enable the encryption in the chat with somebody who also has OMEMO
-
-## Chatrooms
-
-To create a chatroom (multi-user chat) on your YunoHost server, use the identifier `chatroomname@muc.yourdomain.tld`.
-
-For this to work you need to [add the corresponding `muc.` DNS record](/dns_config) in the DNS configuration.
-
-## VoIP and videoconferences
-
-A practical tool to call an XMPP client, either with voice or voice+video, is to use the client [Jitsi](http://jitsi.org/).
diff --git a/admin.md b/admin.md
deleted file mode 100644
index 288471af..00000000
--- a/admin.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Administrator web interface
-
-Yunohost has an administrator web interface. The other way to administrate your Yunohost install is through the [command line](/commandline).
-
-### Access
-
-You can access your administrator web interface at this address: https://example.org/yunohost/admin (replace 'example.org' with your own domain name)
-
-
-YunoHost depends exclusively on the participation of people like you. -
- ---- - -In any case, please come chat with us on [the dev chatroom](/chat_rooms) :-)
- diff --git a/contribute_ar.md b/contribute_ar.md deleted file mode 100644 index 8ad74232..00000000 --- a/contribute_ar.md +++ /dev/null @@ -1,92 +0,0 @@ -#-إنّ مصير واي يونوهوست YunoHost يُقرّره أناس و أنتم مِن بين هؤلاء -
- ---- - -على أي حال تعالوا و انضموا إلى [غرفة المحادثة الخاصة بالمطوّرين](xmpp:dev@conference.yunohost.org?join) إن كنتم ترغبون في المساهمة :-)
- diff --git a/contribute_fr.md b/contribute_fr.md deleted file mode 100644 index dd785aaa..00000000 --- a/contribute_fr.md +++ /dev/null @@ -1,90 +0,0 @@ -# Contribuer - --YunoHost dépend entièrement de la participation de gens comme vous. -
- ---- - -Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)
- diff --git a/contributordoc.md b/contributordoc.md deleted file mode 100644 index 4570723d..00000000 --- a/contributordoc.md +++ /dev/null @@ -1,36 +0,0 @@ -# Contributor documentation - -* [General ways of contributing to YunoHost](/contribute) -* [Writing documentation](/write_documentation) -* [Chat rooms](/chat_rooms) -* Application packaging - * [Apps wishlist](/apps_wishlist) - * [General introduction to app packaging](/packaging_apps_start) - * [Technical introduction to app packaging](/packaging_apps) - * [How to use Git to package apps](/packaging_apps_git) - * [Setting up a dev environment with VirtualBox](/packaging_apps_virtualbox) - * [Manifest](packaging_apps_manifest) - * [Scripts](packaging_apps_scripts) - * [Arguments management](packaging_apps_arguments_management) - * [Nginx configuration](packaging_apps_nginx_conf) - * [Multi-instance](packaging_apps_multiinstance) - * [Helpers](packaging_apps_helpers) - * [Trap usage](/packaging_apps_trap) - * [Adding your app to the community list](https://github.com/YunoHost/Apps/#contributing) - * Quality tests - * [Package linter](https://github.com/YunoHost/package_linter) - * [Package check](https://github.com/YunoHost/package_check) - * [Applications levels](/packaging_apps_levels) - * [App Continuous Integration](https://ci-apps.yunohost.org) - * [App CI dashboard](https://dash.yunohost.org/appci/branch/stable) - * [App Continuous Integration for packagers](/packaging_apps_ci) - * [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines) -* [Contributing to the YunoHost core](/dev) - * [Setting up a dev environment with ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md) - * [Deb build chain](https://github.com/YunoHost/vinaigrette/blob/master/README.md) - * Image building - * [x86 ISO](https://github.com/YunoHost/cd_build) - * [Raspberry Pi images](https://github.com/YunoHost/rpi-image) - * [Other ARM board images](https://github.com/YunoHost/arm-images) -* [Using the YunoHost API outside of the webadmin](/admin_api) -* [A discussion about shell variable scope](shell_variables_scope) diff --git a/contributordoc_fr.md b/contributordoc_fr.md deleted file mode 100644 index 4c932803..00000000 --- a/contributordoc_fr.md +++ /dev/null @@ -1,37 +0,0 @@ -# Guide du contributeur - -* [Liste des façons de contribuer à YunoHost](/contribute) -* [Écrire de la documentation](/write_documentation) -* [Salons de discussion](/chat_rooms) -* Packaging d'application - * [Liste d'apps souhaitées par la communauté](/apps_wishlist) - * [Introduction générale au packaging d'apps](/packaging_apps_start) - * [Introduction technique au packaging d'apps](/packaging_apps) - * [Comment utiliser Git pour packager les applications](/packaging_apps_git) - * [Déployer un environnement de développement avec VirtualBox](/packaging_apps_virtualbox) - * [Manifest](/packaging_apps_manifest) - * [Scripts](/packaging_apps_scripts) - * [Gestion des arguments](/packaging_apps_arguments_management) - * [Configuration nginx](/packaging_apps_nginx_conf) - * [Multi-instance](/packaging_apps_multiinstance) - * [Fonctions utiles](/packaging_apps_helpers) - * [Utilisation de 'trap'](/packaging_apps_trap) - * [Ajouter son application à la liste community](https://github.com/YunoHost/Apps/#contributing) - * Tests de qualité - * [Package linter](https://github.com/YunoHost/package_linter) - * [Package check](https://github.com/YunoHost/package_check) - * [Niveaux des applications](/packaging_apps_levels) - * [Intégration continue des apps](https://ci-apps.yunohost.org) - * [Tableau de bord du CI des apps](https://dash.yunohost.org/appci/branch/stable) - * [Intégration continue pour packagers](/packaging_apps_ci) - * [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines) -* [Contribuer à la partie "core" de YunoHost](/dev) - * [Déployer un environnement de dev avec ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md) - * [Construction des paquets debian](https://github.com/YunoHost/vinaigrette/blob/master/README.md) - * [Feuilles de route du projet](https://github.com/YunoHost/issues/milestones?direction=asc&sort=title&state=open) - * Construction des images - * [x86 ISO](https://github.com/YunoHost/cd_build) - * [Images Raspberry Pi](https://github.com/YunoHost/rpi-image) - * [Autres images pour cartes ARM](https://github.com/YunoHost/arm-images) -* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api) -* [Une discussion sur la portée des variables en bash](shell_variables_scope) diff --git a/copy_image.md b/copy_image.md deleted file mode 100644 index 50d3e68b..00000000 --- a/copy_image.md +++ /dev/null @@ -1,47 +0,0 @@ -# Flashing an SD card - -Now that you download the YunoHost image, you have to copy its content to an SD -card. This step is also sometimes called 'flashing' the SD card. - -Preview of the Gparted window
diff --git a/copy_image_es.md b/copy_image_es.md deleted file mode 100644 index c979e3e2..00000000 --- a/copy_image_es.md +++ /dev/null @@ -1,39 +0,0 @@ -# Flashear una tarjeta SD - -Ahora que has descargado la imagen de Yunohost, tienes que copiar su contenido en una tarjeta SD. Esta etapa también puede llamarse 'flashear' la tarjeta SD. - -Vistazo de la interfaz de Gparted
diff --git a/copy_image_fr.md b/copy_image_fr.md deleted file mode 100644 index 3e5ff1f1..00000000 --- a/copy_image_fr.md +++ /dev/null @@ -1,52 +0,0 @@ -# Flasher une carte SD - -Maintenant que vous avez téléchargé l'image de YunoHost, il vous faut copier son -contenu sur une carte SD. Cette étape est aussi souvent appelé 'flasher' la -carte SD. - -Aperçu de l’interface de Gparted
diff --git a/dev_fr.md b/dev_fr.md deleted file mode 100644 index 2251fbfe..00000000 --- a/dev_fr.md +++ /dev/null @@ -1,164 +0,0 @@ -## Contribuer au cœur de YunoHost - -Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne -savez pas comment procéder ? Ce guide parcourt les étapes du développement et du -processus de contribution. - -Si vous cherchez quelque chose à implémenter ou un bug à réparer, le -bug tracker est [ici](https://github.com/yunohost/issues/issues) ! - -**Venez dire coucou sur le [salon de dev](/chat_rooms)** ! - -### Mettre en place un environnement de développement - -- **Utilisez [ynh-dev](https://github.com/YunoHost/ynh-dev)** (voir le README) - pour mettre en place un environnement de développement - en local sur une - machine virtuelle, ou bien sur un VPS. - Ceci installera une instance fonctionelle de YunoHost, en utilisant - directement les dépôts git à l'aide de liens symboliques. De cette façon, il - vous sera possible de modifier les fichiers, de tester les changements en - temps réel, et de commiter et push/pull directement depuis cet environnement. - -- **Implémentez et testez votre fonctionnalité**. Suivant ce sur quoi vous - voulez travailler : - - **Cœur Python/ligne de comande** : allez dans `/ynh-dev/yunohost/` - - **Interface d'administration web** : allez dans `/ynh-dev/yunohost-admin/` - - Vous pouvez aussi travailler sur les autres projets liés sur lesquels - s'appuie YunoHost (SSOwat, moulinette) de façon similaire. - -### Vue d'ensemble des 4 morceaux principaux de YunoHost - -##### Moulinette - -C'est un petit framework "fait maison". [Son rôle principal](https://moulinette.readthedocs.io/en/latest/actionsmap.html) -est de permettre de construire une API Web et une API en ligne de commande à partir d'un même code Python et d'un schéma YAML que nous appelons -[l'actionmap] (https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml). - -Il prend en charge d'autres mécanismes tels que l'authentification, l'internationalisation et des petites fonctions utilitaires techniques (par ex. lecture/écriture de fichiers json). - -Moulinette dispose de sa propre documentation [ici](https://moulinette.readthedocs.io/en/latest/). - -##### YunoHost - -C'est le coeur même de YunoHost. Il contient : -- [le code Python](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) qui gère les utilisateurs, domaines, applications, services et autres -- des [helpers bash](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) principalement utilisés par les packageurs d'applications dans les scripts de ces applications -- des [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) et [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) qui sont utilisés pour configurer les différents éléments de l'écosystème tels que nginx, postfix, .... -- des [chaînes internationalisées](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales) -- des [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests) - -##### SSOwat - -C'est le système de connexion unique (single sign-on) de YunoHost. Il contient principalement: -- [du code LUA](https://github.com/YunoHost/ssowat) interfacé directement avec nginx et qui gère tous les aspects "techniques" de l'authentification et de la gestion des accès aux ressources. -- le [portail web utilisateur](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) qui est l'interface finale visible par les utilisateurs de YunoHost - -SSOwat est configuré via `/etc/ssowat/conf.json` qui est généré par YunoHost. - -##### YunoHost-admin - -C'est une dépendance *optionnelle* de YunoHost et correspond à une interface pour l'API web créée par YunoHost et Moulinette (service `yunohost-api`). - -Il contient essentiellement : -- [des templates pour les vues](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views) -- les [contrôleurs JavaScript](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) correspondants, qui interagissent avec l'API YunoHost -- et ses [chaînes internationalisées](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales) - -### Travailler sur le cœur Python / ligne de commande - -- Allez dans `/ynh-dev/yunohost/`. - -- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost`. - -- Le fichier actionsmap (`data/actionsmap/yunohost.yml`) définit les différentes - catégories, actions et arguments de la ligne de commande YunoHost. Choisissez - comment vous voulez que les utilisateurs utilisent votre fonctionnalité, et - ajoutez/éditez les catégories, actions et arguments correspondants. Par - exemple, dans `yunohost domain add some.domain.tld`, la catégorie est - `domain`, l'action est `add` et `some.domain.tld` est un argument. - -- Moulinette va automatiquement faire le lien entre les commandes de - l'actionsmap et les fonctions Python (ainsi que leurs arguments) dans - `src/yunohost/`. Par exemple, `yunohost domain add some.domain.tld` - déclenchera un appel de `domain_add(domainName)` dans `domain.py`, avec l'argument - `domainName` qui vaudra `"some.domain.tld"`. - -##### Helpers / style de code - -- Pour gérer les exceptions, il existe un type `YunohostError()` - -- Pour aider avec l'internationalisation des messages, utilisez `m18n.n('some-message-id')` - et mettez le message correspondant dans `locales/en.json`. Vous pouvez aussi - utiliser des arguments pour construire les messages, avec `{{some-argument:s}}`. - Ne modifiez pas de fichiers de locales autres que en.json, la traduction sera - faite avec [Weblate](https://translate.yunohost.org/) ! - -- YunoHost essaye de suivre le style de code [PEP8](http://pep8.org/). Des - outils existent pour vérifier automatiquement la conformité du code. - -- Mettre un `_` devant les noms des fonctions "privées". - -### Travailler sur l'interface d'administration web - -- Allez dans `/ynh-dev/yunohost-admin/src/`. - -- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost-admin`. Ceci lance gulp, de sorte - qu'à chaque fois que vous modifiez les sources, il recompilera le code - (JS) et vous pourrez voir les changements dans le navigateur web (Ctrl+F5). - Pour stopper la commande, faites simplement Ctrl+C. - -- L'interface web utilise une API pour communiquer avec YunoHost. Les - commandes/requêtes de l'API sont également définies dans l'actionsmap. Par - exemple, accéder à la page ```https://domain.tld/yunohost/api/users``` - correspond à une requête `GET /users` vers l'API YunoHost. Cette requête - est mappée sur `user_list()`. Accéder à cette URL devrait afficher le json - retourné par cette fonction. Les requêtes 'GET' sont typiquement destinées à - demander de l'information au serveur, tandis que les requêtes 'POST' sont - destinées à demander au serveur de modifier/changer des informations ou de - réaliser des actions. - -- `js/yunohost/controllers` contient les parties JavaScript, et définit quelles - requêtes faire à l'API pendant le chargement d'une page donnée de l'interface, - et comment traiter les données récupérées pour générer la page, en utilisant - des templates. - -- `views` contient les templates des pages de l'interface. Dans le template, - les données venant du JavaScript peuvent être utilisées avec la syntaxe - `{{some-variable}}`, qui sera remplacée pendant la construction de la page. - Il est également possible d'avoir des conditions avec la syntaxe - d'[handlebars.js](http://handlebarsjs.com) : ```{{#if - some-variable}}du HTML conditionnel ici !
{{/if}}``` - -- Pour l'internationalisation des messages, utilisez `y18n.t('some-string-code')` - dans le JavaScript, ou `{{t 'some-string-code'}}` dans le template HTML, et - mettez votre message dans `locales/en.json`. Ne modifiez pas de fichiers de - locales autres que en.json, la traduction sera faite avec - [Weblate](https://translate.yunohost.org/) ! - -##### N'oubliez pas - -- À chaque modification de l'actionsmap, il faut redémarrer l'API yunohost : - ```service yunohost-api restart``` - (Il faudra retaper le mot de passe administrateur dans l'interface web) - -- Il faudra peut-être régulièrement forcer le rafraîchissement du cache - navigateur pour propager correctement le JavaScript et/ou HTML (à chaque fois - que l'on change quelque chose dans `js` ou `views`, donc). - - -### Votre fonctionnalité est prête et vous souhaitez qu'elle soit intégrée dans YunoHost - -- Forkez le dépòt correspondant sur Github, et commitez vos changements dans - une nouvelle branche, Il est recommandé de nommer la branche avec la - convention suivante : - - Pour une nouvelle fonctionnalité ou amélioration : `enh-ISSUENUMBER-description-fonctionnalité` - - Pour une correction de bug : `fix-REDMINETICKET-description-correctif` - - `ISSUENUMBER` est optionnel et correspond au numéro du ticket sur le bug tracker - -- Une fois prêt, ouvrez une Pull Request (PR) sur Github. De préférence, inclure - `[fix]` ou `[enh]` au début du titre de la PR. - -- Après relecture, test et validation par les autres contributeurs, votre - branche sera mergée dans `unstable` ! - - diff --git a/diagnostic.md b/diagnostic.md deleted file mode 100644 index df76baee..00000000 --- a/diagnostic.md +++ /dev/null @@ -1,53 +0,0 @@ -# Diagnose YunoHost functioning - -If you have successfully [installed](/install) YunoHost and passed through the [post-installation](/postinstall), you probably have a **working server**. - -### 1. Test it - -In a web browser, access to your server via the domain name you just entered at the post-installation step. - -For example: `http://mydomain.com` - - --You can also redirect ports manually to your server's local IP address on the router's configuration interface. -
--Vous pouvez également rediriger les ports manuellement vers l’adresse IP locale de votre serveur grâce à l’interface de configuration de votre box/routeur. -
--YunoHost's documentation has 2 different sections: -
- -Including installation, server management and application management
-Which contains everything you have to know about us and the way we work
--دليل واي يونوهوست YunoHost يرتكز أساسًا على ثلاثة محاور : -
- -يتطرق إلى طريقة التنصيب و إدارة السيرفر و التطبيقات
-يحتوي على كافة المعلومات التي تخصنا و أسلوب عملنا و مساهمتنا
--Die YunoHost Dokumentation ist in 2 Bereiche aufgeteilt: -
- -Befasst sich mit den Installationsschritten und der Verwaltung von Server und Apps.
-Alles, was du über uns und unsere Art zu arbeiten wissen musst.
--La documentation de YunoHost s’articule autour de deux sections : -
- -Incluant l’installation, la gestion du serveur et des applications
-Qui contient tout ce que vous devez savoir à propos de nous et de notre manière de travailler
--La documentazione di YunoHost ha 2 differenti sezioni: -
- -Include l'installazione, la gestione del server e delle applicazioni
-Contiene tutto quello che devi sapere su di noi e su come lavoriamo
-Demo server
-Server demo
-
+
+
-
-
+
+
Es hat sich herausgestellt, dass das Packen für YunoHost einen leicht anderen Zweck erfüllt als das Erstellen klassischer Pakete wie .deb. Debian Pakete haben nur den Anspruch Dateien, Befehle, Programme und Dienste auf dem System zu installieren. Es bleibt oft an Ihnen diese richtig zu konfigurieren, weil es einfach keinen standardisierte Server-Konfiguration gibt. Typischerweise erfordern Web-Apps einen sehr hohen Konfigurationsaufwand, weil sie auf dem Webserver und einer Datenbank (und dem single sign-on) aufbauen.
-YunoHost richtet Konzepte auf höchster Ebene ein (Apps, Domain-Namen, Benutzer, ...) und definiert eine standardmäßige Einrichtung (Nginx, Postfix, Metronome, SSOwat, ...) und kann deshalb die Konfiguration für den Anwender übernehmen.
+YunoHost richtet Konzepte auf höchster Ebene ein (Apps, Domain-Namen, Benutzer...) und definiert eine standardmäßige Einrichtung (NGINX, Postfix, Metronome, SSOwat...) und kann deshalb die Konfiguration für den Anwender übernehmen.
Wer trotzdem glaubt, man könne deb Pakete dazu bringen, all dies zu leisten, möge sich die vorherige Antwort anschauen.
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.
+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.
diff --git a/faq.md b/pages/03.community/04.faq/faq.md similarity index 66% rename from faq.md rename to pages/03.community/04.faq/faq.md index 48517168..49bf873c 100644 --- a/faq.md +++ b/pages/03.community/04.faq/faq.md @@ -1,5 +1,11 @@ -# Frequently Asked Questions - +--- +title: Frequently Asked Questions +template: docs +taxonomy: + category: docs +routes: + default: '/faq' +--- #### Under which license is YunoHost distributed? @@ -12,38 +18,24 @@ Applications and applications packages have their own licenses. #### What's YunoHost goal? -We believe that decentralizing the Internet, and empowering people to take control and -responsibility back over their own data and services, is a crucial issue to guarantee -a free and democratic society. +We believe that decentralizing the Internet, and empowering people to take control and responsibility back over their own data and services, is a crucial issue to guarantee a free and democratic society. The YunoHost project aims to democratize self-hosting. -It provides a software that aims to make it easy for people to run and -administrate their own server, with minimal knowledge and required time. +It provides a software that aims to make it easy for people to run and administrate their own server, with minimal knowledge and required time. #### 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 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. -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. +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. -More info on [this page](whatsyunohost) ! +More info on [this page](/whatsyunohost)! #### Can I host my own personal website with YunoHost? -Yes! Have a look at the [Custom Web app](https://github.com/YunoHost-Apps/my_webapp_ynh). -It provides an "empty shell" : after installing it, just upload your files -(via SSH/SCP or SFTP) to the right location. You can have PHP and a SQL database -if you need. - +Yes! Have a look at the [Custom Web app](https://github.com/YunoHost-Apps/my_webapp_ynh). It provides an "empty shell" : after installing it, just upload your files (via SSH/SCP or SFTP) to the right location. You can have PHP and a SQL database if you need. #### Can I host many independent websites with different domain names? @@ -57,45 +49,34 @@ 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). +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. +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. +This could be achieved via donations, grants, and a few contributors have professional activities related to 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 continue contributing rather than look for jobs elsewhere. 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). +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) :). +There are [many ways to contribute](/contribute) :). 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! +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? -It is described in [this document](project_organization) :). +It is described in [this document](/project_organization) :). #### Will you port YunoHost to [insert favorite distro]? @@ -112,7 +93,7 @@ Short answer: No. We don't have the energy for it and this is irrelevant. -#### I checked how apps packaging work. Why are you reinventing [insert favorite package format] ? +#### I checked how apps packaging work. Why are you reinventing [insert favorite package format]? Short answer: We are not. @@ -125,7 +106,7 @@ Medium answer: Apps were packaged in .deb in the past. It was a nightmare. We'reTurns 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.
+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.
diff --git a/orga/yunohost_project_organization_fr.md b/pages/03.community/05.project_organization/yunohost_project_organization.fr.md similarity index 92% rename from orga/yunohost_project_organization_fr.md rename to pages/03.community/05.project_organization/yunohost_project_organization.fr.md index d9622c97..c867617c 100644 --- a/orga/yunohost_project_organization_fr.md +++ b/pages/03.community/05.project_organization/yunohost_project_organization.fr.md @@ -1,6 +1,18 @@ -# Organisation du projet YunoHost +--- +title: Organisation du projet +template: docs +taxonomy: + category: docs +routes: + default: '/yunohost_project_organization' + aliases: + - '/project_organization' +--- + +! This page is outdated and should be reworked ## Objectif du document + Ce document a pour objectif de permettre aux contributeurs de se sentir légitimes d’effectuer une contribution dans le projet YunoHost avec un avis collectif. Il vise également à renforcer le projet en le structurant autour de groupes de travail autonomes pouvant résister au départ ou à l'absence de certains contributeurs. Le projet étant communautaire, les décisions prises hâtivement et discrètement par un groupe restreint de contributeurs peuvent entraîner des frustrations postérieures. Pour pallier ce problème, la solution proposée ici est de faire en sorte que les décisions soient prises collectivement, qu’elles soient suffisamment réfléchies, et qu'elles soient documentées ou rendues publiques. @@ -15,7 +27,7 @@ Le but de YunoHost est de rendre accessibles au plus grand nombre l’installati #### Un logiciel libre et communautaire -YunoHost est un logiciel sous licence libre, entièrement communautaire, et reposant sur des applications elles-mêmes communautaires et souvent libres (roundcube, baikal, etc...). +YunoHost est un logiciel sous licence libre, entièrement communautaire, et reposant sur des applications elles-mêmes communautaires et souvent libres (Roundcube, Baïkal, etc.). #### Que chacun peut s'approprier @@ -51,7 +63,7 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - ##### Groupe Infra/Adminsys - Infrastructure - - Site web (wiki, forum, salon de discussion, redmine, mumble) + - Site web (wiki, forum, salon de discussion, Redmine, Mumble) - Démo - Services - [ip.yunohost.org](https://ip.yunohost.org/) et ip6.yunohost.org @@ -90,7 +102,7 @@ Le Conseil est indépendant des groupes et réunit les contributeurs souhaitant Le choix d'un outil de communication est laissé au Conseil, ses décisions doivent néanmoins être consultables par l'ensemble de la communauté de contributeurs. Pour participer aux votes du Conseil, il faut avoir contribué au projet et avoir obtenu un droit de vote (ou d'entrée) au sein du Conseil. Ce droit est délivré par le Conseil (éventuellement sur demande). Le Conseil est libre à tout moment de modifier le processus de décision. -Être membre du Conseil n'implique pas forcément d'avoir l'ensemble des accès (infrastructure, dépôt etc...). +Être membre du Conseil n'implique pas forcément d'avoir l'ensemble des accès (infrastructure, dépôt etc.). ### Processus de validation des pull requests @@ -100,9 +112,9 @@ Si un consensus ne peut être trouvé au sein d'un groupe en suivant le processu #### 1. Proposition -N'importe quel contributeur peut proposer une pull request (abrégée PR dans la suite) dans les divers dépôts liés au projet YunoHost (core, apps, infra, ...). +N'importe quel contributeur peut proposer une pull request (abrégée PR dans la suite) dans les divers dépôts liés au projet YunoHost (core, apps, infra...). -L'auteur est vivement encouragé à décrire sa proposition en donnant le maximum des informations +L'auteur est vivement encouragé à décrire sa proposition en donnant le maximum des informations pertinentes. Le groupe peut, à cette fin, proposer un modèle des informations à inclure, comme par exemple : - status actuel de la PR (ex. : non terminé, en attente de revues, choix techniques à faire...) @@ -112,17 +124,17 @@ inclure, comme par exemple : L'auteur est vivement encouragé à respecter les bonnes pratiques suivantes : - une PR doit concerner exclusivement un sujet précis. Par exemple, elle ne doit pas à la fois résoudre un bug et ajouter une fonctionnalité (à moins que l'un implique l'autre) ; -- avant de débuter l'implémentation d'une fonctionnalité qui fait intervenir des choix de conception (nom et format de commande ou d'option, nouvelle API, interface utilisateur, ...), discuter en amont de manière informelle avec le groupe pour s'assurer que l'implémentation imaginée convienne au plus grand nombre et reste dans l'esprit du projet ; +- avant de débuter l'implémentation d'une fonctionnalité qui fait intervenir des choix de conception (nom et format de commande ou d'option, nouvelle API, interface utilisateur...), discuter en amont de manière informelle avec le groupe pour s'assurer que l'implémentation imaginée convienne au plus grand nombre et reste dans l'esprit du projet ; - nommer sa PR avec un titre explicite, et la branche associée avec un nom explicite ; -- donner les références vers d'autres éléments liés à la PR (rapport de bug sur le bugtracker, message sur le forum, ...) +- donner les références vers d'autres éléments liés à la PR (rapport de bug sur le bugtracker, message sur le forum...) Une PR peut être créée même si son auteur juge qu'elle n'est pas encore terminée. Dans ce cas, il doit déclarer explicitement dans le fil de discussion de la PR lorsqu'il juge la PR prête. Cela n'empêche pas les autres contributeurs d'émettre des avis sur la PR pendant ce temps. Il appartient aussi à l'auteur de la PR de juger de son importance. (Ce jugement pourra cependant être contesté par les autres membres du groupe concerné par la PR.) Les niveaux d'importance utilisés sont les suivants : - **micro** : concerne uniquement un détail de forme et/ou qui ne nécessite pas d'être débattue et testée. Elle doit être facilement réversible. -- **mineure** : impacte de manière légère le projet (e.g. refactoring d'une petite partie de code, réparation d'un bug, ...) -- **moyenne** : impacte de manière significative l'architecture d'une partie du code (e.g. refactoring de tout un aspect ou de tout un fichier, ajout d'une fonctionnalité importante, sortie d'une version testing, ...) -- **majeure** : impacte lourdement l'ensemble du projet (e.g. migration d'une dépendance critique, changement de version de Debian, sortie d'une version stable, ...) +- **mineure** : impacte de manière légère le projet (e.g. refactoring d'une petite partie de code, réparation d'un bug...) +- **moyenne** : impacte de manière significative l'architecture d'une partie du code (e.g. refactoring de tout un aspect ou de tout un fichier, ajout d'une fonctionnalité importante, sortie d'une version testing...) +- **majeure** : impacte lourdement l'ensemble du projet (e.g. migration d'une dépendance critique, changement de version de Debian, sortie d'une version stable...) #### 2. Revue et validation collective @@ -131,7 +143,7 @@ Il appartient aussi à l'auteur de la PR de juger de son importance. (Ce jugemen Une fois la PR déclarée comme terminée, les contributeurs sont invités à donner leurs avis, relire et tester les changements proposés pour les valider. Lorsque des bugs ou des implémentations mauvaises ou incomplètes sont trouvées, les relecteurs rapportent cordialement le problème à l'auteur de la PR sur le fil de discussion. Si le problème trouvé est simple à corriger (e.g. typo ou détail de forme), le relecteur est encouragé à amender la PR pour corriger le problème lui-même. Sinon, l'auteur fait de son mieux pour corriger les problèmes soulevés. -Les relecteurs rapportent également le degré de relecture et de tests effectués (c.f. liste ci-dessous). Selon l'importance de la PR (mineure, moyenne ou majeure), différents quotas de tests et approbations sont à remplir pour que celle-ci soit validée. Les relecteurs peuvent valider une fois chaque type de relecture/test nécessaire (par exemple, un relecteur peut donner un point d'accord sur le principe, un autre point de relecture en diagonale, et un autre point de test dans des cas simples.). L'auteur de la PR ne compte pas dans ces quotas de validation. La proposition doit aussi passer les tests automatiques disponibles dans le groupe (CI, tests unitaires/fonctionnels, linter, ...). +Les relecteurs rapportent également le degré de relecture et de tests effectués (c.f. liste ci-dessous). Selon l'importance de la PR (mineure, moyenne ou majeure), différents quotas de tests et approbations sont à remplir pour que celle-ci soit validée. Les relecteurs peuvent valider une fois chaque type de relecture/test nécessaire (par exemple, un relecteur peut donner un point d'accord sur le principe, un autre point de relecture en diagonale, et un autre point de test dans des cas simples.). L'auteur de la PR ne compte pas dans ces quotas de validation. La proposition doit aussi passer les tests automatiques disponibles dans le groupe (CI, tests unitaires/fonctionnels, linter...). | | **Mineure** | **Moyenne** | **Majeure** | |-----------------------------------|-------------|--------------|-------------| @@ -148,7 +160,7 @@ Si l'auteur ne fait pas parti du groupe concerné par la PR, tous ces quotas son Une fois les quotas de relecture remplis, et si aucun refus n'a été prononcé et qu'aucune demande de changement n'est en attente, n'importe quel membre du groupe peut alors déclarer et marquer la PR comme "prête à être mergée". -Pendant une durée de 3 jours suivant cette déclaration, les membres du groupe peuvent encore relire, demander des changements ou émettre un refus vis-à-vis de la PR. Dans ce cas, le merge est interrompu et le processus retourne à la partie 2). Pour les PRs moyennes et majeures, la durée est augmentée jusqu'à ce qu'il se soit écoulé au moins une semaine par rapport au moment où la PR a été déclarée comme prête par son auteur. +Pendant une durée de 3 jours suivant cette déclaration, les membres du groupe peuvent encore relire, demander des changements ou émettre un refus vis-à-vis de la PR. Dans ce cas, le merge est interrompu et le processus retourne à la partie 2. Pour les PRs moyennes et majeures, la durée est augmentée jusqu'à ce qu'il se soit écoulé au moins une semaine par rapport au moment où la PR a été déclarée comme prête par son auteur. À l'issue de cette durée, n'importe quel membre du groupe peut merger la PR. Lorsque celle-ci comporte plusieurs commits, il est recommandé d'utiliser la fonction "squash and merge" pour garder l'historique de commit propre. @@ -170,7 +182,7 @@ Une PR peut être développée par plusieurs personnes. Chacun est invité à y Si ces commits sont conséquents, dans ce cas on peut prendre **partiellement** en compte l'avis des auteurs dans les quotas de relectures et de tests. -Exemple: si une PR est écrite par A et B (50/50), A et B pourront relire le code de l'autre. Dans ce cas, on pourra par exemple compter une relecture pour ces 2 relectures partielles. +Exemple : si une PR est écrite par A et B (50/50), A et B pourront relire le code de l'autre. Dans ce cas, on pourra par exemple compter une relecture pour ces 2 relectures partielles. ##### Validation "allégé" en cas de manque de relecteurs @@ -255,14 +267,14 @@ Cette partie liste les kits de droits d’administration pour les différents gr ## Décisions à venir pour les groupes ### Conseil -- Faut-il élire les membres du Conseil plutôt que de les coopter ? Risque de se transformer en "campagne politique"! +- Faut-il élire les membres du Conseil plutôt que de les coopter ? Risque de se transformer en "campagne politique" ! - Faut-il limiter l'ouverture des groupes d'intérêts par cooptation comme pour le Conseil ? - Proposition de changer Conseil en Collégiale -- Migrer le serveur d’infrastructure du projet sous YunoHost. (avec apps déjà packagées pad, gogs, mumble?) +- Migrer le serveur d’infrastructure du projet sous YunoHost. (avec apps déjà packagées pad, Gogs, Mumble?) - Nouveau système pour la documentation - Amélioration de la documentation - Migration du serveur XMPP -- Hébergement de notre forge git +- Hébergement de notre forge Git - Revoir système de build : stable <— testing <— branches - Gel de nohost.me et question de l'abandon des services @@ -271,7 +283,7 @@ Cette partie liste les kits de droits d’administration pour les différents gr - Chaque ticket fait l'objet d'une branche et d'un ticket, tu fais une pull/merge request, la communauté vérifie que ça fonctionne, une décision est prise d'intégrer. ### Groupe Apps - - Pour les apps communautaires, les issues sont bien sur Github, les discussions sur le forum + - Pour les apps communautaires, les issues sont bien sur GitHub, les discussions sur le forum ### Groupe Communication - Rapport de bug à partir du forum @@ -294,7 +306,6 @@ Cette partie liste les kits de droits d’administration pour les différents gr - Rencontres à des évènements. - Réunions hebdomadaires Mumble. - [Forum](https://forum.yunohost.org). -- Listes de diffusion : [contrib](https://list.yunohost.org/cgi-bin/mailman/listinfo/contrib) et [apps](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) - [Bugtracker Redmine](https://dev.yunohost.org). -- Forge git pour la review de code : [YunoHost](https://github.com/YunoHost) [YunoHost-Apps](https://github.com/YunoHost-Apps). +- Forge Git pour la review de code : [YunoHost](https://github.com/YunoHost) [YunoHost-Apps](https://github.com/YunoHost-Apps). - [Salons de discussions XMPP](https://yunohost.org/#/chat_rooms_fr) diff --git a/orga/yunohost_project_organization.md b/pages/03.community/05.project_organization/yunohost_project_organization.md similarity index 98% rename from orga/yunohost_project_organization.md rename to pages/03.community/05.project_organization/yunohost_project_organization.md index 4fdfe208..89b046e7 100644 --- a/orga/yunohost_project_organization.md +++ b/pages/03.community/05.project_organization/yunohost_project_organization.md @@ -1,4 +1,15 @@ -# YunoHost project organisation +--- +title: Project organisation +template: docs +taxonomy: + category: docs +routes: + default: '/yunohost_project_organization' + aliases: + - '/project_organization' +--- + +! This page is outdated and should be reworked ## Document objective @@ -17,7 +28,7 @@ The goal of YunoHost is to make accessible to the largest number of people, the #### A free and community-based software -YunoHost is a software under free licence, fully community-based and based on applications which are themselves community-based and often free (roundcube, baikal, etc.) +YunoHost is a software under free licence, fully community-based and based on applications which are themselves community-based and often free (Roundcube, baïkal, etc.) #### That everyone can appropriate @@ -52,7 +63,7 @@ Groups are structured as a result of the fact that YunoHost counts many sub-proj - ##### Infra/Sysadmin Group - Infrastructure - - Website (wiki, forum, chat room, redmine, mumble) + - Website (wiki, forum, chat room, redmine, Mumble) - Demo - Services - [ip.yunohost.org](https://ip.yunohost.org/) and ip6.yunohost.org @@ -62,8 +73,7 @@ Groups are structured as a result of the fact that YunoHost counts many sub-proj - [yunopaste](http://paste.yunohost.org/) - ##### Apps Group - - Official apps - - Community-based apps + - apps.json list - App development tools (package_checker, package linter) - ##### Communication Group @@ -319,7 +329,6 @@ This part list administration rights for differents groups of YunoHost project: - Get-togethers at events - Weekly Mumble meetings - [Forum](https://forum.yunohost.org). -- Mailing lists: [contrib](https://list.yunohost.org/cgi-bin/mailman/listinfo/contrib) and [apps](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) - [Bugtracker Redmine](https://dev.yunohost.org). - Git Forge for code reviews: [YunoHost](https://github.com/YunoHost) [YunoHost-Apps](https://github.com/YunoHost-Apps). - [XMPP chat rooms](https://yunohost.org/#/chat_rooms) diff --git a/pages/03.community/06.project_sponsors/sponsors_partners.fr.md b/pages/03.community/06.project_sponsors/sponsors_partners.fr.md new file mode 100644 index 00000000..ec7d13ad --- /dev/null +++ b/pages/03.community/06.project_sponsors/sponsors_partners.fr.md @@ -0,0 +1,22 @@ +--- +title: Mécénes et partenaires +template: docs +taxonomy: + category: docs +routes: + default: '/sponsors_partners' +--- + +Afin d'avancer et de faire fonctionner le projet, en plus du travail des bénévoles et des dons, YunoHost bénéficie du soutien de mécènes et de partenaires. + +Une liste des mécènes de YunoHost, fournissant l'infrastructure et des services aux projets : +- [GITOYEN](https://gitoyen.net) : association regroupant plusieurs entreprises et associations intervenant comme fournisseur d’infrastructure d’hébergement et d’accès à Internet. +- [GLOBENET](http://www.globenet.org) : association militante, au service de la liberté d’expression, proposant des services Internet. +- [LDN-NET](https://ldn-fai.net/) : association pour la défense d’un Internet libre, neutre et décentralisé dont le moyen d’action principale est d’être un fournisseur d’accès Internet (FAI) assocatif et local. +- [NBS System](https://www.nbs-system.com/): société spécialisée dans l’hébergement, la sécurisation des Clouds, l’infogérance (Systèmes d’information, Applications SaaS, Plateformes web) et les services managés. +- [NLNET](https://nlnet.nl/) : La Fondation NLnet soutient les organisations et les personnes qui contribuent à une société de l'information ouverte. +- [TETANEUTRAL-NET](https://tetaneutral.net/) : fournisseur d'accès à Internet associatif opérant actuellement un réseau radio sur Toulouse et ses environs et un hébergeur. + +Une liste des partenaires de YunoHost : +- [FFDN](https://www.ffdn.org/) : La fédération FDN regroupe des Fournisseurs d'Accès à Internet associatifs se reconnaissant dans des valeurs communes : bénévolat, solidarité, fonctionnement démocratique et à but non lucratif ; défense et promotion de la neutralité du Net. +- [Framasoft](https://framasoft.org/) : association d’éducation populaire, un groupe d’ami·es convaincu·es qu’un monde numérique émancipateur est possible, persuadé·es qu’il adviendra grâce à des actions concrètes sur le terrain et en ligne avec vous et pour vous ! diff --git a/pages/03.community/06.project_sponsors/sponsors_partners.md b/pages/03.community/06.project_sponsors/sponsors_partners.md new file mode 100644 index 00000000..7cb0e06e --- /dev/null +++ b/pages/03.community/06.project_sponsors/sponsors_partners.md @@ -0,0 +1,22 @@ +--- +title: Sponsors and partners +template: docs +taxonomy: + category: docs +routes: + default: '/sponsors_partners' +--- + +In order to advance and make the project works, in addition to the work of volunteers and donations, YunoHost benefits from the support of sponsors and partners. + +Here is a list of YunoHost sponsors, providing infrastructure and services to the project: +- [GITOYEN](https://gitoyen.net): association bringing together several companies and associations acting as a provider of hosting infrastructure and Internet access. +- [GLOBENET](http://www.globenet.org): activist association, at the service of freedom of expression, offering internet services. +- [LDN-NET](https://ldn-fai.net/) : association for the defense of a free, neutral and decentralized Internet whose main means of action is to be an Internet access provider associative and local. +- [NBS System](https://www.nbs-system.com/): company specialized in hosting, securing Clouds, outsourcing (Information Systems, SaaS Applications, Web Platforms) and managed services. +- [NLNET](https://nlnet.nl/): The NLnet Foundation supports organizations and people that contribute to an open information society. +- [TETANEUTRAL-NET](https://tetaneutral.net/): associative Internet access provider currently operating a radio network in Toulouse and its surroundings and a hoster. + +Here is a list of YunoHost partners: +- [FFDN](https://www.ffdn.org/): The FDN federation gathers associative Internet Access Providers who recognize themselves in common values: volunteering, solidarity, democratic functioning and non-profit; defense and promotion of net neutrality. +- [Framasoft](https://framasoft.org/) : popular education association, a group of friends convinced that an emancipatory digital world is possible, convinced that it will happen thanks to concrete actions on the ground and online with you and for you! diff --git a/pages/03.community/07.project_budget/project_budget.fr.md b/pages/03.community/07.project_budget/project_budget.fr.md new file mode 100644 index 00000000..b2b5a3c6 --- /dev/null +++ b/pages/03.community/07.project_budget/project_budget.fr.md @@ -0,0 +1,42 @@ +--- +title: Budget du projet +template: docs +taxonomy: + category: docs +routes: + default: '/project_budget' +--- + +# Budget prévisionnel pour 2019/2020 + +## Revenus attendus + +* Dons via Liberapay : 3000€ +* Subvention de NLNet : 20K€ + +## Dépenses prévues + +* Developpement : 20K€ +* Location Serveur : ~500 € + * VPS Scaleway: 20.33*12: 243.96€/year + * VPS Digital O. (forum): 172.80€/year +* Noms de domaine : ~150 € + * nohost.me : 11.99 €HT/ans + * ynh.fr : 6.99 €HT/ans (doit être confirmé avec frju ?) + * noho.st : ~35 €TTC/ans + * yunohost.org : 13.99 €HT/ans + * yunohost.com : 9.99 €HT/ans + * labriqueinter.net : 12.49 €Ht/ans + * internetcu.be : 17.99 €HT/ans +* Communication : ~400 € + * Stickers : 100€ + * Tracts : 100€ + * T-shirt : 200€ +* Déplacements (ex. : aller aux conférences) : ~700 € + * AG FFDN 2020 : 225€ (en tout) + * Event colibris : 150€ + * FOSDEM ou autre conf : 300€ +* Compte bancaire fees : 7×12 € soit ~100 € +* Brique Camp : 500€ + +**Balance 2020-2021** : +650 € diff --git a/pages/03.community/07.project_budget/project_budget.md b/pages/03.community/07.project_budget/project_budget.md new file mode 100644 index 00000000..19f4e059 --- /dev/null +++ b/pages/03.community/07.project_budget/project_budget.md @@ -0,0 +1,39 @@ +--- +title: Project budget +template: docs +taxonomy: + category: docs +routes: + default: '/project_budget' +--- + +# Estimated budget for 2020/2021 + +## Expected revenues + +* Donations: 3000€/year +* Grant from NLNet: 20K€ + +## Expected expenses + +* Development: 20K€ +* Server renting: 500€ + * VPS Scaleway: 20.33*12: 243.96€/year + * VPS Digital O. (forum): 172.80€/year +* Domain names: ~150€ + * nohost.me: 11.99€HT/year + * ynh.fr: 6.99€HT/year (to be confirmed with frju?) + * noho.st: ~35€ TTC/year + * YunoHost.org: 13.99€HT/year + * YunoHost.com: 9.99€HT/year + * labriqueinter.net: 12.49€HT/year + * internetcu.be: 17.99€HT/year +* Communication: ~400€ +* Travel (e.g. to go to conferences): ~700€ + * AG FFDN 2020: 225€ (en tout) + * Event colibris: 150€ + * FOSDEM ou autre conf: 300€ +* Bank account fees: 7x12€ => ~100€ +* Brique Camp: 500€ + +**Balance 2020-2021**: +650€ diff --git a/communication.md b/pages/03.community/08.project_press/communication.md similarity index 88% rename from communication.md rename to pages/03.community/08.project_press/communication.md index 168ac856..93e0ce5e 100644 --- a/communication.md +++ b/pages/03.community/08.project_press/communication.md @@ -1,4 +1,11 @@ -# Communication +--- +title: Communication +template: docs +taxonomy: + category: docs +routes: + default: '/communication' +--- ## Talks / conf @@ -6,7 +13,7 @@ * (EN) [FOSDEM 2019 - The operating system to build the decentralized Internet](https://cinema.yunohost.support/videos/watch/1eb49594-0283-4a01-8691-3817a3cb31e6) ([slides](https://github.com/YunoHost/yunohost-fosdem-2019)) * (FR) [Capitole du libre 2018 - YunoHost: un des chemins vers la décentralisation - Bram](https://www.youtube.com/watch?v=OEXEStoOYpw) ([slides](https://psycojoker.github.io/yunohost-cdl-2018/)) * (FR) [Journées du logiciel libre 2018 - YunoHost : vers l’auto-hébergement et au-delà - Bram](https://www.videos-libr.es/videos/watch/45b48b1e-1b10-4e09-b29a-a404bd42c5d0) ([slides](https://psycojoker.github.io/yunohost-jdll-2018/)) -* (FR) Ubuntu Party Novembre 2017 - De Framasoft à Yunohost, réapproprions nous le cloud ([slides](https://blog.genma.fr/?De-Framasoft-a-Yunohost-reapproprions-nous-le-cloud)) +* (FR) Ubuntu Party Novembre 2017 - De Framasoft à YunoHost, réapproprions nous le cloud ([slides](https://blog.genma.fr/?De-Framasoft-a-Yunohost-reapproprions-nous-le-cloud)) * (FR) [Capitole du libre 2017 - YunoHost : vers l'auto-hébergement et au-delà - JimboJoe](https://2017.capitoledulibre.org/programme/#yunohost-vers-lauto-hebergement-et-au-dela) ([slides](https://github.com/YunoHost/yunohost-cdl-2017/raw/master/YunoHost-CDL2017.pdf)) * (FR) [PSES 2017 – Construire l’Internet du Futur avec YunoHost – Aleks, ljf](https://data.passageenseine.org/2017/aleks-ljf_internet-futur-yunohost.webm) ([slides](https://data.passageenseine.org/2017/aleks-ljf_internet-futur-yunohost.pdf)) * (FR) [Université de technologie de compiègne 2017 – Agir pour un internet éthique – LJF](http://webtv.utc.fr/watch_video.php?v=O34AA7RBR1AH) @@ -21,10 +28,9 @@ ## Articles / Press review -du HTML conditionnel ici !
{{/if}}` + +- Pour l'internationalisation des messages, utilisez `y18n.t('some-string-code')` dans le JavaScript, ou `{{t 'some-string-code'}}` dans le template HTML, et mettez votre message dans `locales/en.json`. Ne modifiez pas de fichiers de locales autres que `en.json`, la traduction sera faite avec [Weblate](https://translate.yunohost.org/) ! + +##### N'oubliez pas + +- À chaque modification de l'actionsmap, il faut redémarrer l'API YunoHost : `service yunohost-api restart` (Il faudra retaper le mot de passe administrateur dans l'interface web) + +- Il faudra peut-être régulièrement forcer le rafraîchissement du cache navigateur pour propager correctement le JavaScript et/ou HTML (à chaque fois que l'on change quelque chose dans `js` ou `views`, donc). + + +### Votre fonctionnalité est prête et vous souhaitez qu'elle soit intégrée dans YunoHost + +- Forkez le dépôt correspondant sur GitHub, et commitez vos changements dans une nouvelle branche. Il est recommandé de nommer la branche avec la convention suivante : + - Pour une nouvelle fonctionnalité ou amélioration : `enh-ISSUENUMBER-description-fonctionnalité` + - Pour une correction de bug : `fix-REDMINETICKET-description-correctif` + - `ISSUENUMBER` est optionnel et correspond au numéro du ticket sur le bug tracker + +- Une fois prêt, ouvrez une Pull Request (PR) sur Github. De préférence, inclure `[fix]` ou `[enh]` au début du titre de la PR. + +- Après relecture, test et validation par les autres contributeurs, votre branche sera mergée dans `unstable` ! diff --git a/dev.md b/pages/04.contribute/05.dev/dev.md similarity index 76% rename from dev.md rename to pages/04.contribute/05.dev/dev.md index 45015d78..8158ac28 100644 --- a/dev.md +++ b/pages/04.contribute/05.dev/dev.md @@ -1,28 +1,35 @@ -## Contributing to the YunoHost core +--- +title: Contributing to the YunoHost core +template: docs +taxonomy: + category: docs +routes: + default: '/dev' +--- You wish to add a new feature in the YunoHost core, but don't know how to proceed? This guide takes you through the various steps of the development and contribution process. If you're looking for stuff to implement or fix, the bug-tracker is -[here](https://github.com/YunoHost/issues/issues) ! +[here](https://github.com/YunoHost/issues/issues)! -**Come say hi to us in the [dev chatroom](/chat_rooms)** ! +**Come say hi to us in the [dev chat room](/chat_rooms)**! ### Setting up a development environment - **Use [ynh-dev](https://github.com/YunoHost/ynh-dev)** (see the README) to setup a development environment - locally in a virtual machine, or on a VPS. - This will setup a working YunoHost instance, using directly the git repositories + This will setup a working YunoHost instance, using directly the Git repositories (with symlinks). That way, you will be able to edit files, test your changes in real time, commit stuff and push/pull directly from your development environment. - **Implement and test your feature**. Depending on what you want to develop, you - will want to : - - **Python/CLI core** : work in `/ynh-dev/yunohost/` - - **Web administration interface** : work in `/ynh-dev/yunohost-admin/` + will want to: + - **Python/CLI core**: work in `/ynh-dev/yunohost/` + - **Web administration interface**: work in `/ynh-dev/yunohost-admin/` - You can also work on the other projects on which YunoHost is built - (SSOwat, moulinette) in similar ways + (SSOwat, Moulinette) in similar ways ### Overview of the 4 main pieces of YunoHost @@ -30,38 +37,38 @@ If you're looking for stuff to implement or fix, the bug-tracker is It is a small "homemade" framework. [Its major role](https://moulinette.readthedocs.io/en/latest/actionsmap.html) is to allow us to build both a web API and a command-line API from the same -Python code thanks to a YAML schema which we call +Python code thanks to a YAML schema which we call [the actionmap](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml). It handles other mechanisms like authentication, internationalization and -small technical utilitary functions (e.g. reading/writing json). +small technical utilitary functions (e.g. reading/writing JSON). Moulinette has its own documentation available [here](https://moulinette.readthedocs.io/en/latest/). -#### Yunohost +#### YunoHost This piece is the very core of YunoHost. It contains: -- [the python code](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) that manages users, domains, apps, services and other things +- [the Python code](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) that manages users, domains, apps, services and other things - [bash helpers](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) mainly used by application packagers to package applications -- [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) and [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) that are used to configure the various pieces of the ecosystem such as nginx, postfix, ... +- [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) and [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) that are used to configure the various pieces of the ecosystem such as NGINX, Postfix... - [internationalized strings](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales) - [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests) #### SSOwat This is the single sign-on system of YunoHost. It both contains: -- [Lua scripts](https://github.com/YunoHost/ssowat) that are directly interfaced with nginx and handle all the "technical" aspects of authentication and route accesses +- [Lua scripts](https://github.com/YunoHost/ssowat) that are directly interfaced with NGINX and handle all the "technical" aspects of authentication and route accesses - the web [user portal](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) which is the interface used by YunoHost's end users to log in and browse installed apps SSOwat is configured through `/etc/ssowat/conf.json` which is generated by YunoHost. -#### Yunohost-admin +#### YunoHost-admin It is an *optional* dependency of YunoHost and corresponds to an interface for the web API created by YunoHost and Moulinette (c.f. the `yunohost-api` service). It essentially contains: - [view templates](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views) -- corresponding [javascript controllers](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) that interact with the Yunohost API +- corresponding [JavaScript controllers](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) that interact with the YunoHost API - and [internationalized strings](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales) ### Working on the YunoHost Python/CLI core @@ -77,7 +84,7 @@ It essentially contains: category is `domain`, the action is `add`, and `some.domain.tld` is an argument. -- Moulinette will automatically map commands in the actionsmap to python +- Moulinette will automatically map commands in the actionsmap to Python functions (and their arguments) located in `src/yunohost/`. For example, typing `yunohost domain add some.domain.tld` will call the function `domain_add(domainName)` in `domain.py`, with the argument `domainName` equal @@ -107,50 +114,50 @@ It essentially contains: - The web interface uses the API to interact with YunoHost. The API commands/requests are also defined via the actionsmap. For instance, accessing - the page ```https://domain.tld/yunohost/api/users``` corresponds to a `GET + the page `https://domain.tld/yunohost/api/users` corresponds to a `GET /users` requests on the YunoHost API. It is mapped to the function - `user_list()`. Accessing the URL should display the json returned by this + `user_list()`. Accessing the URL should display the JSON returned by this function. 'GET' requests are typically meant to ask information to the server. 'POST' requests are meant to ask the server to edit/change some information, or to execute some actions. -- `js/yunohost/controllers` contains the javascript parts, +- `js/yunohost/controllers` contains the JavaScript parts, and define which requests to make to the API when loading a specific page of the interface, and how to process the data to generate the page, using templates. - `views` contains the various templates for the pages of the interface. In the - template, data coming from the javascript part can be used with the syntax + template, data coming from the JavaScript part can be used with the syntax `{{some-variable}}`, which will be replaced when building/accessing the page. It is also possible to have conditions using the - [handlebars.js](http://handlebarsjs.com) syntax : ```{{#if - some-variable}}Some conditional HTML code here !
{{/if}}``` + [handlebars.js](http://handlebarsjs.com) syntax: `{{#if + some-variable}}Some conditional HTML code here !
{{/if}}` - For internationalized strings, use `y18n.t('some-string-code')` in the - javascript, or `{{t 'some-string-code'}}` in the HTML template, and put your + JavaScript, or `{{t 'some-string-code'}}` in the HTML template, and put your string in `locales/en.json`. Don't edit other locales files, - this will be done using [weblate](https://translate.yunohost.org/) ! + this will be done using [Weblate](https://translate.yunohost.org/)! ##### Don't forget -- Each time you edit the actionsmap or the python code, you should restart the yunohost-api : - ```systemctl restart yunohost-api``` - (You'll need to retype your admin password in the web interface) +- Each time you edit the actionsmap or the Python code, you should restart the YunoHost api: + `systemctl restart yunohost-api` + (You'll need to retype your admin and password in the web interface) - You might need to force-clear the cache of your browser sometimes to refresh - the javascript and/or html (so each time you edit something in `js` or `views`). + the JavaScript and/or HTML (so each time you edit something in `js` or `views`). ### Your feature is ready and you want it to be integrated in YunoHost -- Fork the relevant repo on Github, and commit stuff to a new branch. We recommend - to name the branch with the following convention : - - For an enhancement or new feature : `enh-ISSUENUMBER-name-of-feature` +- Fork the relevant repo on GitHub, and commit stuff to a new branch. We recommend + to name the branch with the following convention: + - For an enhancement or new feature: `enh-ISSUENUMBER-name-of-feature` - For a bugfix `fix-ISSUENUMBER-description-of-fix` - `ISSUENUMBER` is optional and is the id of a corresponding ticket on the bug tracker. -- Once you're ready, open a Pull Request (PR) on Github. Please include `[fix]` or +- Once you're ready, open a Pull Request (PR) on GitHub. Please include `[fix]` or `[enh]` at the beginning of the title of your PR. - After reviewing, testing and validation by other contributors, your branch -should be merged in `unstable` ! +should be merged in `unstable`! diff --git a/pages/04.contribute/contributordoc.de.md b/pages/04.contribute/contributordoc.de.md new file mode 100644 index 00000000..d26d9ee1 --- /dev/null +++ b/pages/04.contribute/contributordoc.de.md @@ -0,0 +1,126 @@ +--- +title: Beteilige dich! +template: docs +taxonomy: + category: docs +routes: + default: '/contributordoc' + aliases: + - '/contribute' +--- + ++YunoHost hängt ausschließlich von der Beteiligung von Leuten wie dir ab. +
+ ++YunoHost dépend entièrement de la participation de gens comme vous. +
+ + ++YunoHost depends exclusively on the participation of people like you. +
+ +-*Nota el valor `IP` visible en la pantalla : esto es **la dirección IP local** de tu servidor.* -
- -Preview of the Web post-installation
- -### From the command line - -You can also perform the postinstallation with the command `yunohost tools postinstall` directly on the server, or [via SSH](/ssh). - -Preview of the command-line post-installation
- -Vistazo de la post-instalación Web
* - -### Vía la interfaz de línea de comando - -También puedes acceder a la post-instalación entrando el comando `yunohost tools postinstall` directamente en el servidor o [en SSH](/ssh). - -Vistazo de la post-instalación con línea de comando
* - -## Informaciones solicitadas - -### Dominio principal - -Es el nombre de dominio que permitirá el acceso a tu servidor así como al portal de autenticación de los usuarios. Entonces estará **visible por todo el mundo** : elígelo en consecuencia. - -* YunoHost te propone un DNS dinámico, proveando nombres de dominio del tipo *midominio.nohost.me*, *midominio.noho.st* o *midominio.ynh.fr*. Si no posees un nombre de dominio y/o que quieres aprovechar de este servicio, elige un dominio terminando con `.nohost.me`, `.noho.st` o `.ynh.fr`. Si no está utlizado ya, el dominio automáticamente estará vinculado a tu servidor Yunohost, y no tendrás más etapas de configuración. - -* Si, en cambio, dominas la noción de **DNS**, puedes utilizar tu propio nombre de dominio. En este caso, refiérete a la página [yunohost.org/dns](/dns) por más información. - -* Si no tienes nombre de dominio y que no quieres uno que acabe con *.nohost.me*, *.noho.st* ou *.ynh.fr*, puedes utilizar un dominio local. Más información sobre cómo [acceder a tu servidor desde la red local](/dns_local_network). - - -### Contraseña de administración - -Es la contraseña que permitirá acceder a la [interfaz de administración](/admin) de tu servidor. También podrás utilizarla para conectarte remotamente vía **SSH**, o vía **SFTP** para transferir archivos. - -De manera general, ésta es la **llave de entrada en tu sistema**, pues piensa en **[elegirla atentamente](https://es.wikihow.com/escoger-una-contrase%C3%B1a-segura)**. - -Aperçu de la post-installation Web
* - -### Via la ligne de commande - -Vous pouvez aussi y accéder en entrant la commande `yunohost tools postinstall` directement sur le serveur ou [en SSH](/ssh). - -Aperçu de la post-installation en ligne de commande
* - -## Informations demandées - -### Domaine principal - -C’est le nom de domaine qui permettra l’accès à votre serveur ainsi qu’au portail d’authentification des utilisateurs. Il sera donc **visible par tout le monde**, choisissez-le en conséquence. - -* YunoHost propose un service de DNS dynamique fournissant des noms de domaine de type *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*. Si vous ne possédez pas de nom de domaine et/ou que vous souhaitez profiter de ce service, choisissez un domaine se terminant en `.nohost.me`, `.noho.st` ou `.ynh.fr`. S'il n'est pas déjà utilisé, le domaine sera automatiquement rattaché à votre serveur YunoHost, et vous n’aurez pas d’étape de configuration supplémentaire. - -* Si en revanche vous maîtrisez la notion de **DNS**, vous pouvez utiliser votre propre nom de domaine. Dans ce cas, référez-vous à la page [yunohost.org/dns](/dns) pour plus d’informations. - -* Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*, vous pouvez utilisez un domaine local. Plus d'infos sur comment [accéder à son serveur depuis le réseau local](/dns_local_network). - - -### Mot de passe d’administration - -C’est le mot de passe qui vous permettra d’accéder à l’[interface d’administration](/admin) de votre serveur. Vous pourrez également l’utiliser pour vous connecter à distance via **SSH**, ou en **SFTP** pour transférer des fichiers. - -De manière générale, c’est la **clé d’entrée à votre système**, pensez donc à la **[choisir attentivement](http://www.commentcamarche.net/faq/8275-choisir-un-bon-mot-de-passe)**. - -