diff --git a/README.md b/README.md index 97b0670f..207de741 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # YunoHost Documentation -* [Web Site](https://yunohost.org/#/) -* Based on [Simone](https://github.com/Kloadut/Simone) +* [Web Site](https://yunohost.org) +* Based on [Simone](https://github.com/YunoHost/Simone) -Please report issues here (no registration needed): -https://dev.yunohost.org/projects/yunohost/issues +Please report [issues on YunoHost bugtracker](https://dev.yunohost.org/projects/yunohost/issues) (no registration needed). diff --git a/admin_api_fr b/admin_api_fr new file mode 100644 index 00000000..2e21e87c --- /dev/null +++ b/admin_api_fr @@ -0,0 +1,42 @@ +# Administration depuis l'API ou une application externe + +Toutes les actions executables en ligne de commande le sont également via une API. + +L'API utilise l'adresse https://VOTRESERVEUR/yunohost/api et toutes les actions sont détaillées sur cette page. + +Il faut d'abord récupérer un cookie de login pour ensuite réaliser les actions. Voici un exemple via curl : +```bash + Login (avec mot de passe admin): curl -k -d “password=XXX” –dump-header headers https://VOTRESERVEUR/yunohost/api/login + GET: curl -k -i -H “Accept: application/json” -H “Content-Type: application/json” -L -b headers -X GET https://VOTRESERVEUR/yunohost/api/ROUTE | grep }| python -mjson.tool +``` +Pour simplifier l'administration à distance d'une instance YunoHost dans le cadre d'un projet CHATON, des classes API ont été développées par des utilisateurs. + +Par exemple, cette classe PHP vous permettra d'administrer votre instance YunoHost depuis une application PHP (site web, outil de provisioning, …). + +Voici un exemple de code PHP permettant d'ajouter un utilisateur dans votre instance YunoHost : + +```bash +require("ynh_api.class.php"); +$ynh = new YNH_API("YunoHost server IP or hostname", "admin password"); + +if ($ynh->login()) { + $domains = $ynh->get("/domains"); + $first_domain = $domains['domains'][0]; + + $arguments = array( + 'username' => 'test', + 'password' => 'yunohost', + 'firstname' => 'Firstname', + 'lastname' => 'Lastname', + 'mail' => 'test@'.$first_domain, + 'mailbox_quota' => '500M' + ); + + $user_add = $ynh->post("/users", $arguments); + print_r($user_add); + +} else { + print("Login to YunoHost failed.\n"); + exit; +} +``` diff --git a/admindoc.md b/admindoc.md index 51b59470..cb87d8d1 100644 --- a/admindoc.md +++ b/admindoc.md @@ -2,9 +2,14 @@ *For want of anything better, here is an index of interesting pages for the YunoHost server's administrator.* -* [What is Self-hosting](/self-hosting) -* [Installation guide](/install) +* [What is Self-hosting](/selfhosting) * [Compatible hardware](/hardware) +* [Installation guide](/install) + * [On ARM board](/install_on_arm_board) + * [On Raspberry Pi](/install_on_raspberry) + * [From the ISO image](/install_iso) + * [On Debian](/install_on_debian) + * [On VirtualBox](/install_on_virtualbox) * [Available applications](/apps) * [Administration interface usage](/admin) * [Command-line interface usage](/moulinette) diff --git a/admindoc_fr.md b/admindoc_fr.md index a010efbe..5bde3f4d 100644 --- a/admindoc_fr.md +++ b/admindoc_fr.md @@ -40,6 +40,7 @@ * [Orange](/isp_orange_fr) * [Free](/isp_free_fr) * [Administration web](/admin_fr) +* [Administration via l'API](/admin_api_fr) * [Sécurité](/security_fr) * [Authentification SSH par clé](/security_fr) * [Modifier le port SSH](/security_fr) diff --git a/app_ffsync.md b/app_ffsync.md index af0f616a..eba9979f 100644 --- a/app_ffsync.md +++ b/app_ffsync.md @@ -5,11 +5,11 @@ Firefox Sync permits synchronize plugins, tabs, bookmarks, favorites, history ov #### Firefox desktop In Firefox URL bar put: `about:config`. -Search for: `services.sync.tokenServerURI`. +Search for: `identity.sync.tokenserver.uri`. Replace the URL by: https://mydomain.tld/path/token/1.0/sync/1.5 Create an account at Mozilla: https://accounts.firefox.com/signup #### Firefox mobile -Install the plugin `fxa-custom-server-addon`. \ No newline at end of file +With the last version of firefox mobile it's same than for desktop. diff --git a/app_ffsync_fr.md b/app_ffsync_fr.md index 605181b6..fd391e1a 100644 --- a/app_ffsync_fr.md +++ b/app_ffsync_fr.md @@ -7,11 +7,11 @@ Configurer Firefox pour utiliser votre serveur pour la synchronisation. #### Firefox bureau Tapez `about:config` dans la barre d’URL. -Recherchez : `services.sync.tokenServerURI`. +Recherchez : `identity.sync.tokenserver.uri`. Remplacez l’URL par la vôtre : https://mondomaine.tld/adresse/token/1.0/sync/1.5 Créez un compte chez Mozilla : https://accounts.firefox.com/signup #### Firefox mobile -Installez le plugin `fxa-custon-server-addon`. \ No newline at end of file +Avec la dernière version de firefox mobile c'est identique que firefox pour le bureau. diff --git a/apps_in_progress_fr.md b/apps_in_progress_fr.md index 757e7f05..acc23b2a 100644 --- a/apps_in_progress_fr.md +++ b/apps_in_progress_fr.md @@ -31,7 +31,7 @@ N’hésitez pas à vous créer un compte GitHub pour faire part de vos remarque

Applications dites fonctionnelles

-

Remarque : c'est le mainteneur de l'application qui la décrit comme fonctionnelle, pas l'équipe de YunoHost. Installez la à vos risques et péril. Nous ne fournirrons pas de support dessus.

+

Remarque : c'est le mainteneur de l'application qui la décrit comme fonctionnelle, pas l'équipe de YunoHost. Installez la à vos risques et péril et soyez conscient que ne fournirons aucune assistance dessus.

diff --git a/apps_wishlist.md b/apps_wishlist.md index bdf846b0..8f2c94d8 100644 --- a/apps_wishlist.md +++ b/apps_wishlist.md @@ -8,7 +8,9 @@ The following list is a compiled wishlist of applications that would be nice-to- - [List of awesome selfhosted apps](https://github.com/Kickball/awesome-selfhosted) - [List of awesome sysadmin apps](https://github.com/kahun/awesome-sysadmin) +- [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects) - [10er10](https://github.com/dready92/10er10) +- [Airtime](https://www.sourcefabric.org/en/airtime/) - [Ajenti](http://ajenti.org) - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) - [Auth0 SSO Dashboard](https://github.com/auth0/auth0-sso-dashboard) @@ -31,12 +33,13 @@ The following list is a compiled wishlist of applications that would be nice-to- - [Deluge](http://deluge-torrent.org) (with WebUI) - [DemocracyOS](http://democracyos.org) - [Discourse](http://discourse.org) +- [DNSchain](https://github.com/okTurtles/dnschain) - [Emby](https://emby.media) - [ERPnext](https://erpnext.com/download) - [Ethersheet](https://ethersheet.org) - [Fail2web](https://github.com/Sean-Der/fail2web) +- [Ferment](https://github.com/mmckegg/ferment) - [FileTea](https://filetea.me) -- [Flarum](http://flarum.org) - [Fossil](http://www.fossil-scm.org) - [GetSimple CMS](http://get-simple.info) - [Git-annex](http://git-annex.branchable.com) @@ -48,7 +51,6 @@ The following list is a compiled wishlist of applications that would be nice-to- - [Guacamole](http://guac-dev.org) - [h5ai](http://larsjung.de/h5ai) - [Hackpad](https://github.com/dropbox/hackpad) -- [Hastebin](https://github.com/seejohnrun/haste-server) - [Headphones](https://github.com/rembo10/headphones) - [Hi Buddy](http://hibuddy.monkeypatch.me) - [Huginn](https://github.com/cantino/huginn) @@ -68,8 +70,10 @@ The following list is a compiled wishlist of applications that would be nice-to- - [Known](https://withknown.com) - [Koel](http://koel.phanan.net) - [Kontalk](http://kontalk.org) +- [Koozip](http://koozic.net) - [KrISS feed](https://github.com/tontof/kriss_feed) - [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29) +- [LiquidSoap](http://savonet.sourceforge.net/) - [Logstalgia](http://logstalgia.io) - [Loomio](https://www.loomio.org) - [The Lounge](https://thelounge.github.io), cf. https://github.com/Kloadut/shout_ynh/issues/4 @@ -77,6 +81,7 @@ The following list is a compiled wishlist of applications that would be nice-to- - [Lufi](https://git.framasoft.org/luc/lufi) - [MaidSafe](http://maidsafe.net) - [Mailpile](https://www.mailpile.is) +- [Matrix](https://matrix.org) – [Synapse](https://github.com/matrix-org/synapse) - [MatterMost](https://github.com/mattermost/platform) - [MediaCrush](https://imgrush.com) - [MinigalNano](https://github.com/sebsauvage/MinigalNano) @@ -86,6 +91,7 @@ The following list is a compiled wishlist of applications that would be nice-to- - [MPD](http://www.musicpd.org) - [NetData](https://github.com/firehol/netdata) - [Nibbleblog](http://www.nibbleblog.com) +- [NodeBB](https://nodebb.org) - [Only Office](http://onlyoffice.org) - [OpenBazaar](https://openbazaar.org) - [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) diff --git a/architecture.png b/architecture.png new file mode 100644 index 00000000..12c1f471 Binary files /dev/null and b/architecture.png differ diff --git a/architecture.xml b/architecture.xml new file mode 100644 index 00000000..b1084892 --- /dev/null +++ b/architecture.xml @@ -0,0 +1 @@ +7Vxbc5s4FP41nmkfmgEkYXjMpel2p931rHenzSMB2WaLkQu4ifvrV4DAumETRyR4p+lMxzpcLL7z6dx08ARcrx8/ZMFm9ZlEOJk4VvQ4ATcTx/Fsn/5fCna1wHZ9VEuWWRwx2V4wj39iJrSYdBtHOBdOLAhJingjCkOSpjgsBFmQZeRBPG1BEvFbN8ESK4J5GCSq9EscFSv2XI67l/+G4+Wq+Wb6gPWR+yD8tszINmXfN3HAovqrD6+D5l7sQfNVEJEHTgTeT8B1RkhRf1o/XuOkxLaBrb7utuNoO+8Mp0WfC5z6gh9BsmWPfrdNyYrkBZVekwxPHDehd7qK4h/047L82IjuM1nS6yQ6Gc15r3OpLK1UUuwaGjys4gLPN0FYjh8o1elJq2Kd0JFNPy7iJLkmCcmqs0tFO2FI5XmRkW+YOxK59y5y22/g1cM09gNnBX7kRExdHzBZ4yLb0VOaoy6jDltbALHxw56ojsVkK56kjTBgi2PZ3ntPEPqBcUTPF6Dw5TPZJnGKi0JHlTeLLFjjB5J9e3vGkLdmqYHcVyG3dZAjA4hDBfE/lnH6+FzgUPlPB5xb/ZkBDnoScJ4GOKABbmoAOKQAN5//+SUoDdubNYm2FDjHSkss354FC5FzfOH7GiyBASxdBUsFMpxGl6XnpaOUpLhCI8gKScaBGAX5CkdsQK++jcuvv7GaK7lxJ3o4Evy4ih2HDTqwQDOcBEX8Q/T+OsDYN8xInBacTZY0I1vanGyzELOLeG8s3cc7diOKyxIXyo0q9bVP3UujU0Wjn24uZ2dhVVri7yQrw1sVR6Nt18BK8FQHGMTJWeBm98BtqoHNMQCbr8D29fNsVplieiuS0js+2wq/DIiWCGJrlY+RzwSKjXngYLz+9PGZuEUIexHU4eY592Ao8tm6GGqoRWvbCm6X0TpOzwI5YPVAzh0KOTVBnJGsqEyeReOps0AQTpGIINAg6A2FoJoyXW42+XON3QK7HSHn1L+3DgZN/YFzJeq1dvxFFu1JQScHmQKNVf0p0SZ+jIuv5ecLxEZ3bVRK51wfclAzvjsWlNbRnmix68CNoTgZcezq2pLq+sauUlkCyRQwF7raauw6EDG61G8fUj+vantceQqAUn4B/dOUDaRc1PGG07YacR/SdpgEeR6HRxR+e+v7AAgKtwVLYHOWwLqwrGY8w1lMJ48zRhEhiRUS3v1E+Gz2IHMEwwFGxRy5+KBUaHqbiSaikKMZ88wBmqhvW6wo6vEiDikaJNWULEuhhamP3FWofd/ivMh7Fi+pWy1E5mU4j38G99UJJV825XNVT4quJuiGSoIkXqZUkOBFeW3pnOnkkksmXsdRVF59lQT3OLlqtxfE8lO5wUBjBJIWbC/F1/OsWUtyBNDupLCpTvjdCF1kQNcEAFDUpBGi+bp7NpeTxSLHzzYoai5qzH1oIwnVsfSyAEjjTsYVOiC5XHVq7ICk4EGJH80ZhcaOmdP+7a3HtE+1Mmd3oTnSiixJGiTv99J9QNEGl3d7tggMUSvM9RKnZ7EVXuZGlSWo3E9VNW32EstBSNal8+lPt6lKt3Gx7ZUDVcqIYMedxix553ShlDs14z116zueTGR1Y8gYkVua0sgHSVT1nZ5UVyJpOXZqrKUYayGF173o66n09UdFX0eKoNCpmwRyPQi6aBACt5tJzff41sF5yecj4JglvPF6AEd4fdqnWulOLvLEm46LeLJeTjWccvYIhwvdNdtT/+TUcDjWx5QakEVZJTMSfG8Lktf+1D4eixekLMrlmyCM0+Xf5eDmHTTUYiAFQEgttOn2dk1sKmi2tMo0g66J/zXEoLkDB7Guim4E4menHHxo18dxH4svjztw0Qd3++quSLWX19YEnWhUxtOFhoynCyT6yQUUQ17bneon3Dkv6XzAoglTXrt57IGo36beEl2fGp/uC38Iyqm7puzXi9xQJffI6sFICiWB3LDWl93wxAT+qexWJgwPsxvKFQrx/OezW03CyhLjiBwnVxO0HTbWuY6O8mLTysUvwuqW7Nk0DcdPb2yzxEIi9JDimXVNgrIpPqmfVQ00fynwqQoEsg/RNBYNpkA1tPqlwCcrUC4paFpMhlIgVAOEeUGdWkhlNLbEaqeEQVWGOK2cuilltuGIAaVAJWF5uXY96ChK+QtX74RcztR+s3GsLWtYdTi+2EQENE1EQ+WPUO0hmu1oVKs2sI14bVyhKfBvBrBeDhQ1A5EaP+iCaCPWS33LQNhT5nTjft+Wb3VdlSp6x0C+pGcwnNvj8jtKFOi0kX3aBtxWNH9kyB3ql3CDg7EDycGJZt0O5tvUkvXv1J9Ztxl9yKrApr4xlQfr9e7i37zvC1NjWfEa8zuYTgEAgk4dqJZLdf2cJl6FgSb6kY6U81hzUl94uT41pUtRaFDqhF6oUTCQRlKjUBZi35qEI1XchtutgE8r754HJY6qv03+/AvfRcieOtCmA3Fl2qqxPcSVJ7Qyyh2HvXexDs/Xty4qqW0BCL1mb8Q8Z5Ca9rw2Z8zywrW0OBsnwul9IFJt0Ja9g0Flq+nUPMziTTmb4QP5EedUcnlWE5vpUlwTsRlSc6pDC/DkPbn+Fruj9dzzPN6C2xeWPZ10tdScuq13YVnOhN/a8yaHdj4kI3DKPl/d4PxaUcXUmgrMQ/Li72tFpvLPMQy086FMmLkmUzsZqGsnw0wy+4Zsyn7rIDm3tGa4iq2mCVtZRd3eVX6Tw3J7Wc4TMiA63P8eTc2s/Y/+gPf/AQ== \ No newline at end of file diff --git a/blacklist_forms.md b/blacklist_forms.md index 23cae943..2fa654c9 100644 --- a/blacklist_forms.md +++ b/blacklist_forms.md @@ -2,18 +2,19 @@ It could happen sometimes that your IP is blacklisted by some email provider, or anti-spam services. +## Test your server + +* [Test sending an email](https://www.mail-tester.com) +- [Test from an IP address](http://whatismyipaddress.com/blacklist-check) + Here is some forms that could help you remove your IP address from these lists ## Email providers -* Hotmail: https://support.live.com/eform.aspx?productKey=edfsmsbl3&ct=eformts&scrx=1 -* GMail : https://support.google.com/mail/contact/msgdelivery +* [Microsoft](https://support.microsoft.com/en-us/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=en-us) +* [GMail](https://support.google.com/mail/contact/msgdelivery) ## Anti-spam services -* SpamHaus: http://www.spamhaus.org/lookup/ - -## Test your server - -* https://www.mail-tester.com/ -* http://whatismyipaddress.com/blacklist-check \ No newline at end of file +* [SpamHaus](http://www.spamhaus.org/lookup) +* http://whatismyipaddress.com/blacklist-check diff --git a/blacklist_forms_fr.md b/blacklist_forms_fr.md index 9c3fb757..2f71a42f 100644 --- a/blacklist_forms_fr.md +++ b/blacklist_forms_fr.md @@ -2,19 +2,19 @@ Il peut arriver que votre serveur (son adresse IP) soit ajouté à la liste noire de certains fournisseurs d’adresse de courrier électronique ou de services anti-spam. Les courriels envoyés à ces adresses sont alors filtrés et n’arrivent pas à destination. #### Testez votre serveur Pour tester si votre serveur est sur une liste noire, vous pouvez utiliser les outils suivants : -* https://www.mail-tester.com/ (test en envoyant un mail) -* http://whatismyipaddress.com/blacklist-check (test à partir de l’adresse IP) +* [https://www.mail-tester.com](Test en envoyant un mail) +* [Test à partir de l’adresse IP](http://whatismyipaddress.com/blacklist-check) Le cas échéant, voici certains des formulaires vous permettant de retirer votre adresse IP de ces listes : ##### Fournisseurs Email -* Hotmail : https://support.live.com/eform.aspx?productKey=edfsmsbl3&ct=eformts&scrx=1 -* GMail : https://support.google.com/mail/contact/msgdelivery +* [Microsoft](https://support.microsoft.com/en-us/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=en-us) +* [GMail](https://support.google.com/mail/contact/msgdelivery) ##### Services anti-spam -* SpamHaus : http://www.spamhaus.org/lookup/ +* [SpamHaus](http://www.spamhaus.org/lookup) Si le fournisseur vous concernant n’apparaît pas dans la liste, cherchez le formulaire adéquat, il existe probablement. diff --git a/build_system_fr.md b/build_system_fr.md index fd3fa2ab..c1f34536 100644 --- a/build_system_fr.md +++ b/build_system_fr.md @@ -122,6 +122,24 @@ Il peut arriver, de façon exceptionnelle, qu’on ait besoin de faire un hotfix **TODO** dev un helper 'git yunohotfix...' qui commit dans stable et cherry-pick tout de suite dans daily ? ou l’inverse ? +#### Publier une release testing ou stable + +Pour l'instant, on passe par une release via GitHub pour déclencher le build du paquet. + +Aller sur https://github.com/YunoHost/{moulinette, yunohost, yunohost-admin, ssowat}/releases/new + +1/ Choisir la branche cible en premier (testing ou stable). +Ex: "target: Testing" + +2/ Choisir le tag concerné, généralement le dernier +Ex: "debian/2.4.1" + +3/ Release title: "v2.4.1" ("v" + le numéro de version) + +4/ Commentaire +Reprendre le changelog depuis `debian/changelog`. Remercier les contributeurs/traducteurs +( Pour voir le dernier commit : `git show HEAD` ) + #### Paquets non YunoHost Pour les paquets « non-YunoHost » (par exemple `rspamd`) le paquet ne passe pas par le composant `unstable`, mais uniquement `testing` et `stable` une fois les tests effectués sur ce paquet. diff --git a/certificate_fr.md b/certificate_fr.md index 90efdec9..23b9a5ab 100644 --- a/certificate_fr.md +++ b/certificate_fr.md @@ -60,6 +60,9 @@ En fonction de l’autorité d’enregistrement, des certificats intermédiaires > **Gandi** > ```bash > sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA.pem -O ae_certs/intermediate_ca.pem``` +> Attention si votre certificat expire après le 01/01/2017, choisissez le certificat intermédiaire SHA2 suivant (à la place du certificat SHA1 précédent) +> ```bash +> sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA2.pem -O ae_certs/intermediate_ca.pem``` > **RapidSSL** > ```bash diff --git a/chat_rooms.md b/chat_rooms.md new file mode 100644 index 00000000..bae801ed --- /dev/null +++ b/chat_rooms.md @@ -0,0 +1,24 @@ +## Chat rooms + +Amoung other communication tools, YunoHost project use chat rooms to communicate. + +This instant messaging chat rooms, which uses [XMPP protocol](XMPP_en), are hosted on our XMPP server. + +You could join this chat rooms with an [XMPP client](https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients#XMPP-related_features). + +### Chat rooms +#### Mutual aid +[Mutual aid](support_en) chat room is here to allow YunoHost's users to help each other. + +- A [web client](https://chat.yunohost.org) is here to easily join _mutual aid_ chat room. +- **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)** + +#### Development +YunoHost core development chat room. Currently, the main chat room for contributions on YunoHost project. +For help, thanks to do it on `support` chat room. +- **[dev@conference.yunohost.org](xmpp:dev@conference.yunohost.org?join)** + +#### Applications +Application packaging development chat room. It allow packagers to help each other. +It also allow to discuss packaging evolution, continuous integration tools. +- **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)** diff --git a/chat_rooms_fr.md b/chat_rooms_fr.md new file mode 100644 index 00000000..b7eaac70 --- /dev/null +++ b/chat_rooms_fr.md @@ -0,0 +1,24 @@ +## Salons de discussions + +Parmi d’autres outils de communications, le projet YunoHost se sert de salons de discussions pour communiquer. + +Ces salons de messagerie instantanées, qui utilisent le [protocole XMPP](XMPP_fr), sont hébergés sur notre serveur XMPP. + +Vous pouvez rejoindre ces salons avec un [client XMPP](https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP). + +### Salons +#### Entraide +Salon d’[entraide](support_fr) est là pour permettre aux utilisateurs de YunoHost de s’entraider. + +- Un [client web](https://chat.yunohost.org) est à votre disposition pour rejoindre facilement le salon d’entraide. +- **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)** + +#### Développement +Salon de développement du cœur de YunoHost. Actuellement utilisé comme salon principal pour les contributions autour du projet. +Pour de l’aide, merci de le faire sur le salon d’entraide. +- **[dev@conference.yunohost.org](xmpp:dev@conference.yunohost.org?join)** + +#### Applications +Salon de développement du packaging d’application. Il permet aux packageurs de s’entraider. +Il sert également à discuter de l’évolution du packaging, des outils d’intégration continue sur les applications. +- **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)** diff --git a/contribs_fr.md b/contribs_fr.md index a5b78c61..4dcc6df2 100644 --- a/contribs_fr.md +++ b/contribs_fr.md @@ -2,21 +2,54 @@ Liste non exhaustive des principaux contributeurs : -* kload +#### Fondateurs +* kload * beudbeud +#### Conseil + +* Bram +* ju +* ljf +* Maniack +* Moul +* opi +* Théodore + +#### Groupe Core Dev + +* AlexAubin +* Bram +* Ju +* ljf +* Moul +* opi + +#### Groupe Apps + +* Bram +* Ju +* ljf +* Maniack C +* Moul +* Scith +* Tostaki + +#### Groupe Communication + +* Bram +* Moul +* ljf +* opi +* Théodore +* Jean-Baptiste + +#### Groupe Distribution +* Heyyounow + +#### Autres contributeurs * jerome : développeur de la [Moulinette](moulinette_fr) - -* opi : développeur de l’[interface d’admininstation web](admin_fr) - -* ju : applications - -* Moul : - * Documentation - * Cubieboard - * moul[at]moul.re - * courgette : design - -* titoko \ No newline at end of file +* titoko +* Genma diff --git a/contribute.md b/contribute.md index 4e95f97e..e8dfcb6b 100644 --- a/contribute.md +++ b/contribute.md @@ -47,7 +47,7 @@ Our support relies on contributors like you. Just come to [the XMPP chatroom](/s You can involve in the YunoHost's development regardless of your skill. Sysadmins, web developers, designers and pythonists are welcome!
-A [development chat room](xmpp:dev@conference.yunohost.org?join) and a mailing-list is available. +Learn [how to contribute](/dev), and join us on the [development chat room](xmpp:dev@conference.yunohost.org?join) and the mailing-list. diff --git a/contribute_fr.md b/contribute_fr.md index 8ec24b6f..0382d0e3 100644 --- a/contribute_fr.md +++ b/contribute_fr.md @@ -45,7 +45,7 @@ Notre support est communautaire et s’appuie sur des contributeurs comme vous.
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes sont les bienvenus.
-Une mailing-list est également disponible. +Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la mailing-list !
diff --git a/contributordoc_fr.md b/contributordoc_fr.md index 80611ac9..6e5bd3b0 100644 --- a/contributordoc_fr.md +++ b/contributordoc_fr.md @@ -9,7 +9,7 @@ * [Développer avec Docker](/docker_fr) * [Builder OpenResty (serveur Web) pour Raspberry Pi](/build_openresty_fr) * [Présentation du fonctionnement de YunoHost](/package_list_fr) - * [Se créer un environnement de développement](/dev_fr) + * [Se créer un environnement de développement](/ynh_dev_fr) * Documentation * [Création d’un compte pour l’édition de la documentation](/accounting_fr) - * [Écrire de la documentation](/write_documentation_fr) \ No newline at end of file + * [Écrire de la documentation](/write_documentation_fr) diff --git a/dev.md b/dev.md new file mode 100644 index 00000000..1d677afc --- /dev/null +++ b/dev.md @@ -0,0 +1,155 @@ +## Contributing to the YunoHost core + +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://dev.yunohost.org/issues/) ! + +**Come say hi to us in the [dev chatroom](xmpp:dev@conference.yunohost.org?join)** ! If you don't have an XMPP client, you can join using the widget at the bottom right of this page. + +### 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 + (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 `/vagrant/yunohost/` + - **Web administration interface** : work in `/vagrant/yunohost-admin/` + - You can also work on the other projects on which YunoHost is built + (SSOwat, moulinette) in similar ways + +### Working on the YunoHost Python/CLI core + +- Work in `/vagrant/yunohost/`. + +- Run `/vagrant/ynh-dev use-git yunohost`. + +- The actionsmap file (`data/actionsmap/yunohost.yml`) defines the various + categories, actions and arguments of the yunohost CLI. Define how you want + users to use your feature, and add/edit the corresponding categories, actions + and arguments. For example in `yunohost domain add some.domain.tld`, the + category is `domain`, the action is `add`, and `some.domain.tld` is an + argument. + +- 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 + to `"some.domain.tld"`. + +##### Helpers / coding style + +- To handle exceptions, you should raise some `MoulinetteError()` + +- To help with internationalizing the messages, use `m18n.n('some-message-id')` + and put your string in `locales/en.json`. You can also put arguments and use + them in the string with `{{some-argument:s}}`. Don't edit other locales files, + this will be done using [weblate](https://translate.yunohost.org/) ! + +- YunoHost tries to follow the [pep8](http://pep8.org/) coding style. Tools + exist to automatically check conformity. + +- Name of "private" functions should start with a `_` + +##### Don't forget + +- (Might not be necessary anymore) Each time you edit the actionsmap, you should + force the refresh of the cache with `rm + /var/cache/moulinette/actionsmap/yunohost.pkl` + +### Working on the YunoHost web administration interface + +- Work in `/vagrant/yunohost-admin/src/`. + +- Run `/vagrant/ynh-dev use-git yunohost-admin`. It launches gulp, such as each + time you modify sources, it recompiles the code and you can use it by + refreshing (Ctrl+F5) your web administration. To stop the command, just do Ctrl+C. + +- 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 + /users` requests on the YunoHost API. It is mapped to the function + `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, + 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 + `{{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}}``` + +- For internationalized strings, use `y18n.t('some-string-code')` in the + 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/) ! + +##### Don't forget + +- Each time you edit the actionsmap, you should restart the yunohost-api : + ```service yunohost-api restart``` + (You'll need to retype your admin 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`). + + +### 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-REDMINETICKET-name-of-feature` + - For a bugfix `fix-REDMINETICKET-description-of-fix` + - `REDMINETICKET` is optional and is the id of a corresponding ticket on RedMine. + +- 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 `testing` (?) ! + + + + + + diff --git a/dev_fr.md b/dev_fr.md index fe8f99a9..1acd96da 100644 --- a/dev_fr.md +++ b/dev_fr.md @@ -1,91 +1,164 @@ -## Créer un environnement de développement +## Contribuer au cœur de YunoHost -
-Attention : cette page de documentation n’est plus à jour. Merci de vous référer à la [documentation du dépôt](https://github.com/YunoHost/ynh-dev). -
+Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne +savez pas comment procéder ? Ce guide parcours les étapes du développement et du +processus de contribution. -Ce document a pour but de donner les clés pour créer un environnement de développement correct afin de développer sur le cœur de YunoHost. Il peut également vous permettre de tester vos applications que ce soit avec les versions `stable`, `testing`, `unstable` ou même des versions customisées issues des branches des dépôts. +Si vous chercher quelque chose à implémenter ou un bug à réparer, le +bug tracker est [ici](https://dev.yunohost.org/issues/) ! -### Installation de l’environnement de développement -#### Installation du système de virtualisation -Installer, avec le gestionnaire de paquet de votre système d’exploitation, Vagrant. +**Venez dire coucou sur le [salon de +dev](xmpp:dev@conference.yunohost.org?join)** ! Si vous n'avez pas de client +XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page. -```bash -# Debian, Ubuntu, Mint -sudo apt-get install vagrant -# Fedora -sudo dnf install vagrant -``` +### Mettre en place un environnement de développement -#### Télécharger `ynh-dev` -
-Attention : Cette partie est en cours de rédaction. La ligne de commande `ynh-dev` vient juste d’être créée il est possible qu’il y ait des manques. -
+- **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 virtuel, 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. -Une ligne de commande `ynh-dev` a été créée afin de simplifier la gestion de votre environnement de développement. +- **Implémentez et testez votre fonctionnalité**. Suivant ce sur quoi vous + voulez travailler : + - **Cœur Python/ligne de comande** : allez dans `/vagrant/yunohost/` + - **Interface d'administration web** : allez dans `/vagrant/yunohost-admin/` + - Vous pouvez aussi travailler sur les autres projets liés sur lesquels + s'appuie YunoHost (SSOwat, moulinette) de façon similaire. -```bash -wget https://raw.githubusercontent.com/yunohost/ynh-dev/master/ynh-dev -chmod u+x ynh-dev -``` -Pour créer votre environnement, commencez par faire un `create-env` -```bash -./ynh-dev create-env ~/project/my/yunohost/env -``` -Cette sous commande va cloner les dépôts principaux au fonctionnement de YunoHost et les positionner en `unstable`. Si vous avez vos propres fork, vous pouvez ensuite faire ce qu’il faut pour changer l’origine et le remote repository. +### Travailler sur le cœur Python / ligne de commande -#### Usage -##### Lancer un container -Positionner vous dans votre environnement, puis créer et entrer dans une vm à l’aide de `ynh-dev run` -```bash -cd ~/project/my/yunohost/env -./ynh-dev run exemple.local stable8 -root@yunohost:/# cd yunohost -root@yunohost:/yunohost/# ls -Dockerfile LICENSE README.md SSOwat apps backup moulinette ynh-dev yunohost yunohost-admin yunohost-vagrant -``` +- Allez dans `/vagrant/yunohost/`. -##### Mettre à jour un container -Si la vm n’est pas à jour lancez un `ynh-dev upgrade` : -```bash -root@yunohost:/yunohost/# ./ynh-dev upgrade -``` +- Executez `/vagrant/ynh-dev use-git yunohost`. -##### Déployer les sources présentes dans votre environnement -Pour déployer les sources se trouvant dans votre environnement de développement faites : -```bash -root@yunohost:/yunohost/# ./ynh-dev deploy -``` +- 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. -
-Attention : pour yunohost-admin vous devez avoir compilé le js avec gulp au préalable -
+- 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"`. -
-Note : vous pouvez sélectionner les paquets à déployer exemple : `./ynh-dev deploy yunohost yunohost-admin` -
+##### Helpers / style de code -##### Lancer la postinstall -Avec VirtualBox/Vagrant -```bash -root@yunohost:/yunohost/# yunohost tools postinstall -``` +- Pour gérer les exceptions, il existe un type `MoulinetteError()` -##### Récupérer l’IP de la vm et paramétrer son `/etc/hosts` -si vous ne connaissez pas l’IP de votre vm : -```bash -root@yunohost:/yunohost/# ./ynh-dev ip -172.17.0.1 -``` +- 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/) ! -Pour tester dans votre navigateur vous pouvez modifier votre fichier `/etc/hosts` afin de faire pointer votre domaine sur la bonne adresse IP. Par exemple en y ajoutant une ligne semblable à celle-ci : -```bash -172.17.0.1 exemple.local -``` +- 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". + +##### N'oubliez pas + +- (Peut-être plus nécessaire) À chaque fois que vous modifiez l'actionsmap, il + faut forcer le rafraîchissement du cache avec : + `rm /var/cache/moulinette/actionsmap/yunohost.pkl` + +### Travailler sur l'interface d'administration web + +- Allez dans `/vagrant/yunohost-admin/src/`. + +- Exécutez `/vagrant/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 requete `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` contiens 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 traîter 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 êtres 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 : + - Pour une nouvelle fonctionnalité ou amélioration : `enh-TICKETREDMINE-description-fonctionnalité` + - Pour une correction de bug : `fix-REDMINETICKET-description-correctif` + - `TICKETREDMINE` est optionnel et correspond au numéro du ticket sur RedMine + +- 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 `testing` (?) ! + + + -##### Déployer les sources au fur et à mesure des modifications -```bash -root@yunohost:/yunohost/# ./ynh-dev watch -``` -Astuce : dans le cas de modification sur yunohost-admin, cette commande est très pratique couplée avec un `gulp watch` sur la machine hôte. diff --git a/diagnostic.md b/diagnostic.md index ce3be89d..bca8da4b 100644 --- a/diagnostic.md +++ b/diagnostic.md @@ -48,7 +48,6 @@ You can also redirect ports manually to your server's local IP address on this r ### 4. Do your router has hairpinning ? -If the server is accessible from outside your local network, but unreachable with its domain name on the local network, then your router probably lacks of hairpinning. - -You cannot avoid that in a simple way. If you know how to do it, just configure the `/etc/hosts` of your local clients to access your server with the local IP. Else, retry the installation with a **.nohost.me** or **.noho.st** domain. +If the server is accessible from outside your local network, but unreachable with its domain name on the local network, then your router probably lacks of hairpinning. +Here is a [tutorial](dns_local_network) to access to your server on a local network and bypass hairpinning problem. The tutorial propose in first solution to create a redirection with DNS of the ISP box and on second solution to modify `hosts` file of **clients** to say to access the **server** via it's local IP address. First solution is preferable because it's not needed to modify `hosts` files on every computer of the local network, if using many clients. diff --git a/diagnostic_fr.md b/diagnostic_fr.md index e21ccade..d3cd00c5 100644 --- a/diagnostic_fr.md +++ b/diagnostic_fr.md @@ -46,7 +46,7 @@ Vous pouvez également rediriger les ports manuellement vers l’adresse IP loca ### 4. Est-ce que votre box/routeur fait du hairpinning ? -Si le serveur est accessible de l’extérieur, mais inatteignable via son nom de domaine dans votre réseau local, votre box/routeur ne fait probablement pas correctement de hairpinning. +Si le serveur est accessible de l’extérieur, mais inatteignable via son nom de domaine dans votre réseau local, votre box/routeur ne fait probablement pas correctement de hairpinning. Voici un [tutoriel](dns_local_network_fr) pour pouvoir accéder à son serveur en réseau local et contourner le problème de hairpinning. Le tutoriel propose en première solution de mettre en place une redirection avec le DNS de la box et en seconde solution de modifier le fichier `hosts` des **clients** pour indiquer qu’il doit accéder au **serveur** via son IP locale. La première solution est préférable car il ne nécessite pas de modifier le fichier `hosts` sur chacun des clients du réseau local. diff --git a/dns_nohost_me_fr.md b/dns_nohost_me_fr.md index 32f69476..1b7107c0 100644 --- a/dns_nohost_me_fr.md +++ b/dns_nohost_me_fr.md @@ -1,8 +1,40 @@ # Noms de domaines nohost.me +### Présentation + +Afin de rendre l'auto-hébergement le plus accessible possible, YunoHost offre un service de DNS dynamique par l'intermédiaire des noms de domaine `nohost.me` et `noho.st`. Si vous n'avez pas de nom de domaine, vous pouvez donc obtenir un sous-domaine de type `mondomaine.nohost.me` ou `mondomaine.noho.st`. Pour profiter de ce service, choisissez un domaine se terminant en `.nohost.me` ou `.noho.st`, il sera automatiquement rattaché à votre serveur YunoHost, et vous n’aurez pas d’étape de configuration supplémentaire. + + +### Obtenir un domaine + +##### Depuis l'interface d'administration +Vous pouvez obtenir un domaine directement depuis l'interface d'administration de YunoHost, en vous rendant dans le menu "Domaines" et en cliquant sur le bouton "Ajouter un domaine" : + + + +##### En ligne de commande +Après vous être connecté à votre serveur YunoHost, entrez la commande (en remplaçant `mondomaine` par le domaine que vous souhaitez acquérir) : + +```bash +sudo yunohost domain add mondomaine.nohost.me +``` + +Vous pouvez ensuite vérifier la création du domaine avec la commande : + +```bash +sudo yunohost domain list +``` + + +### Récupérer un domaine nohost.me ou noho.st + +Il peut arriver qu'une mise à jour des DNS du domaine soit nécessaire (par exemple lors d'un changement de machine), pour cela vous pouvez poster votre demande de réinitialisation sur le forum, [un fil est dédié à ce sujet](https://forum.yunohost.org/t/nohost-domain-recovery/442). + + ### Sous-domaines -Les noms de domaines `nohost.me` et `noho.st` permettent d'avoir uniquement un sous-domaine du type `pseudo.nohost.me`. -Bien qu'il soit possible d'installer des applications sur des sous-domaines (pour avoir l'application Owncloud accessible -depuis une adresse du type `cloud.mondomaine.org`), il n’est pas possible d’avoir un sous-sous-domaine tel `monapplication.pseudo.nohost.me`. +Le service de domaines `nohost.me` et `noho.st` n'autorise pas la création de sous-domaines. + +Même si YunoHost permet l'installation d'applications sur des sous-domaines (par exemple avoir l'application Owncloud accessible depuis l'adresse `cloud.mondomaine.org`), cette fonctionnalité n'est pas permise avec les domaines `nohost.me` et `noho.st` et il n’est pas possible d’avoir un sous-sous-domaine tel `monapplication.mondomaine.nohost.me`. + Pour pouvoir profiter des applications installables uniquement à la racine d’un nom de domaine, il faut avoir son propre nom de domaine. diff --git a/hardware.md b/hardware.md index bca8adc9..28bf881d 100644 --- a/hardware.md +++ b/hardware.md @@ -1,21 +1,21 @@ # Hardware -Every commonly used machine kind is compatible with YunoHost. -It is important to identify your machine kind before proceeding to the installation. +YunoHost is compatible with most of the hardware. +Before proceeding to the installation it is important to identify the model of your computer. -*Click on the corresponding guide.* +*Click on your hardware's guide.* | Arch | Hardware examples | Installation guide | |------|-----------------------|----------------------| -| **x86** | Desktops, Laptops, Mac Intel (after 2007), netbooks, nettops, etc. | [Install via CD/USB](/install_iso) | +| **x86** | Desktops, Laptops, Intel Mac (after 2007), netbooks, nettops, etc. | [Install via CD/USB](/install_iso) | | **armhf** | [ARM board](install_on_arm_board), [Raspberry Pi](/install_on_raspberry), Cubox, Olimex, Beagleboard, etc. | [Install on ARM Debian](/install_on_debian) | ### Minimum requirements - 500MHz CPU -* 256Mo RAM -* 4Go storage space +* 256MB RAM +* 4GB storage capacity ### Recommended * Recent x86 computer, silent and low consumption. -* 512Mo RAM in order to run all the services and apps properly -* 20Go storage in order to store more mails and documents +* 512MB RAM in order to run all the services and apps properly +* 20GB storage in order to store more mails and documents diff --git a/images/dns_nohost_me.png b/images/dns_nohost_me.png new file mode 100644 index 00000000..e28e8c2a Binary files /dev/null and b/images/dns_nohost_me.png differ diff --git a/index.md b/index.md index 93cae4f2..d6db518a 100644 --- a/index.md +++ b/index.md @@ -42,7 +42,7 @@
- + Try it Get started

YunoHost v2.4

@@ -95,6 +95,7 @@ Documentation Get involved Forum + Chat rooms Latest news Support diff --git a/index_fr.md b/index_fr.md index 6f354ac5..9933ac45 100644 --- a/index_fr.md +++ b/index_fr.md @@ -38,7 +38,7 @@
- + Essayer Installer

YunoHost v2.4

@@ -94,6 +94,7 @@ Documentation Comment contribuer Forum + Salons de discussions Dernières nouvelles Support diff --git a/install.md b/install.md index 10eecc57..0e06fdd2 100644 --- a/install.md +++ b/install.md @@ -1,12 +1,12 @@ # Installation guide -You have several ways to install YunoHost. The process may slightly differs whether it takes place at home or if you want to do it remotely, and regarding the hardware used: **[See the requirements](/hardware)** +There are multiple ways to install YunoHost. The process may slightly differs whether it takes place at home or if you want to do it on a remote server, and regarding the hardware used: **[See the requirements](/hardware)** -This page lists few installation guides. +This page lists a few installation guides. --- -

Give a try

+

Give it a try

@@ -52,7 +52,7 @@ This page lists few installation guides. --- -

Virtually

+

On a virtual machine/container

@@ -74,7 +74,7 @@ This page lists few installation guides. --- -

Remotely

+

On a remote server

@@ -94,7 +94,6 @@ This page lists few installation guides.

On Debian

-If you have already installed **Debian 8** (Jessie) on a server, you are able to **[install YunoHost via script](/install_on_debian)**. +If you have already installed **Debian 8** (Jessie) on a server, you'll be able to **[install YunoHost with a simple script](/install_on_debian)**. - diff --git a/install_iso.md b/install_iso.md index 63b981a5..0b0fddee 100644 --- a/install_iso.md +++ b/install_iso.md @@ -2,21 +2,21 @@ *Find other ways to install YunoHost **[here](/install)**.* -### Pre-requisite +### Requirements -
This images are based on **Debian Wheezy**. Wheezy **won't be maintained** with YunoHost 2.4.
-It's **strongly adviced** to install YunoHost on **Debian Jessie** with the **[install script](/install_on_debian_en)**.
+
These images are based on **Debian Wheezy**. Wheezy **won't be maintained** with YunoHost 2.4.
+It is **strongly recommended** to install YunoHost on **Debian Jessie** with the **[install script](/install_on_debian_en)**.
-* An x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop. -You can reuse any computer with **256MB RAM or more**. +* A x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop. +You can use any computer with **256MB RAM or more**. * Another computer to read this guide and access to your server. * A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth -* A **USB key** of at least 1GB capacity **OR** a standard **blank CD** -* One of the latest **YunoHost ISO images**, available here (take the 32 bits one if you don't know which one to choose): +* A **USB stick** of at least 1GB capacity **OR** a standard **blank CD** +* One of the latest **YunoHost ISO images**, available here (take the 32 Bits one if you don't know which one to choose):
Torrent:
    @@ -42,10 +42,10 @@ You can reuse any computer with **256MB RAM or more**. --- -For connecting directly on your computer or with [SSH](/ssh) (only local): +To connect directly to your computer or with [SSH](/ssh) (only on local network: * User: **root** * Password: **yunohost** --- -***If you need help during one of these steps, do not hesitate to use [our support tools](/support).*** +***Need help during one of these steps? [Get support!](/support)*** diff --git a/install_iso_fr.md b/install_iso_fr.md index 54301bc4..a2f4850b 100644 --- a/install_iso_fr.md +++ b/install_iso_fr.md @@ -41,7 +41,7 @@ Il est **fortement conseillé** d’installer YunoHost sur **Debian Jessie** ave --- -Pour se connecter directement sur l’ordinateur (uniquement en local) : +Pour se connecter directement sur l’ordinateur (uniquement en local) : * Utilisateur : **root** * Mot de passe : **yunohost** diff --git a/install_on_arm_board.md b/install_on_arm_board.md index 463a317b..8b56085a 100644 --- a/install_on_arm_board.md +++ b/install_on_arm_board.md @@ -7,9 +7,9 @@ -* An ARM board with 500MHz CPU and 512Mo RAM. -* A micro SD card: **4GB** capacity (or more) and **class10** speed rate are highly recommended. -* A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth. +* An ARM board with 500MHz CPU and 512MB RAM. +* A micro SD card: **4GB** capacity (or more), **class10** speed rate is highly recommended. +* A [reasonable ISP](/isp), preferably with a good and unlimited upload bandwidth. --- @@ -28,7 +28,7 @@ --- -#### Recommended after post-installation +#### Recommended after running the post-installation * Use [SSH authentication via key](security) --- @@ -38,4 +38,4 @@ --- -***If you need help during one of these steps, do not hesitate to use [our support tools](/support).*** +***Need help during one of these steps? [Get support!](/support)*** diff --git a/install_on_debian.md b/install_on_debian.md index 3e900f57..599f8671 100644 --- a/install_on_debian.md +++ b/install_on_debian.md @@ -2,7 +2,7 @@ *Find other ways to install YunoHost **[here](/install)**.* -### Pre-requisite +### Requirements @@ -10,7 +10,7 @@ An ARM box, a VPS, a dedicated server, a standard x86 computer, an old Macintosh * with **Debian 8** (Jessie) installed * connected to the Internet -* with a **root access** directly or via SSH +* with a direct **root access** or via SSH @@ -24,5 +24,4 @@ An ARM box, a VPS, a dedicated server, a standard x86 computer, an old Macintosh --- -***If you need help during one of these steps, do not hesitate to use [our support tools](/support).*** - +***Need help during one of these steps? [Get support!](/support)*** diff --git a/install_on_raspberry.md b/install_on_raspberry.md index be5d0317..fc27d7bc 100644 --- a/install_on_raspberry.md +++ b/install_on_raspberry.md @@ -2,21 +2,21 @@ *Find other ways to install YunoHost **[here](/install)**.* -## Pre-requisite +## Requirements - A Raspberry Pi model 1, 2 or 3 -- An SD card: **4GB** capacity (or more) and **class10** speed rate are highly recommended -- An other computer to read this guide and access to your Raspberry Pi -- A screen and a keyboard are recommended to control your Raspberry Pi if a problem occurs. -- A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth +- A SD card: **4GB** capacity (or more) and **class10** speed rate is highly recommended +- A different computer to read this guide and access your Raspberry Pi +- A screen and a keyboard, recommended if a problem occurs and you want to control your Raspberry Pi +- A [reasonable ISP](/isp), preferably with a good and unlimited upload bandwidth - **YunoHost Raspberry Pi images**, available here: - [Official Wheezy/YunoHost 2.2 created the 4th June 2015](https://build.yunohost.org/yunohost-rpi2_wheezy.7z) - [Non-official Jessie/YunoHost 2.2 created the 5th December 2015](https://forum.yunohost.org/t/building-a-new-image-for-raspberry-debian-jessie-fr-en/1101/2) -
    **This two images are old**. Nobody is maintaining a YunoHost image for Raspberry Pi. You could [maintain an image](build_arm_image_en) for YunoHost project.
    +
    **This two images are old**. YunoHost image for Raspberry Pi is not maintained, feel free to contribute and contact us if you would like to [maintain an image](build_arm_image_en) for YunoHost project.
    --- @@ -31,7 +31,7 @@ --- -### Recommended after post-installation +### Recommended after running the post-installation * Connect via SSH: **root@IP.OF.RPI** (password: **yunohost**) * Change root password: `passwd root` @@ -42,5 +42,4 @@ #### Build image * [Create a Raspberry Pi image](/build_arm_image_en) -***If you need help during one of these steps, do not hesitate to use [our support tools](/support).*** - +***Need help during one of these steps? [Get support!](/support)*** diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md index 5c1744fb..b267b44b 100644 --- a/install_on_virtualbox.md +++ b/install_on_virtualbox.md @@ -2,13 +2,13 @@ *Find other ways to install YunoHost **[here](/install)**.* -## Pre-requisite +## Requirements -* An x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine. -* The latest **YunoHost ISO image**, available here: - * **Torrent** ([i386](http://build.yunohost.org/yunohostv2-latest-i386.iso.torrent), [amd64](http://build.yunohost.org/yunohostv2-latest-amd64.iso.torrent)): share at least to ratio 1 to assure torrents sustainability +* A x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine. +* The latest **YunoHost ISO image**, available here: + * **Torrent** ([i386](http://build.yunohost.org/yunohostv2-latest-i386.iso.torrent), [amd64](http://build.yunohost.org/yunohostv2-latest-amd64.iso.torrent)): share at least to ratio 1 to assure the torrent's sustainability * **Direct download** ([i386](http://build.yunohost.org/yunohostv2-latest-i386.iso), [amd64](http://build.yunohost.org/yunohostv2-latest-amd64.iso)) @@ -28,7 +28,7 @@ ## 2. Change network settings -Go to **Settings** > **Network**, and your interface: +Go to **Settings** > **Network**: @@ -53,7 +53,7 @@ Start the virtual machine You will have to select your ISO image `yunohostv2-latest-amd64.iso` here, then you should see the YunoHost's boot screen.
    - +
    @@ -73,8 +73,8 @@ After the reboot, you will see this screen:
    * The password for root user is "yunohost" -* You can obtain further precisions on post-installation here: **[yunohost.org/postinstall](/postinstall)** +* You can get more information on the post-installation here: **[yunohost.org/postinstall](/postinstall)** --- -***If you need help during one of these steps, do not hesitate to use [our support tools](/support).*** +***Need help during one of these steps? [Get support!](/support)*** diff --git a/isp_fr.md b/isp_fr.md index 276aeab3..e840aa5d 100644 --- a/isp_fr.md +++ b/isp_fr.md @@ -18,9 +18,10 @@ Tous les fournisseurs d’accès à Internet [membres de la Fédération French | **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | | **[Port 25 ouvrable](email_fr)**
    (fermé par défaut) | ✔ | ✔ | ✘ | ✔ | ✔ | | **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔/✘ | ✘ | ✔ | ✔ | -| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)
    personnalisable ** | ✔ | … | ✘ | ✘ | ✘ | +| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)
    personnalisable ** | ✔ (sauf IPv6) | … | ✘ | ✘ | ✘ | | **[IP fixe](/dns_dynamicip_fr)** | ✔ | ✔/✘ | ✘ | ✔ | ✔ | | **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | … | … | +| **[Non listé sur le DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | ✘ | … | … | … | … | Pour une liste plus complète et précise, référez-vous à la très bonne documentation de [wiki.auto-hebergement.fr](http://wiki.auto-hebergement.fr/fournisseurs/fai#d%C3%A9tail_des_fai). **Astuce** : [FDN](http://www.fdn.fr) fournit des [VPN](http://www.fdn.fr/-VPN-.html) permettant de rapatrier une (ou plusieurs sur demande) IPv4 fixe et un /48 en IPv6 et ainsi « nettoyer » votre connexion si vous êtes chez l’un des FAI *limitants* du tableau ci-dessus. @@ -32,4 +33,4 @@ Pour une liste plus complète et précise, référez-vous à la très bonne docu | **Proximus** | BBox2 | oui (activé) | oui | **non** | **non** | **non** | | | BBox3 | oui (activé) | oui | **non** | **non** | **non** | | **Scarlet** | BBox2 | oui (activé) | oui | **non** | **non** | **non** | -**Proximus** ne serait pas ouvert à l’auto-hébergement. L’ouverture des ports serait plus difficile afin d’éviter tout SPAM. Il serait préférable de passer par [Neutrinet](http://neutrinet.be), un des [membres de la Fédération French Data Network](http://www.ffdn.org/fr/membres). \ No newline at end of file +**Proximus** ne serait pas ouvert à l’auto-hébergement. L’ouverture des ports serait plus difficile afin d’éviter tout SPAM. Il serait préférable de passer par [Neutrinet](http://neutrinet.be), un des [membres de la Fédération French Data Network](http://www.ffdn.org/fr/membres). diff --git a/orga/README.md b/orga/README.md new file mode 120000 index 00000000..aa9ff0cb --- /dev/null +++ b/orga/README.md @@ -0,0 +1 @@ +yunohost_project_organization_fr.md \ No newline at end of file diff --git a/orga/organization_schema.png b/orga/organization_schema.png new file mode 100644 index 00000000..e51b0d77 Binary files /dev/null and b/orga/organization_schema.png differ diff --git a/orga/yunohost_project_organization_fr.md b/orga/yunohost_project_organization_fr.md new file mode 100644 index 00000000..35aa1885 --- /dev/null +++ b/orga/yunohost_project_organization_fr.md @@ -0,0 +1,271 @@ +# Organisation du projet YunoHost + +## 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. +Le projet étant communautaire, les décisions prises hâtivement 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 et qu’elles soient suffisamment réfléchies. +Un conseil oriente l’évolution du projet YunoHost, et des groupes d’intérêts permettent de contribuer plus efficacement en fonction des domaines de prédilection de chacun. + +## Définition de YunoHost + +### Objectifs +Le but de YunoHost est de rendre accessibles au plus grand nombre l’installation et l’administration d’un serveur, sans délaisser la qualité et la fiabilité du logiciel. + +### Valeurs + +#### 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...). + + +#### Que chacun peut s'approprier + +Historiquement, le projet est très proche des initiatives visant à la création d'un internet neutre et décentralisé. Cette proximité, notamment avec la [FFDN](https://www.ffdn.org/), a amené une partie des contributeurs de YunoHost à créer la Brique Internet dont la mission est de faciliter l'auto-hébergement en fournissant une solution complète incluant service (via un VPN) et matériel. Cet aspect militant n'entrave pas des initiatives commerciales du logiciel pour lequel des entreprises pourraient proposer du support ou de l'hébergement. + + +## Organisation de YunoHost + +### Une structure ouverte, organisée par thèmes +L'objectif de l'organisation de YunoHost est de permettre au plus grand nombre de contribuer à l'amélioration du logiciel, que ce soit d'un point de vue technique (développement, packaging d'application) ou non (communication, assistance aux utilisateurs, documentation, etc.). Inspiré par différents projets passés en revue lors de l'événement (Kodi, Debian, Django, Fedora, Wikipédia, etc.) et des idées de contributeur de YunoHost (Jérôme, Bram, opi, scith, ju), il a été décidé d'une organisation en groupes spécialisés, fédérés par un conseil de contributeurs clés. + +Schéma d’organisation du projet YunoHost : + + + + +#### Définition et constitution des groupes +La constitution de groupes part du constat que YunoHost compte beaucoup de sous-projets (treize au total), mais que l'on ne sait pas toujours qui en est en charge ou qui y est compétent. Il est donc proposé une simplification de l'organisation des sous-projets en groupes thématiques : + +- ##### Groupe Core Dev + - Core YunoHost + - Moulinette + - Admin web + - SSOwat + - Dynette + - YNH-Dev + +- ##### Groupe Distribution + - Création et maintenance des images d'installation sur diverses architectures + - Distribution des images + - Gestion de la distribution des paquets Debian. + +- ##### Groupe Infra/Adminsys + - Infrastructure + - Site web (wiki, forum, salon de discussion, redmine, mumble) + - Démo + - Services + - [ip.yunohost.org](https://ip.yunohost.org/) et ip6.yunohost.org + - [yunoports](http://ports.yunohost.org/) + - nohost.me et noho.st + - [yunodash](https://dash.yunohost.org/) + - [yunopaste](http://paste.yunohost.org/) + +- ##### Groupe Apps + - Apps Officielles + - Apps Communautaires + - outils de développements d'app (package_checker, package linter) + +- ##### Groupe Communication + - Documentation + - Communication (annonce évolutions du projet sur le forum, réseaux sociaux) + - Traduction + - Entraide (support) + +Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe et de proposer une prise de décision à la suite d'une étape d'échange et d'amélioration de la proposition. +Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : + +- d'accueillir et fédérer les nouveaux contributeurs réguliers de son groupe +- de tenir informé le Conseil des décisions prises au sein du groupe (cf. point suivant) + +Le choix d'un outil de communication est laissé à chaque groupe en fonction de sa pertinence (forum, chat, ML, etc.). + +#### Définition et constitution du Conseil + +YunoHost grandissant, il est important de maintenir une cohérence entre tous les groupes, néanmoins il est impossible d'imposer à chacun des membres des groupes de s'intéresser ou de s'impliquer sur tous les aspects du projet (pour des raisons de temps et de compétences). Pour pallier à cela, il est proposé de créer un meta-groupe, où chaque groupe sera représenté par au moins un de ses membres : le Conseil. +Le Conseil est indépendant des groupes et réunit les contributeurs souhaitant s'impliquer le plus dans le projet, son rôle est de : + +- prendre les décisions importantes sur YunoHost qui ne dépendent pas d'un seul groupe (par exemple changer le moteur du wiki) +- faire des points réguliers sur l'ensemble du projet pour assurer sa cohésion. (réunion Mumble) +- solliciter l'ensemble de la communauté des contributeurs (ou même des utilisateurs) quand une décision divise les groupes et/ou le Conseil + +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...). + +### Un processus de prises de décision basé sur un consensus mou + +Les décisions à prendre peuvent être de deux ordres : + +1. pour un groupe (par "exemple merger une PR" serait affecté au groupe Dev tandis que "poster un tweet" serait de la responsabilité du groupe Communication) +2. pour l'ensemble du projet (par exemple décider d'une release avec des nouvelles fonctionnalités) + +Si un consensus sur une décision à prendre n'est pas trouvée au sein d'un groupe, ce dernier devra se tourner vers le Conseil pour en débattre. Si aucun consensus n'est trouvé, la proposition sera soumise au vote de tous les contributeurs. + +#### Le processus de prise de décision en détail + +##### 1) Initiation d'une décision à prendre + - peut-être initiée par n'importe qui suivant les mediums définis au sein de chacun des groupes (exemple : ouvrir une PR déclenche automatiquement ce processus) + - forcément publique à l'exception de situations bien définies (bug relatif à la sécurité critique ou vote sur les personnes) + - une date de clôture est automatiquement définie par type de proposition. La définition de la date remplie plusieurs fonctions : + - pouvoir laisser le temps à tout le monde de s'exprimer et ne pas prendre la décision trop vite + - maintenir un rythme car si le quota des réponses est rempli avant le temps imparti, il n'y a pas besoin d'attendre l'avis de tout les membres du groupe + - le quota est à évaluer en fonction des personnes inscrites au groupe (ou au Conseil selon la situation) qui ont manifesté leurs souhaits d'être considéré comme votant régulier => exemple kload peut vouloir donner son avis ponctuellement, mais à priori il ne souhaitera pas être considéré comme membre votant actif du Conseil + - pouvoir être repoussable sur simple demande d'une des personnes du groupe. Et seulement du groupe, pas tous les contrib. + +##### 2) Ouverture de la discussion, plusieurs réponses possibles : +Tout le monde peut changer de positions à n'importe quel moment, mais il est de bon ton de laisser au groupe le temps de réagir si cela est nécessaire (pas passer de positif à négatif puis rejeter la proposition 3 min après par exemple.) + +- réponses dites "simple" + - "je suis d'accord" -> vaut pour un avis positif + - "ça me semble bon, mais je préfère m'en remettre aux autres" -> si jamais il n'y a que des avis comme cela (ou le suivant) et au moins un avis positif et que la date est passé, la proposition est acceptée + - "pas d'avis" / "je ne suis pas en position de donner un avis pertinent (exemple: je sais pas coder en X)" +- réponses délayantes/différées + - demande de précisions, dans ce cas la décision est suspendue +- refus: tout refus doit être argumenté et justifié + +##### 3) Suspension/Repoussement + - tant qu'il n'y a pas de réponse, la décision est suspendue, au moment de la réponse, la date de clôture est automatiquement repoussé (si besoin) (pour une durée, à définir, moins longue que la première fois) + - situation où il y a des avis positifs et négatifs ou situation où il y a un choix à faire entre plusieurs propositions + +##### 4) Demande de modifications + - mais il se peut qu'il y ai discussion autour de ces modifications, si c'est le cas, cela devient une nouvelle décision à adjoindre à la liste des décisions à prendre et le processus s'y applique alors (et cela repousse la date) + - dans le cas contraire, un membre du groupe peut demander à ce que l'on fasse un vote qui portera sur la liste des possibilités qui font conflits + "ce vote est mal formulé, reformulons le" + - s'il n'y a pas assez de monde d'accord, la date est repoussée et un rappel doit être envoyé + - si le résultat est vraiment serré, le groupe est invité à rediscuter de la question si elle est importante, car cela pourrait être source de division et de tension à l'avenir + +##### 5) Clôture + - si le groupe est unanime dans sa décision + - que des avis positifs + - que des refus + - sans avis (s'en remet aux autres) + - Pour une décison mineure ou moyenne/standard, si le quota de réponse est atteint à la durée minimale et que le consensus est obtenu. + - s'il n'est pas possible d'avoir assez de monde (vacances, plus assez de membres du groupe pouvant avoir un avis) il est possible pour le groupe de demander la clôture même si le quota d'avis n'est pas atteint, il y a alors un nouveau décalage de la date et si cette nouvelle date est franchie, la proposition est clôturée selon les avis donnés. + +###### Micro décision: +- Décision prise et appliquée par un seul membre sans délai. Ce type de décision doit impérativement pouvoir être réversible, et peut être remise en question par n'importe quel membre du groupe. + +###### Décision Mineure: +- Durée initiale: 1 semaine. +- Durée minimale: 3 jours. +- Décalage, si nécessaire: 3 jours. +- Avis nécessaires: 2 membres du groupe (celui qui a initié cette prise de décision peux donner son avis). 3, dont 2 membres du groupe pour anticiper. +- Validation par vote (le cas échéant): 66% de votes positifs. + +###### Décision Standard/Moyenne: +- Durée initiale: 2 semaines. +- Durée minimale: 1 semaine. +- Décalage, si nécessaire: 1 semaine. +- Avis nécessaires: 50% des membres du groupe (celui qui a initié cette prise de décision peux donner son avis). 66% des membres du groupe pour anticiper. +- Validation par vote (le cas échéant): 75% de votes positifs. + +###### Décision Majeure : +- Durée initiale: 1 mois. +- Décalage, si nécessaire: 2 semaines. +- Avis nécessaires: 75% des membres du groupe (celui qui a initié cette prise de décision peux donner son avis). +- Validation par vote (le cas échéant): 90% de votes positifs. + +##### 6) Application +Alors un membre du groupe peut annoncer la décision comme effective (et procéder aux actions nécessaires comme releaser, merger, annonce, autre ...). Il est important que s'il y a besoin de certaines actions, des personnes se soient engagées à les faire, une décision sans désigner est moyennement utile + +## Composition des groupes + +- Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. +- Core Dev : AlexAubin, Bram, Ju, ljf, Moul, opi +- Apps : Bram, Ju, ljf, Maniack C, Moul, Scith, Tostaki +- Infra : Bram, Ju, Maniack C, Moul, opi +- Communication + - Com : Bram, Moul, ljf, opi + - Doc : Moul, Theodore + - Trad : Jean-Baptiste +- Distribution : Heyyounow + +## Tableau récapitualtif du nombre d'avis nécéssaire pour la prise de décision + +_Les valeurs sont arrondies (exemple: 5,4 => 5 et 5,5 => 6)._ + +| | **Mineure** | **Standard** | **Majeure** | +|----------------------|---------|----------|---------| +| **Conseil** | +| Clôture classique | 2 | 4 | 5 | +| Clôture anticipée | 3* | 5 | +| Clôture par vote | 5 | 5 | 6 | +| **Core Dev** | +| Clôture classique | 2 | 3 | 5 | +| Clôture anticipée | 3* | 4 | +| Clôture par vote | 4 | 5 | 5 | +| **Apps** | +| Clôture classique | 2 | 4 | 5 | +| Clôture anticipée | 3* | 5 | +| Clôture par vote | 5 | 5 | 6 | +| **Infra** | +| Clôture classique | 2 | 3 | 4 | +| Clôture anticipée | 3* | 3 | +| Clôture par vote | 3 | 4 | 5 | +| **Communication -> Com** | +| Clôture classique | 2 | 2 | 3 | +| Clôture anticipée | 3* | 3 | +| Clôture par vote | 3 | 3 | 4 | +| **Communication -> Doc** | +| Clôture classique | 1 | 1 | Conseil | +| Clôture anticipée | 2* | 2* | +| Clôture par vote | Conseil | Conseil | Conseil | +| **Distribution** | +| Clôture classique | 1 | Conseil | Conseil | +| Clôture anticipée | 1 | Conseil | +| Clôture par vote | 1 | Conseil | Conseil | + +\* dont 1 avis qui peut être externe au groupe + +Pour la traduction, le processus reste à adapter. + +Pour la doc, le nombre d'avis pour la cloture anticipée d'une décision mineure est pour le moment réduit (vu qu'il n'y a que 2 personnes dans le groupe). Les autres types de décisions sont prises par le conseil. + +Pour le groupe distribution, étant donné qu'il n'y a pour l'instant que Heyyounow, le Conseil sera sollicité pour les décisions Standard ou Majeure. + +### 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 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?) +- Let's Encrypt +- Nouveau système pour la documentation +- Amélioration de la documentation +- Migration du serveur XMPP +- 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 + +#### Groupe Dev + - Comment gérer les pull request ? + - 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 + +#### Groupe Communication +- Rapport de bug à partir du forum +- Faire en sorte de nettoyer le forum pour éviter le bruit +- Proposition de supprimer le salon de support +- Comment rendre le forum plus actif et central +- Comment s'organiser pour les privilèges sur le forum (si les groupes veulent voter sur le forum) + +#### Autres +- Demande sur le forum avec notification des membres du Conseil et des représentants des groupes d’intérêts concernés. +- Vote sur deux semaines par un post sur le forum +- Créer quatre canaux pour le Dev, les Apps, la Communication et l'Infrastructure +- La release devrait être validée par l'ensemble des 4 (ou 5) groupes d’intérêts +- Communication en français et en anglais +- Annuaire ou contact des groupes pour les nouveaux arrivants. Voir peut-être annuaire tout court pour savoir qui fait quoi. https://yunohost.org/#/contribs_fr à compléter. Et à mettre en avant. +- Proposition de laisser les membres YunoHost s'auto déterminer -> Comment gérer les accès ? + +## Moyens de communication actuels + +- Rencontres à des évènements. +- Réunions hébdomadaires 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). +- [Salons discussions XMPP](https://yunohost.org/#/chat_rooms_fr) diff --git a/packaging_apps.md b/packaging_apps.md index ab2a6264..6f13c7e3 100644 --- a/packaging_apps.md +++ b/packaging_apps.md @@ -1,6 +1,6 @@ # App packaging -This document aimed to learn you how to package an application for YunoHost. +The purpose of this document is to teach you how to package an application for YunoHost. ### Requirements To package an application, here are the requirements: @@ -63,11 +63,11 @@ Note that it also works with a Git URL: yunohost app install https://github.com/author/my_app_package.git ``` -### Enhance package -Here is a list of best practices for application install scripts : +### Packaging best practices +Here is a list of best practices for application install scripts: * scripts should use `sudo cp -a ../sources/. $final_path` instead of `sudo cp -a ../sources/* $final_path`; * install script must contain support in case of script errors to delete residuals files thanks to `set -e` and [trap](packaging_apps_trap_fr); -* install script should use command line method instead of curl call through web install form; +* install script should use the command-line method instead of calls to curl through web install form; * install script should save install answers; * application sources should be checked with a control sum (sha256, sha1 or md5) or a PGP signature; * scripts should be tested on Debian Jessie as well as 32 bits, 64 bits and ARM architectures; @@ -76,18 +76,18 @@ Here is a list of best practices for application install scripts : ### Package script checker Package checker -This is a Python script which check: +This Python script checks: * that the package is up to date wich last specifications * that all files are present -* that the manifest don't have syntax error -* that scripts exit well before modifing the system during verifications. +* that the manifest doesn't have syntax errors +* that scripts exit well before modifing the system during verification. ### Publish and ask for testing your application -* Publishing a [post on the Forum](https://forum.yunohost.org/) with the [`App integration` category](https://forum.yunohost.org/c/app-integration), to ask tests and returns on your application. +* Publishing a [post on the Forum](https://forum.yunohost.org/) with the [`App integration` category](https://forum.yunohost.org/c/app-integration), to ask for testing and feedback on your application. -* Ask to add your application in the [app repository](https://github.com/YunoHost/apps) to be displayed in the [non-official apps list](apps_in_progress_en). Precise his progress state: `notworking`, `inprogress`, or `working`. +* Ask your application to be added to the [app repository](https://github.com/YunoHost/apps) to be displayed in the [non-official apps list](apps_in_progress_en). Specify its progress state: `notworking`, `inprogress`, or `working`. -- Subscribe to the [Apps mailing list](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) to be informed about packaging evolutions. +- Subscribe to the [Apps mailing list](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) to be informed about packaging evolution. ### Officalization of an application -To become an official application, it must be enough tested, stable and should work on 64 bits, 32 bits et ARM processor architectures, and on Debian Jessie. If you think those conditions are met, ask for [official integration](https://github.com/YunoHost/apps) of your application. +To become an official application, it must be tested well enough, be stable and should work on 64 bits, 32 bits et ARM processor architectures, and on Debian Jessie. If you think those conditions are met, ask for [official integration](https://github.com/YunoHost/apps) of your application. diff --git a/packaging_apps_fr.md b/packaging_apps_fr.md index bbfad997..e61519cd 100644 --- a/packaging_apps_fr.md +++ b/packaging_apps_fr.md @@ -8,6 +8,8 @@ Pour packager une application, voici les prérequis : * Maîtriser un minimum `git`, le Shell et d’autres notions de programmation ; * Une [machine virtuelle ou sur un serveur distant](/install_fr) ou un [environnement de développement](https://github.com/yunohost/ynh-dev) pour packager et tester son paquet. +Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/packaging_apps_start_fr). + ### Contenu Un paquet YunoHost est composé : diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 06934630..7a2a1b33 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -111,9 +111,30 @@ Ces dépôts ont plusieurs fonctions : Pour les listes `official.json` et `community.json`, l'inscription se fait sur [le dépôt git "apps"](https://github.com/YunoHost/apps). -Pour la liste d'application du projet LaBriqueInter.net, l'inscription se fait en consultant [la doc du dépôt du site internet](https://github.com/labriqueinternet/labriqueinter.net). - #### YEP 1.3 - Indiquer la licence associée au paquet | brouillon | AUTO | WORKING | +La licence du paquet est à indiquer dans un fichier `LICENSE` à la racine du paquet. Attention à ne pas confondre avec la licence de l'application qui va être installée dont l'acronyme est à renseigner dans le champ `license` du manifeste. + +Les listes d'applications official.json et community.json n'acceptent que les paquets dont la licence est libre, de même pour la licence de l'application contenue. Certaines applications libres nécessitent des dépendances non-libres (exemple: mp3, drivers, etc.). Dans ce cas, il faut ajouter `&dep-non-free` à l'acronyme et si possible donner des précisions dans le README.md du paquet, l'intégration sera dans ce cas acceptée au cas par cas. + +Dans le futur, YunoHost affichera sans doute des détails sur la licence de l'application. Pour y parvenir, l'acronyme doit être celui issu de cette [liste de licences répertoriées du SPDX](https://spdx.org/licenses/) (si il y a 2 acronymes, il faut prendre celui contenant le numéro de version). Pour plus de cohérence, la casse doit être respectée. + +Si la licence n'est pas présente dans la liste, dans ce cas il faut indiquer `free` ou `non-free` selon qu'elle est libre ou non et donner l'occasion à l'utilisateur de se renseigner dans le README.md (lien, explications, ...). + +Exemple: pour une licence `GNU Lesser General Public License (LGPL), version 3` l'acronyme est `LGPL-3.0` si toutefois des dépendances non libres sont utilisées dans ce cas il faudra mettre `LGPL-3.0&dep-non-free` dans le manifeste. + +Si une application a des modules liés avec une autre licence (Exemple: Odoo 9 LGPL-3.0 + un module sous licence AGPL-3.0 ), dans ce cas on indiquera les deux licences séparées par un `&`. + +Si deux applications distinctes sont dans le même paquet d'installation et ont des licences distinctes, dans ce cas on peut utiliser le `,` pour séparer les licences. + +Dans les deux cas, le mainteneur est encouragé à réfléchir à la possibilité de créer deux paquets distincts. Le manifeste de chaque application permet de poser des questions de type `app` de façon à faire référence à une autre application déjà installée. + +Rappel: une question de type `app` prend pour réponse l'identifiant d'une des apps déjà installée. + +Quelques liens intéressants pour aider au choix de licence: +* [Des fiches explicatives sur les licences libres](https://www.inria.fr/content/download/5896/48452/version/2/file/INRIA_recueil_fiches_licences_libres_vf.pdf) +* [La documentation sur les licences du projet GNU](https://www.gnu.org/licenses/licenses.fr.html) +* [Un guide du projet GNU pour aider au choix d'une licence](https://www.gnu.org/licenses/license-recommendations.fr.html) + #### YEP 1.4 - Informer sur l'intention de maintenir un paquet | brouillon | manuel | WORKING | #### YEP 1.5 - Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | #### YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | diff --git a/packaging_apps_start_fr.md b/packaging_apps_start_fr.md new file mode 100644 index 00000000..cdd8d7fc --- /dev/null +++ b/packaging_apps_start_fr.md @@ -0,0 +1,53 @@ +Petite introduction au packaging d'application, pour comprendre de quoi nous parlons et comment ça marche. +Cette documentation s'adresse avant tout aux packageurs débutants qui ne sont pas à l'aise avec les concepts de shell, parsing et administration système de manière générale. + +Nous verrons ici ce qu'est un package d'application YunoHost, comment cela fonctionne, comment faire pour écrire un package et comment se lancer dans l'aventure sans être tout seul. + +### De quoi on parle en fait ? + +Avant de démarrer, la bonne question c'est "Qu'est-ce qu'un package d'application !?" + +Pour répondre à cette question, il faut revenir à ce qu'est YunoHost, c'est un système d’exploitation serveur visant à simplifier l’auto-hébergement de services Internet. Et pour faire ça, YunoHost met à disposition, entre autre, une interface d'administration permettant d'installer des applications en quelques clics. +Or si vous avez déjà installé une application web à la main, vous savez qu'en réalité c'est bien plus compliqué que quelques clics sur une jolie interface. + +C'est là que le package d'application entre en jeu, c'est un ensemble de scripts qui automatise l'installation d'une application web et la préconfigure pour que l'utilisateur final n'ai besoin que de quelques clics pour l'installer facilement. + +### Mais alors, comment ça marche ? + +Du point de vue de l'utilisateur, c'est très simple, on choisit une application, on répond à quelques questions, ça mouline et c'est prêt. + +Mais il se passe bien plus de choses derrière. +Tout d'abord, lorsque l'application est sélectionnée, YunoHost va aller chercher son package sur Github, par exemple l'application [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh). +Ensuite, YunoHost lit le fichier manifest.json pour connaître les questions à poser à l'utilisateur. + +Mais ces questions anodines sont très importantes, on retrouvera souvent le domaine sur lequel installer l'application, l'adresse à laquelle elle sera accessible, l'utilisateur qui en sera l'administrateur et la langue par défaut de l'application. + +Ce sont là des éléments essentiels pour configurer correctement notre application web lors de son installation. Pour ce faire, YunoHost va récupérer les réponses données par l'utilisateur et les envoyer au script install qui se trouve dans le dossier scripts du package. + +Le script install va se charger d'installer l'application, en prenant en compte les réponses données par l'utilisateur. Ce script va simplement faire ce que vous auriez fait si vous aviez installé l'application à la main. + +Si par la suite l'utilisateur souhaite supprimer l'application, YunoHost utilisera le script remove du dossier script, qui se chargera à la place de l'utilisateur de supprimer l'application, ses dossiers et tout ses fichiers de configuration. + +### Qu'il y a-t-il dans ces scripts pour que tout soit si simple pour l'utilisateur ? + +Les scripts d'un package d'application sont simplement des commandes bash les unes à la suite des autres. + +#### ... Et c'est quoi une commande bash ? + +Une commande [bash](https://fr.wikipedia.org/wiki/Bourne-Again_shell) c'est une ligne de texte qui sera interprétée et produira un résultat. C'est ce qu'on a l'habitude d'appeler la ligne de commande. +Or puisque votre serveur, sur lequel est installé YunoHost, ne dispose pas d'une interface graphique, vous n'avez que la ligne de commande de disponible. Vous l'atteignez en général après vous être connecté avec [ssh](/ssh_fr). + +Les scripts d'un package ne sont donc qu'une succession de commandes bash, comme si vous les aviez tapées directement dans la console ssh pour installer l'application. + +Pour savoir quoi écrire dans un script bash, je vous conseille de commencer par la lecture d'un [tuto simple](https://debian-facile.org/doc:programmation:shells:debuter-avec-les-scripts-shell-bash). Et si vous avez vraiment envie de lire, il y a aussi un [tuto plus complet](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/index.html) + +### Ok, je crois que j'ai compris ! Par où on commence? + +Avant d'envisager de faire un package d'application, il faut réussir à installer correctement la dites application. Car le script ne fera que ce que vous lui direz de faire. + +Ensuite, il faut aller lire (et oui encore) la documentation sur le packaging, mais la vrai cette fois, [celle qui emploie des mots bizarres](/packaging_apps_fr). +Mais maintenant vous devriez les comprendre tout ces mots étranges. + +Mais heureusement, vous n'êtes pas seul pour affronter cette épreuve titanesque, il y a d'autres packageurs que vous pouvez venir rencontrer sur le [forum](https://forum.yunohost.org/c/apps-packaging) et sur le [salon de discussion](xmpp:apps@conference.yunohost.org?join). +N'hésitez pas à venir poser des questions sur ce que vous ne comprenez pas, il y aura toujours quelqu'un pour vous répondre. +Et vous constaterez bien vite que ce n'est pas si difficile de packager une application. diff --git a/project_organization_fr.md b/project_organization_fr.md new file mode 120000 index 00000000..87648596 --- /dev/null +++ b/project_organization_fr.md @@ -0,0 +1 @@ +orga/yunohost_project_organization_fr.md \ No newline at end of file diff --git a/security.md b/security.md index 597b55bb..9720ec12 100644 --- a/security.md +++ b/security.md @@ -10,6 +10,8 @@ Two things remain important to note: *If you need some advises, do not hesitate to [ask us](/support).* +*To talk about security flaws, contact the [YunoHost security team](/security_team).* + --- ## Improve security @@ -121,3 +123,4 @@ Some [pentests](https://en.wikipedia.org/wiki/Penetration_test) have been done o - [1) Preparation](https://blog.exadot.fr/2016/07/03/pentest-dune-instance-yunohost-1-preparation) - [2) The functionning](https://blog.exadot.fr/2016/07/12/pentest-dune-instance-yunohost-2-le-fonctionnement) - [3) Black Box Audit](https://blog.exadot.fr/2016/08/26/pentest-dune-instance-yunohost-3-audit-en-black-box) +- [4) Grey Box Audit](https://blog.exadot.fr/2016/11/03/pentest-dune-instance-yunohost-4-audit-en-grey-box) diff --git a/security_fr.md b/security_fr.md index 14b85ae7..188146b5 100644 --- a/security_fr.md +++ b/security_fr.md @@ -13,6 +13,8 @@ Deux points sont néanmoins importants à noter : *Si vous avez besoin de conseil, n’hésitez pas à [nous demander](/support_fr).* +*Pour discuter d'une faille de securité, contactez l'[équipe securité de YunoHost](/security_team_fr).* + --- ## Améliorer la sécurité @@ -129,3 +131,4 @@ Des [pentests](https://fr.wikipedia.org/wiki/pentest) ont été effectués sur u - [1) Préparation](https://blog.exadot.fr/2016/07/03/pentest-dune-instance-yunohost-1-preparation) - [2) Le fonctionnement](https://blog.exadot.fr/2016/07/12/pentest-dune-instance-yunohost-2-le-fonctionnement) - [3) Audit en Black Box](https://blog.exadot.fr/2016/08/26/pentest-dune-instance-yunohost-3-audit-en-black-box) +- [4) Audit en Grey Box](https://blog.exadot.fr/2016/11/03/pentest-dune-instance-yunohost-4-audit-en-grey-box) diff --git a/security_team.md b/security_team.md new file mode 100644 index 00000000..3b926fdb --- /dev/null +++ b/security_team.md @@ -0,0 +1,13 @@ +# Security team + +Contact the security team by mail: `security@yunohost.org`. + +We strongly advise you to encrypt your mail with GPG. Our public key is available on key servers. Below is our fingerprint + +```bash +gpg --fingerprint security@yunohost.org +pub 4096R/17351899 2016-07-01 + Empreinte de la clef = 6CBC 45EB A625 FBF3 513D 1227 749D 8972 1735 1899 +uid YunoHost Security +sub 4096R/446838AF 2016-07-01 +``` diff --git a/security_team_fr.md b/security_team_fr.md new file mode 100644 index 00000000..d125c1e1 --- /dev/null +++ b/security_team_fr.md @@ -0,0 +1,14 @@ +# Équipe securité + +Contactez l'équipe securité par email : `security@yunohost.org`. + +Nous vous recommandons fortement de chiffrer votre mail avec GPG. Notre clé +publique est disponible sur les serveurs de clés. L'empreinte est ci-dessous : + +```bash +gpg --fingerprint security@yunohost.org +pub 4096R/17351899 2016-07-01 + Empreinte de la clef = 6CBC 45EB A625 FBF3 513D 1227 749D 8972 1735 1899 +uid YunoHost Security +sub 4096R/446838AF 2016-07-01 +``` diff --git a/sitemap.md b/sitemap.md index 333e5d81..5e08e9b3 100644 --- a/sitemap.md +++ b/sitemap.md @@ -61,6 +61,7 @@ * [Add a certificate certified by an authority](/certificate) * [Regenerate self-signed certificate](/regenerate_certificate_en) * [Security](/security) + - [Contact security team](security_team) * [Troubleshooting guide](/troubleshooting_guide_en) * [YunoHost Tor Hidden Servicer](/torhiddenservice) * [Unblock an IP address with Fail2ban](/fail2ban_en) @@ -80,16 +81,18 @@ * [Contributor guide](/contribute) * Developement - * [Package new application](/packaging_apps) - * [Manifest](packaging_apps_manifest_en) - * [Scripts](packaging_apps_scripts_en) - * [Arguments management](packaging_apps_arguments_management_en) - * [Nginx configuration](packaging_apps_nginx_conf_en) - * [Multi-instance](packaging_apps_multiinstance_en) - * [Helpers](packaging_apps_helpers_en) - * [Trap usage](packaging_apps_trap_fr) - * [Applications in progress](/apps_in_progress_en) - * [Wishlist of applications](/apps_wishlist_en) + * Applications + * [Package new application](/packaging_apps) + * [Manifest](packaging_apps_manifest_en) + * [Scripts](packaging_apps_scripts_en) + * [Arguments management](packaging_apps_arguments_management_en) + * [Nginx configuration](packaging_apps_nginx_conf_en) + * [Multi-instance](packaging_apps_multiinstance_en) + * [Helpers](packaging_apps_helpers_en) + * [Trap usage](packaging_apps_trap_fr) + * [Applications in progress](/apps_in_progress_en) + * [Wishlist of applications](/apps_wishlist_en) + * [Contributing to the YunoHost core](/dev) * [Creation of system packages](/build_system_en) * [Creation of Debian packages](/build_packages_en) * [Create an ARM board image](/build_arm_image_en) @@ -106,8 +109,11 @@ * [Roadmap](/roadmap) * [Frequently asked questions](/faq_en) * [Contributors](contribs) + - [Project organization](project_organization_fr) * [Support](/support_en) * [Art Works](artworks_en) * [Blog](https://forum.yunohost.org/c/announcement) + - [Forum](https://forum.yunohost.org) + - [Chat rooms](chat_rooms_en) * [Communication](communication_en) * [Help](/help) diff --git a/sitemap_fr.md b/sitemap_fr.md index 8a732f75..5d027138 100644 --- a/sitemap_fr.md +++ b/sitemap_fr.md @@ -57,6 +57,7 @@ * [Connexion à son serveur avec SSH](/ssh_fr) * [Administration avec la Moulinette](/moulinette_fr) * [Administration web](/admin_fr) + * [Administration via l'API](/admin_api_fr) * [Changer le mot de passe d’administration](/change_admin_password_fr) * [Courrier électronique](email_fr) * [Configuration d’un client email](email_configure_client_fr) @@ -67,6 +68,7 @@ * [Ajouter un certificat d’une autorité](/certificate_fr) * [Régénérer le certificat auto-signé](/regenerate_certificate_fr) * [Sécurité](/security_fr) + - [Contacter l’équipe de sécurité](security_team_fr) * [Consulter les fichiers de log du système](/check_logfile_fr) * [Guide de dépannage](/troubleshooting_guide_fr) * [YunoHost service caché Tor](/torhiddenservice_fr) @@ -89,10 +91,11 @@ * [Guide du contributeur](/contribute_fr) * Développement - * [Créer un environnement de développement](dev_fr) + * [Créer un environnement de développement](ynh_dev_fr) * [Présentation du fonctionnement de YunoHost](/package_list_fr) * Applications : * [Packager des applications](/packaging_apps_fr) + * [Introduction](packaging_apps_start_fr.md) * [Manifeste](packaging_apps_manifest_fr) * [Scripts](packaging_apps_scripts_fr) * [Gestion des arguments](packaging_apps_arguments_management_fr) @@ -102,6 +105,7 @@ * [Usage de trap](packaging_apps_trap_fr) * [Packages d’applications en cours de développement](/apps_in_progress_fr) * [Liste de proposition d’applications](/apps_wishlist_fr) + * [Contribuer au cœur de YunoHost](/dev_fr) * [Création de paquets système](/build_system_fr) * [Création de paquets Debian](/build_packages_fr) * [Créer une image pour carte ARM](/build_arm_image_en) @@ -117,9 +121,12 @@ * [Journal des modifications v.2.2](/changelog_2_2_en) * [Feuille de route](/roadmap_en) * [Foire aux questions](/faq_fr) + - [Organisation du projet](project_organization_fr) * [Contributeurs](contribs_fr) * [Entraide - support](/support_fr) * [Blog](https://forum.yunohost.org/c/announcement) + - [Forum](https://forum.yunohost.org) + - [Salons de discussions](chat_rooms_fr) * [Conférences](/conf_fr) * [Communication extérieure](communication_fr) * [Travail artistique](artworks_fr) diff --git a/try.md b/try.md index f7aba71f..0352fe90 100644 --- a/try.md +++ b/try.md @@ -1,7 +1,7 @@ #Try YunoHost
    -**Note:** This demo server runs a **beta version** of the software and **will fail** from time to time. +**Note:** This demo server could be down from time to time.
    If it does not work, do consider [trying it at home](/try_at_home). @@ -24,5 +24,5 @@ If it does not work, do consider [trying it at home](/try_at_home).

    ***Demo server gracefully provided by -*** +Gitoyen***

    diff --git a/try_fr.md b/try_fr.md index 2462ea52..bd6c00e3 100644 --- a/try_fr.md +++ b/try_fr.md @@ -1,7 +1,7 @@ #Essayer YunoHost
    -**Note :** Cette démo tourne sous une **version bêta** du logiciel et **va cesser de fonctionner** de temps en temps. +**Note :** Cette démo peut cesser de fonctionner de temps en temps.
    Si cela ne fonctionne pas, vous pouvez [essayer chez vous](/try_at_home_fr). @@ -24,7 +24,7 @@ Si cela ne fonctionne pas, vous pouvez [essayer chez vous](/try_at_home_fr).

    ***Le serveur de démo est fourni généreusement par -*** +Gitoyen***

    diff --git a/ynh_dev_fr.md b/ynh_dev_fr.md new file mode 100644 index 00000000..fe8f99a9 --- /dev/null +++ b/ynh_dev_fr.md @@ -0,0 +1,91 @@ +## Créer un environnement de développement + +
    +Attention : cette page de documentation n’est plus à jour. Merci de vous référer à la [documentation du dépôt](https://github.com/YunoHost/ynh-dev). +
    + +Ce document a pour but de donner les clés pour créer un environnement de développement correct afin de développer sur le cœur de YunoHost. Il peut également vous permettre de tester vos applications que ce soit avec les versions `stable`, `testing`, `unstable` ou même des versions customisées issues des branches des dépôts. + +### Installation de l’environnement de développement +#### Installation du système de virtualisation +Installer, avec le gestionnaire de paquet de votre système d’exploitation, Vagrant. + +```bash +# Debian, Ubuntu, Mint +sudo apt-get install vagrant +# Fedora +sudo dnf install vagrant +``` + +#### Télécharger `ynh-dev` +
    +Attention : Cette partie est en cours de rédaction. La ligne de commande `ynh-dev` vient juste d’être créée il est possible qu’il y ait des manques. +
    + +Une ligne de commande `ynh-dev` a été créée afin de simplifier la gestion de votre environnement de développement. + +```bash +wget https://raw.githubusercontent.com/yunohost/ynh-dev/master/ynh-dev +chmod u+x ynh-dev +``` +Pour créer votre environnement, commencez par faire un `create-env` +```bash +./ynh-dev create-env ~/project/my/yunohost/env +``` +Cette sous commande va cloner les dépôts principaux au fonctionnement de YunoHost et les positionner en `unstable`. Si vous avez vos propres fork, vous pouvez ensuite faire ce qu’il faut pour changer l’origine et le remote repository. + +#### Usage +##### Lancer un container +Positionner vous dans votre environnement, puis créer et entrer dans une vm à l’aide de `ynh-dev run` +```bash +cd ~/project/my/yunohost/env +./ynh-dev run exemple.local stable8 +root@yunohost:/# cd yunohost +root@yunohost:/yunohost/# ls +Dockerfile LICENSE README.md SSOwat apps backup moulinette ynh-dev yunohost yunohost-admin yunohost-vagrant +``` + +##### Mettre à jour un container +Si la vm n’est pas à jour lancez un `ynh-dev upgrade` : +```bash +root@yunohost:/yunohost/# ./ynh-dev upgrade +``` + +##### Déployer les sources présentes dans votre environnement +Pour déployer les sources se trouvant dans votre environnement de développement faites : +```bash +root@yunohost:/yunohost/# ./ynh-dev deploy +``` + +
    +Attention : pour yunohost-admin vous devez avoir compilé le js avec gulp au préalable +
    + +
    +Note : vous pouvez sélectionner les paquets à déployer exemple : `./ynh-dev deploy yunohost yunohost-admin` +
    + +##### Lancer la postinstall +Avec VirtualBox/Vagrant +```bash +root@yunohost:/yunohost/# yunohost tools postinstall +``` + +##### Récupérer l’IP de la vm et paramétrer son `/etc/hosts` +si vous ne connaissez pas l’IP de votre vm : +```bash +root@yunohost:/yunohost/# ./ynh-dev ip +172.17.0.1 +``` + +Pour tester dans votre navigateur vous pouvez modifier votre fichier `/etc/hosts` afin de faire pointer votre domaine sur la bonne adresse IP. Par exemple en y ajoutant une ligne semblable à celle-ci : +```bash +172.17.0.1 exemple.local +``` + +##### Déployer les sources au fur et à mesure des modifications +```bash +root@yunohost:/yunohost/# ./ynh-dev watch +``` + +Astuce : dans le cas de modification sur yunohost-admin, cette commande est très pratique couplée avec un `gulp watch` sur la machine hôte.