mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
Merge branch 'master' into enh-consensual-yep
This commit is contained in:
commit
bc3a5b3a0f
54 changed files with 1109 additions and 207 deletions
|
@ -1,8 +1,7 @@
|
||||||
# YunoHost Documentation
|
# YunoHost Documentation
|
||||||
|
|
||||||
* [Web Site](https://yunohost.org/#/)
|
* [Web Site](https://yunohost.org)
|
||||||
* Based on [Simone](https://github.com/Kloadut/Simone)
|
* Based on [Simone](https://github.com/YunoHost/Simone)
|
||||||
|
|
||||||
Please report issues here (no registration needed):
|
Please report [issues on YunoHost bugtracker](https://dev.yunohost.org/projects/yunohost/issues) (no registration needed).
|
||||||
https://dev.yunohost.org/projects/yunohost/issues
|
|
||||||
|
|
||||||
|
|
42
admin_api_fr
Normal file
42
admin_api_fr
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
```
|
|
@ -2,9 +2,14 @@
|
||||||
|
|
||||||
*For want of anything better, here is an index of interesting pages for the YunoHost server's administrator.*
|
*For want of anything better, here is an index of interesting pages for the YunoHost server's administrator.*
|
||||||
|
|
||||||
* [What is Self-hosting](/self-hosting)
|
* [What is Self-hosting](/selfhosting)
|
||||||
* [Installation guide](/install)
|
|
||||||
* [Compatible hardware](/hardware)
|
* [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)
|
* [Available applications](/apps)
|
||||||
* [Administration interface usage](/admin)
|
* [Administration interface usage](/admin)
|
||||||
* [Command-line interface usage](/moulinette)
|
* [Command-line interface usage](/moulinette)
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
* [Orange](/isp_orange_fr)
|
* [Orange](/isp_orange_fr)
|
||||||
* [Free](/isp_free_fr)
|
* [Free](/isp_free_fr)
|
||||||
* [Administration web](/admin_fr)
|
* [Administration web](/admin_fr)
|
||||||
|
* [Administration via l'API](/admin_api_fr)
|
||||||
* [Sécurité](/security_fr)
|
* [Sécurité](/security_fr)
|
||||||
* [Authentification SSH par clé](/security_fr)
|
* [Authentification SSH par clé](/security_fr)
|
||||||
* [Modifier le port SSH](/security_fr)
|
* [Modifier le port SSH](/security_fr)
|
||||||
|
|
|
@ -5,11 +5,11 @@ Firefox Sync permits synchronize plugins, tabs, bookmarks, favorites, history ov
|
||||||
#### Firefox desktop
|
#### Firefox desktop
|
||||||
In Firefox URL bar put: `about:config`.
|
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
|
Replace the URL by: https://mydomain.tld/path/token/1.0/sync/1.5
|
||||||
|
|
||||||
Create an account at Mozilla: https://accounts.firefox.com/signup
|
Create an account at Mozilla: https://accounts.firefox.com/signup
|
||||||
|
|
||||||
#### Firefox mobile
|
#### Firefox mobile
|
||||||
Install the plugin `fxa-custom-server-addon`.
|
With the last version of firefox mobile it's same than for desktop.
|
||||||
|
|
|
@ -7,11 +7,11 @@ Configurer Firefox pour utiliser votre serveur pour la synchronisation.
|
||||||
#### Firefox bureau
|
#### Firefox bureau
|
||||||
Tapez `about:config` dans la barre d’URL.
|
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
|
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
|
Créez un compte chez Mozilla : https://accounts.firefox.com/signup
|
||||||
|
|
||||||
#### Firefox mobile
|
#### Firefox mobile
|
||||||
Installez le plugin `fxa-custon-server-addon`.
|
Avec la dernière version de firefox mobile c'est identique que firefox pour le bureau.
|
||||||
|
|
|
@ -31,7 +31,7 @@ N’hésitez pas à vous créer un compte GitHub pour faire part de vos remarque
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2>Applications dites fonctionnelles</h2>
|
<h2>Applications dites fonctionnelles</h2>
|
||||||
<p><b style="color: red">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.</b></p>
|
<p><b style="color: red">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.</b></p>
|
||||||
|
|
||||||
<div class="panel-group" id="app-accordion2-working"></div>
|
<div class="panel-group" id="app-accordion2-working"></div>
|
||||||
|
|
||||||
|
|
|
@ -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 selfhosted apps](https://github.com/Kickball/awesome-selfhosted)
|
||||||
- [List of awesome sysadmin apps](https://github.com/kahun/awesome-sysadmin)
|
- [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)
|
- [10er10](https://github.com/dready92/10er10)
|
||||||
|
- [Airtime](https://www.sourcefabric.org/en/airtime/)
|
||||||
- [Ajenti](http://ajenti.org)
|
- [Ajenti](http://ajenti.org)
|
||||||
- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog)
|
- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog)
|
||||||
- [Auth0 SSO Dashboard](https://github.com/auth0/auth0-sso-dashboard)
|
- [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)
|
- [Deluge](http://deluge-torrent.org) (with WebUI)
|
||||||
- [DemocracyOS](http://democracyos.org)
|
- [DemocracyOS](http://democracyos.org)
|
||||||
- [Discourse](http://discourse.org)
|
- [Discourse](http://discourse.org)
|
||||||
|
- [DNSchain](https://github.com/okTurtles/dnschain)
|
||||||
- [Emby](https://emby.media)
|
- [Emby](https://emby.media)
|
||||||
- [ERPnext](https://erpnext.com/download)
|
- [ERPnext](https://erpnext.com/download)
|
||||||
- [Ethersheet](https://ethersheet.org)
|
- [Ethersheet](https://ethersheet.org)
|
||||||
- [Fail2web](https://github.com/Sean-Der/fail2web)
|
- [Fail2web](https://github.com/Sean-Der/fail2web)
|
||||||
|
- [Ferment](https://github.com/mmckegg/ferment)
|
||||||
- [FileTea](https://filetea.me)
|
- [FileTea](https://filetea.me)
|
||||||
- [Flarum](http://flarum.org)
|
|
||||||
- [Fossil](http://www.fossil-scm.org)
|
- [Fossil](http://www.fossil-scm.org)
|
||||||
- [GetSimple CMS](http://get-simple.info)
|
- [GetSimple CMS](http://get-simple.info)
|
||||||
- [Git-annex](http://git-annex.branchable.com)
|
- [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)
|
- [Guacamole](http://guac-dev.org)
|
||||||
- [h5ai](http://larsjung.de/h5ai)
|
- [h5ai](http://larsjung.de/h5ai)
|
||||||
- [Hackpad](https://github.com/dropbox/hackpad)
|
- [Hackpad](https://github.com/dropbox/hackpad)
|
||||||
- [Hastebin](https://github.com/seejohnrun/haste-server)
|
|
||||||
- [Headphones](https://github.com/rembo10/headphones)
|
- [Headphones](https://github.com/rembo10/headphones)
|
||||||
- [Hi Buddy](http://hibuddy.monkeypatch.me)
|
- [Hi Buddy](http://hibuddy.monkeypatch.me)
|
||||||
- [Huginn](https://github.com/cantino/huginn)
|
- [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)
|
- [Known](https://withknown.com)
|
||||||
- [Koel](http://koel.phanan.net)
|
- [Koel](http://koel.phanan.net)
|
||||||
- [Kontalk](http://kontalk.org)
|
- [Kontalk](http://kontalk.org)
|
||||||
|
- [Koozip](http://koozic.net)
|
||||||
- [KrISS feed](https://github.com/tontof/kriss_feed)
|
- [KrISS feed](https://github.com/tontof/kriss_feed)
|
||||||
- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
|
- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
|
||||||
|
- [LiquidSoap](http://savonet.sourceforge.net/)
|
||||||
- [Logstalgia](http://logstalgia.io)
|
- [Logstalgia](http://logstalgia.io)
|
||||||
- [Loomio](https://www.loomio.org)
|
- [Loomio](https://www.loomio.org)
|
||||||
- [The Lounge](https://thelounge.github.io), cf. https://github.com/Kloadut/shout_ynh/issues/4
|
- [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)
|
- [Lufi](https://git.framasoft.org/luc/lufi)
|
||||||
- [MaidSafe](http://maidsafe.net)
|
- [MaidSafe](http://maidsafe.net)
|
||||||
- [Mailpile](https://www.mailpile.is)
|
- [Mailpile](https://www.mailpile.is)
|
||||||
|
- [Matrix](https://matrix.org) – [Synapse](https://github.com/matrix-org/synapse)
|
||||||
- [MatterMost](https://github.com/mattermost/platform)
|
- [MatterMost](https://github.com/mattermost/platform)
|
||||||
- [MediaCrush](https://imgrush.com)
|
- [MediaCrush](https://imgrush.com)
|
||||||
- [MinigalNano](https://github.com/sebsauvage/MinigalNano)
|
- [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)
|
- [MPD](http://www.musicpd.org)
|
||||||
- [NetData](https://github.com/firehol/netdata)
|
- [NetData](https://github.com/firehol/netdata)
|
||||||
- [Nibbleblog](http://www.nibbleblog.com)
|
- [Nibbleblog](http://www.nibbleblog.com)
|
||||||
|
- [NodeBB](https://nodebb.org)
|
||||||
- [Only Office](http://onlyoffice.org)
|
- [Only Office](http://onlyoffice.org)
|
||||||
- [OpenBazaar](https://openbazaar.org)
|
- [OpenBazaar](https://openbazaar.org)
|
||||||
- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab)
|
- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab)
|
||||||
|
|
BIN
architecture.png
Normal file
BIN
architecture.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
1
architecture.xml
Normal file
1
architecture.xml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36" version="6.0.2.6" editor="www.draw.io" type="device"><diagram name="Page-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==</diagram></mxfile>
|
|
@ -2,18 +2,19 @@
|
||||||
|
|
||||||
It could happen sometimes that your IP is blacklisted by some email provider, or anti-spam services.
|
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
|
Here is some forms that could help you remove your IP address from these lists
|
||||||
|
|
||||||
## Email providers
|
## Email providers
|
||||||
|
|
||||||
* Hotmail: https://support.live.com/eform.aspx?productKey=edfsmsbl3&ct=eformts&scrx=1
|
* [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
|
* [GMail](https://support.google.com/mail/contact/msgdelivery)
|
||||||
|
|
||||||
## Anti-spam services
|
## Anti-spam services
|
||||||
|
|
||||||
* SpamHaus: http://www.spamhaus.org/lookup/
|
* [SpamHaus](http://www.spamhaus.org/lookup)
|
||||||
|
|
||||||
## Test your server
|
|
||||||
|
|
||||||
* https://www.mail-tester.com/
|
|
||||||
* http://whatismyipaddress.com/blacklist-check
|
* http://whatismyipaddress.com/blacklist-check
|
|
@ -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.
|
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
|
#### Testez votre serveur
|
||||||
Pour tester si votre serveur est sur une liste noire, vous pouvez utiliser les outils suivants :
|
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)
|
* [https://www.mail-tester.com](Test en envoyant un mail)
|
||||||
* http://whatismyipaddress.com/blacklist-check (test à partir de l’adresse IP)
|
* [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 :
|
Le cas échéant, voici certains des formulaires vous permettant de retirer votre adresse IP de ces listes :
|
||||||
|
|
||||||
##### Fournisseurs Email
|
##### Fournisseurs Email
|
||||||
|
|
||||||
* Hotmail : https://support.live.com/eform.aspx?productKey=edfsmsbl3&ct=eformts&scrx=1
|
* [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
|
* [GMail](https://support.google.com/mail/contact/msgdelivery)
|
||||||
|
|
||||||
##### Services anti-spam
|
##### 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.
|
Si le fournisseur vous concernant n’apparaît pas dans la liste, cherchez le formulaire adéquat, il existe probablement.
|
||||||
|
|
||||||
|
|
|
@ -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 ?
|
**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
|
#### 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.
|
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.
|
||||||
|
|
|
@ -60,6 +60,9 @@ En fonction de l’autorité d’enregistrement, des certificats intermédiaires
|
||||||
> **Gandi**
|
> **Gandi**
|
||||||
> ```bash
|
> ```bash
|
||||||
> sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA.pem -O ae_certs/intermediate_ca.pem```
|
> 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**
|
> **RapidSSL**
|
||||||
> ```bash
|
> ```bash
|
||||||
|
|
24
chat_rooms.md
Normal file
24
chat_rooms.md
Normal file
|
@ -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)**
|
24
chat_rooms_fr.md
Normal file
24
chat_rooms_fr.md
Normal file
|
@ -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)**
|
|
@ -2,21 +2,54 @@
|
||||||
|
|
||||||
Liste non exhaustive des principaux contributeurs :
|
Liste non exhaustive des principaux contributeurs :
|
||||||
|
|
||||||
* kload
|
#### Fondateurs
|
||||||
|
|
||||||
|
* kload
|
||||||
* beudbeud
|
* 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)
|
* 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
|
* courgette : design
|
||||||
|
|
||||||
* titoko
|
* titoko
|
||||||
|
* Genma
|
||||||
|
|
|
@ -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.
|
You can involve in the YunoHost's development regardless of your skill.
|
||||||
Sysadmins, web developers, designers and pythonists <a href="https://github.com/YunoHost" target="_blank">are welcome</a>!
|
Sysadmins, web developers, designers and pythonists <a href="https://github.com/YunoHost" target="_blank">are welcome</a>!
|
||||||
<br>
|
<br>
|
||||||
A [development chat room](xmpp:dev@conference.yunohost.org?join) and a <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> is available.
|
Learn [how to contribute](/dev), and join us on the [development chat room](xmpp:dev@conference.yunohost.org?join) and the <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a>.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ Notre support est communautaire et s’appuie sur des contributeurs comme vous.
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-md-8" markdown="1">
|
<div class="col col-md-8" markdown="1">
|
||||||
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
|
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
|
||||||
Une <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> 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 <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
* [Développer avec Docker](/docker_fr)
|
* [Développer avec Docker](/docker_fr)
|
||||||
* [Builder OpenResty (serveur Web) pour Raspberry Pi](/build_openresty_fr)
|
* [Builder OpenResty (serveur Web) pour Raspberry Pi](/build_openresty_fr)
|
||||||
* [Présentation du fonctionnement de YunoHost](/package_list_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
|
* Documentation
|
||||||
* [Création d’un compte pour l’édition de la documentation](/accounting_fr)
|
* [Création d’un compte pour l’édition de la documentation](/accounting_fr)
|
||||||
* [Écrire de la documentation](/write_documentation_fr)
|
* [Écrire de la documentation](/write_documentation_fr)
|
155
dev.md
Normal file
155
dev.md
Normal file
|
@ -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}}<p>Some conditional HTML code here !</p>{{/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` (?) !
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="/jappix/javascripts/mini.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// Jappix mini chat
|
||||||
|
$(".actions").css('opacity', 0);
|
||||||
|
jQuery.ajaxSetup({cache: false});
|
||||||
|
|
||||||
|
var ADS_ENABLE = 'off';
|
||||||
|
var JAPPIX_STATIC = '/jappix/';
|
||||||
|
var HOST_BOSH = 'https://im.yunohost.org/http-bind/';
|
||||||
|
var ANONYMOUS = 'on';
|
||||||
|
JappixMini.launch({
|
||||||
|
connection: {
|
||||||
|
domain: "anonymous.yunohost.org",
|
||||||
|
},
|
||||||
|
application: {
|
||||||
|
network: {
|
||||||
|
autoconnect: false,
|
||||||
|
},
|
||||||
|
interface: {
|
||||||
|
showpane: false,
|
||||||
|
animate: false,
|
||||||
|
},
|
||||||
|
groupchat: {
|
||||||
|
open: ['dev@conference.yunohost.org'],
|
||||||
|
suggest: ['support@conference.yunohost.org']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
221
dev_fr.md
221
dev_fr.md
|
@ -1,91 +1,164 @@
|
||||||
## Créer un environnement de développement
|
## Contribuer au cœur de YunoHost
|
||||||
|
|
||||||
<div class="alert alert-info">
|
Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne
|
||||||
<b>Attention :</b> 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).
|
savez pas comment procéder ? Ce guide parcours les étapes du développement et du
|
||||||
</div>
|
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
|
**Venez dire coucou sur le [salon de
|
||||||
#### Installation du système de virtualisation
|
dev](xmpp:dev@conference.yunohost.org?join)** ! Si vous n'avez pas de client
|
||||||
Installer, avec le gestionnaire de paquet de votre système d’exploitation, Vagrant.
|
XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
|
||||||
|
|
||||||
```bash
|
### Mettre en place un environnement de développement
|
||||||
# Debian, Ubuntu, Mint
|
|
||||||
sudo apt-get install vagrant
|
|
||||||
# Fedora
|
|
||||||
sudo dnf install vagrant
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Télécharger `ynh-dev`
|
- **Utilisez [ynh-dev](https://github.com/YunoHost/ynh-dev)** (voir le README)
|
||||||
<div class="alert alert-warning">
|
pour mettre en place un environnement de développement - en local sur une
|
||||||
<b>Attention :</b> 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.
|
machine virtuel, ou bien sur un VPS.
|
||||||
</div>
|
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
|
### Travailler sur le cœur Python / ligne de commande
|
||||||
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
|
- Allez dans `/vagrant/yunohost/`.
|
||||||
##### 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
|
- Executez `/vagrant/ynh-dev use-git yunohost`.
|
||||||
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
|
- Le fichier actionsmap (`data/actionsmap/yunohost.yml`) définit les différentes
|
||||||
Pour déployer les sources se trouvant dans votre environnement de développement faites :
|
catégories, actions et arguments de la ligne de commande YunoHost. Choisissez
|
||||||
```bash
|
comment vous voulez que les utilisateurs utilisent votre fonctionnalité, et
|
||||||
root@yunohost:/yunohost/# ./ynh-dev deploy
|
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.
|
||||||
|
|
||||||
<div class="alert alert-warning">
|
- Moulinette va automatiquement faire le lien entre les commandes de
|
||||||
<b>Attention :</b> pour yunohost-admin vous devez avoir compilé le js avec gulp au préalable
|
l'actionsmap et les fonctions python (ainsi que leurs arguments) dans
|
||||||
</div>
|
`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"`.
|
||||||
|
|
||||||
<div class="alert alert-warning">
|
##### Helpers / style de code
|
||||||
<b>Note :</b> vous pouvez sélectionner les paquets à déployer exemple : `./ynh-dev deploy yunohost yunohost-admin`
|
|
||||||
</div>
|
|
||||||
|
|
||||||
##### Lancer la postinstall
|
- Pour gérer les exceptions, il existe un type `MoulinetteError()`
|
||||||
Avec VirtualBox/Vagrant
|
|
||||||
```bash
|
|
||||||
root@yunohost:/yunohost/# yunohost tools postinstall
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Récupérer l’IP de la vm et paramétrer son `/etc/hosts`
|
- Pour aider avec l'internationalisation des messages, utilisez `m18n.n('some-message-id')`
|
||||||
si vous ne connaissez pas l’IP de votre vm :
|
et mettez le message correspondant dans `locales/en.json`. Vous pouvez aussi
|
||||||
```bash
|
utiliser des arguments pour construire les messages, avec `{{some-argument:s}}`.
|
||||||
root@yunohost:/yunohost/# ./ynh-dev ip
|
Ne modifiez pas de fichiers de locales autres que en.json, la traduction sera
|
||||||
172.17.0.1
|
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 :
|
- YunoHost essaye de suivre le style de code [pep8](http://pep8.org/). Des
|
||||||
```bash
|
outils existent pour vérifier automatiquement la conformité du code.
|
||||||
172.17.0.1 exemple.local
|
|
||||||
```
|
- 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}}<p>du HTML conditionnel ici !</p>{{/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` (?) !
|
||||||
|
|
||||||
|
<script type="text/javascript" src="/jappix/javascripts/mini.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// Jappix mini chat
|
||||||
|
$(".actions").css('opacity', 0);
|
||||||
|
jQuery.ajaxSetup({cache: false});
|
||||||
|
|
||||||
|
var ADS_ENABLE = 'off';
|
||||||
|
var JAPPIX_STATIC = '/jappix/';
|
||||||
|
var HOST_BOSH = 'https://im.yunohost.org/http-bind/';
|
||||||
|
var ANONYMOUS = 'on';
|
||||||
|
JappixMini.launch({
|
||||||
|
connection: {
|
||||||
|
domain: "anonymous.yunohost.org",
|
||||||
|
},
|
||||||
|
application: {
|
||||||
|
network: {
|
||||||
|
autoconnect: false,
|
||||||
|
},
|
||||||
|
interface: {
|
||||||
|
showpane: false,
|
||||||
|
animate: false,
|
||||||
|
},
|
||||||
|
groupchat: {
|
||||||
|
open: ['dev@conference.yunohost.org'],
|
||||||
|
suggest: ['support@conference.yunohost.org']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
##### 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.
|
|
||||||
|
|
|
@ -48,7 +48,6 @@ You can also redirect ports manually to your server's local IP address on this r
|
||||||
|
|
||||||
### <small>4.</small> Do your router has hairpinning ?
|
### <small>4.</small> 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 <a href="http://en.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>.
|
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 <a href="https://en.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
|
@ -46,7 +46,7 @@ Vous pouvez également rediriger les ports manuellement vers l’adresse IP loca
|
||||||
|
|
||||||
### <small>4.</small> Est-ce que votre box/routeur fait du hairpinning ?
|
### <small>4.</small> 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 <a href="http://fr.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>.
|
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 <a href="https://fr.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,40 @@
|
||||||
# Noms de domaines nohost.me
|
# 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" :
|
||||||
|
|
||||||
|
<img src="/images/dns_nohost_me.png" height=150 style="vertical-align:bottom">
|
||||||
|
|
||||||
|
##### 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
|
### Sous-domaines
|
||||||
|
|
||||||
Les noms de domaines `nohost.me` et `noho.st` permettent d'avoir uniquement un sous-domaine du type `pseudo.nohost.me`.
|
Le service de domaines `nohost.me` et `noho.st` n'autorise pas la création de sous-domaines.
|
||||||
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`.
|
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.
|
Pour pouvoir profiter des applications installables uniquement à la racine d’un nom de domaine, il faut avoir son propre nom de domaine.
|
||||||
|
|
16
hardware.md
16
hardware.md
|
@ -1,21 +1,21 @@
|
||||||
# Hardware
|
# Hardware
|
||||||
|
|
||||||
Every commonly used machine kind is compatible with YunoHost.
|
YunoHost is compatible with most of the hardware.
|
||||||
It is important to identify your machine kind before proceeding to the installation.
|
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 |
|
| 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) |
|
| **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
|
### Minimum requirements
|
||||||
- 500MHz CPU
|
- 500MHz CPU
|
||||||
* 256Mo RAM
|
* 256MB RAM
|
||||||
* 4Go storage space
|
* 4GB storage capacity
|
||||||
|
|
||||||
### Recommended
|
### Recommended
|
||||||
* Recent x86 computer, silent and low consumption.
|
* Recent x86 computer, silent and low consumption.
|
||||||
* 512Mo RAM in order to run all the services and apps properly
|
* 512MB RAM in order to run all the services and apps properly
|
||||||
* 20Go storage in order to store more mails and documents
|
* 20GB storage in order to store more mails and documents
|
||||||
|
|
BIN
images/dns_nohost_me.png
Normal file
BIN
images/dns_nohost_me.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
3
index.md
3
index.md
|
@ -42,7 +42,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="call-to-action">
|
<div class="call-to-action">
|
||||||
<!-- <a class="btn btn-primary btn-lg" href="/try">Try it</a> -->
|
<a class="btn btn-primary btn-lg" href="/try">Try it</a>
|
||||||
<a class="btn btn-success btn-lg" href="/install">Get started</a>
|
<a class="btn btn-success btn-lg" href="/install">Get started</a>
|
||||||
<p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-2-4-released/1544/1">YunoHost v2.4</a></small></p>
|
<p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-2-4-released/1544/1">YunoHost v2.4</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -95,6 +95,7 @@
|
||||||
<a class="btn btn-lg btn-block btn-info" href="/docs">Documentation</a>
|
<a class="btn btn-lg btn-block btn-info" href="/docs">Documentation</a>
|
||||||
<a class="btn btn-lg btn-block btn-success" href="/contribute">Get involved</a>
|
<a class="btn btn-lg btn-block btn-success" href="/contribute">Get involved</a>
|
||||||
<a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org/" target="_blank">Forum</a>
|
<a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org/" target="_blank">Forum</a>
|
||||||
|
<a class="btn btn-lg btn-block btn-default" href="chat_rooms_en" target="_blank">Chat rooms</a>
|
||||||
<a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Latest news</a>
|
<a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Latest news</a>
|
||||||
<a class="btn btn-lg btn-block btn-danger btn-support" href="/support">Support</a>
|
<a class="btn btn-lg btn-block btn-danger btn-support" href="/support">Support</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="call-to-action">
|
<div class="call-to-action">
|
||||||
<!-- <a class="btn btn-primary btn-lg" href="/try_fr">Essayer</a> -->
|
<a class="btn btn-primary btn-lg" href="/try_fr">Essayer</a>
|
||||||
<a class="btn btn-success btn-lg" href="/install_fr">Installer</a>
|
<a class="btn btn-success btn-lg" href="/install_fr">Installer</a>
|
||||||
<p class="text-muted"><small><a href="https://forum.yunohost.org/t/parution-de-yunohost-2-4/1541">YunoHost v2.4</a></small></p>
|
<p class="text-muted"><small><a href="https://forum.yunohost.org/t/parution-de-yunohost-2-4/1541">YunoHost v2.4</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -94,6 +94,7 @@
|
||||||
<a class="btn btn-lg btn-block btn-info" href="/docs_fr">Documentation</a>
|
<a class="btn btn-lg btn-block btn-info" href="/docs_fr">Documentation</a>
|
||||||
<a class="btn btn-lg btn-block btn-success" href="/contribute_fr">Comment contribuer</a>
|
<a class="btn btn-lg btn-block btn-success" href="/contribute_fr">Comment contribuer</a>
|
||||||
<a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org" target="_blank">Forum</a>
|
<a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org" target="_blank">Forum</a>
|
||||||
|
<a class="btn btn-lg btn-block btn-default" href="chat_rooms_fr" target="_blank">Salons de discussions</a>
|
||||||
<a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Dernières nouvelles</a>
|
<a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Dernières nouvelles</a>
|
||||||
<a class="btn btn-lg btn-block btn-danger btn-support" href="/support_fr">Support</a>
|
<a class="btn btn-lg btn-block btn-danger btn-support" href="/support_fr">Support</a>
|
||||||
|
|
||||||
|
|
13
install.md
13
install.md
|
@ -1,12 +1,12 @@
|
||||||
# Installation guide
|
# 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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<h1 style="font-weight: 100">Give a try</h1>
|
<h1 style="font-weight: 100">Give it a try</h1>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ This page lists few installation guides.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<h1 style="font-weight: 100">Virtually</h1>
|
<h1 style="font-weight: 100">On a virtual machine/container</h1>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ This page lists few installation guides.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<h1 style="font-weight: 100">Remotely</h1>
|
<h1 style="font-weight: 100">On a remote server</h1>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
|
@ -94,7 +94,6 @@ This page lists few installation guides.
|
||||||
|
|
||||||
<h1 style="font-weight: 100">On Debian</h1>
|
<h1 style="font-weight: 100">On Debian</h1>
|
||||||
|
|
||||||
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)**.
|
||||||
|
|
||||||
<a href="/install_on_debian"><img width=100 src="/images/debian-logo.png"></a>
|
<a href="/install_on_debian"><img width=100 src="/images/debian-logo.png"></a>
|
||||||
|
|
||||||
|
|
|
@ -2,21 +2,21 @@
|
||||||
|
|
||||||
*Find other ways to install YunoHost **[here](/install)**.*
|
*Find other ways to install YunoHost **[here](/install)**.*
|
||||||
|
|
||||||
### Pre-requisite
|
### Requirements
|
||||||
|
|
||||||
<img src="/images/laptop.png" width=200>
|
<img src="/images/laptop.png" width=200>
|
||||||
<img src="/images/desktop.jpg">
|
<img src="/images/desktop.jpg">
|
||||||
<img src="/images/nettop.jpg">
|
<img src="/images/nettop.jpg">
|
||||||
|
|
||||||
<div class="alert alert-danger">This images are based on **Debian Wheezy**. Wheezy **won't be maintained** with YunoHost 2.4.<br />
|
<div class="alert alert-danger">These images are based on **Debian Wheezy**. Wheezy **won't be maintained** with YunoHost 2.4.<br />
|
||||||
It's **strongly adviced** to install YunoHost on **Debian Jessie** with the **[install script](/install_on_debian_en)**.</div>
|
It is **strongly recommended** to install YunoHost on **Debian Jessie** with the **[install script](/install_on_debian_en)**.</div>
|
||||||
|
|
||||||
* An x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop.
|
* A x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop.
|
||||||
You can reuse any computer with **256MB RAM or more**.
|
You can use any computer with **256MB RAM or more**.
|
||||||
* Another computer to read this guide and access to your server.
|
* Another computer to read this guide and access to your server.
|
||||||
* A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth
|
* 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**
|
* 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):
|
* One of the latest **YunoHost ISO images**, available here (take the 32 Bits one if you don't know which one to choose):
|
||||||
<div>
|
<div>
|
||||||
<b>Torrent:</b>
|
<b>Torrent:</b>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -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**
|
* User: **root**
|
||||||
* Password: **yunohost**
|
* 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)***
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<img src="/images/cubieboard2.png">
|
<img src="/images/cubieboard2.png">
|
||||||
<img src="/images/micro-sd-card.jpg">
|
<img src="/images/micro-sd-card.jpg">
|
||||||
|
|
||||||
* An ARM board with 500MHz CPU and 512Mo RAM.
|
* An ARM board with 500MHz CPU and 512MB RAM.
|
||||||
* A micro SD card: **4GB** capacity (or more) and **class10** speed rate are highly recommended.
|
* A micro SD card: **4GB** capacity (or more), **class10** speed rate is highly recommended.
|
||||||
* A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth.
|
* 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)
|
* 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)***
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
*Find other ways to install YunoHost **[here](/install)**.*
|
*Find other ways to install YunoHost **[here](/install)**.*
|
||||||
|
|
||||||
### Pre-requisite
|
### Requirements
|
||||||
|
|
||||||
<img width=100 src="/images/debian-logo.png">
|
<img width=100 src="/images/debian-logo.png">
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ An ARM box, a VPS, a dedicated server, a standard x86 computer, an old Macintosh
|
||||||
|
|
||||||
* with **Debian 8** (Jessie) installed
|
* with **Debian 8** (Jessie) installed
|
||||||
* connected to the Internet
|
* connected to the Internet
|
||||||
* with a **root access** directly or via SSH
|
* with a direct **root access** or via SSH
|
||||||
|
|
||||||
<img width=650 src="/images/debian_install.png">
|
<img width=650 src="/images/debian_install.png">
|
||||||
|
|
||||||
|
@ -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)***
|
||||||
|
|
||||||
|
|
|
@ -2,21 +2,21 @@
|
||||||
|
|
||||||
*Find other ways to install YunoHost **[here](/install)**.*
|
*Find other ways to install YunoHost **[here](/install)**.*
|
||||||
|
|
||||||
## Pre-requisite
|
## Requirements
|
||||||
<img src="/images/Raspberry_Pi_2_Model_B_v1.1_front_angle_new.jpg" width=350>
|
<img src="/images/Raspberry_Pi_2_Model_B_v1.1_front_angle_new.jpg" width=350>
|
||||||
<img src="/images/micro-sd-card.jpg">
|
<img src="/images/micro-sd-card.jpg">
|
||||||
|
|
||||||
- A Raspberry Pi model 1, 2 or 3
|
- A Raspberry Pi model 1, 2 or 3
|
||||||
- An SD card: **4GB** capacity (or more) and **class10** speed rate are highly recommended
|
- A SD card: **4GB** capacity (or more) and **class10** speed rate is highly recommended
|
||||||
- An other computer to read this guide and access to your Raspberry Pi
|
- A different computer to read this guide and access your Raspberry Pi
|
||||||
- A screen and a keyboard are recommended to control your Raspberry Pi if a problem occurs.
|
- 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 upstream bandwidth
|
- A [reasonable ISP](/isp), preferably with a good and unlimited upload bandwidth
|
||||||
- **YunoHost Raspberry Pi images**, available here:
|
- **YunoHost Raspberry Pi images**, available here:
|
||||||
- [Official Wheezy/YunoHost 2.2 created the 4th June 2015](https://build.yunohost.org/yunohost-rpi2_wheezy.7z)
|
- [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)
|
- [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)
|
||||||
|
|
||||||
|
|
||||||
<div class="alert alert-info">**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.</div>
|
<div class="alert alert-info">**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.</div>
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Recommended after post-installation
|
### Recommended after running the post-installation
|
||||||
|
|
||||||
* Connect via SSH: **root@IP.OF.RPI** (password: **yunohost**)
|
* Connect via SSH: **root@IP.OF.RPI** (password: **yunohost**)
|
||||||
* Change root password: `passwd root`
|
* Change root password: `passwd root`
|
||||||
|
@ -42,5 +42,4 @@
|
||||||
#### Build image
|
#### Build image
|
||||||
* [Create a Raspberry Pi image](/build_arm_image_en)
|
* [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)***
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
*Find other ways to install YunoHost **[here](/install)**.*
|
*Find other ways to install YunoHost **[here](/install)**.*
|
||||||
|
|
||||||
## Pre-requisite
|
## Requirements
|
||||||
|
|
||||||
<img src="/images/virtualbox.png" width=200>
|
<img src="/images/virtualbox.png" width=200>
|
||||||
|
|
||||||
* An x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine.
|
* 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:
|
* 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
|
* **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))
|
* **Direct download** ([i386](http://build.yunohost.org/yunohostv2-latest-i386.iso), [amd64](http://build.yunohost.org/yunohostv2-latest-amd64.iso))
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
## <small>2.</small> Change network settings
|
## <small>2.</small> Change network settings
|
||||||
|
|
||||||
Go to **Settings** > **Network**, and your interface:
|
Go to **Settings** > **Network**:
|
||||||
|
|
||||||
<img src="/images/virtualbox_2.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
<img src="/images/virtualbox_2.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||||
|
|
||||||
|
@ -73,8 +73,8 @@ After the reboot, you will see this screen:
|
||||||
<br>
|
<br>
|
||||||
* The password for root user is "yunohost"
|
* 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)***
|
||||||
|
|
|
@ -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)** | ✔ | ✔ | ✔ | ✔ | ✔ |
|
| **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||||
| **[Port 25 ouvrable](email_fr)**<br> (fermé par défaut) | ✔ | ✔ | ✘ | ✔ | ✔ |
|
| **[Port 25 ouvrable](email_fr)**<br> (fermé par défaut) | ✔ | ✔ | ✘ | ✔ | ✔ |
|
||||||
| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
|
| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
|
||||||
| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personnalisable ** | ✔ | … | ✘ | ✘ | ✘ |
|
| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personnalisable ** | ✔ (sauf IPv6) | … | ✘ | ✘ | ✘ |
|
||||||
| **[IP fixe](/dns_dynamicip_fr)** | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
|
| **[IP fixe](/dns_dynamicip_fr)** | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
|
||||||
| **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | … | … |
|
| **[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).
|
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.
|
**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.
|
||||||
|
|
1
orga/README.md
Symbolic link
1
orga/README.md
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
yunohost_project_organization_fr.md
|
BIN
orga/organization_schema.png
Normal file
BIN
orga/organization_schema.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 204 KiB |
271
orga/yunohost_project_organization_fr.md
Normal file
271
orga/yunohost_project_organization_fr.md
Normal file
|
@ -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 :
|
||||||
|
|
||||||
|
<img src="https://raw.githubusercontent.com/YunoHost/yunohost-project-organization/master/organization_schema.png" height="600px" />
|
||||||
|
|
||||||
|
|
||||||
|
#### 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)
|
|
@ -1,6 +1,6 @@
|
||||||
# App packaging <img src="/images/yunohost_package.png" width=100/>
|
# App packaging <img src="/images/yunohost_package.png" width=100/>
|
||||||
|
|
||||||
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
|
### Requirements
|
||||||
To package an application, here are the 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
|
yunohost app install https://github.com/author/my_app_package.git
|
||||||
```
|
```
|
||||||
|
|
||||||
### Enhance package
|
### Packaging best practices
|
||||||
Here is a list of best practices for application install scripts:
|
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`;
|
* 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 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;
|
* install script should save install answers;
|
||||||
* application sources should be checked with a control sum (sha256, sha1 or md5) or a PGP signature;
|
* 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;
|
* 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 script checker
|
||||||
<a class="btn btn-lg btn-default" href="https://github.com/YunoHost/package_checker">Package checker</a>
|
<a class="btn btn-lg btn-default" href="https://github.com/YunoHost/package_checker">Package checker</a>
|
||||||
|
|
||||||
This is a Python script which check:
|
This Python script checks:
|
||||||
* that the package is up to date wich last specifications
|
* that the package is up to date wich last specifications
|
||||||
* that all files are present
|
* that all files are present
|
||||||
* that the manifest don't have syntax error
|
* that the manifest doesn't have syntax errors
|
||||||
* that scripts exit well before modifing the system during verifications.
|
* that scripts exit well before modifing the system during verification.
|
||||||
|
|
||||||
### Publish and ask for testing your application
|
### 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
|
### 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.
|
||||||
|
|
|
@ -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 ;
|
* 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.
|
* 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
|
### Contenu
|
||||||
Un paquet YunoHost est composé :
|
Un paquet YunoHost est composé :
|
||||||
|
|
||||||
|
|
|
@ -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 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 |
|
#### 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.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.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 |
|
#### YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL |
|
||||||
|
|
53
packaging_apps_start_fr.md
Normal file
53
packaging_apps_start_fr.md
Normal file
|
@ -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.
|
1
project_organization_fr.md
Symbolic link
1
project_organization_fr.md
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
orga/yunohost_project_organization_fr.md
|
|
@ -10,6 +10,8 @@ Two things remain important to note:
|
||||||
|
|
||||||
*If you need some advises, do not hesitate to [ask us](/support).*
|
*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
|
## 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)
|
- [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)
|
- [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)
|
- [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)
|
||||||
|
|
|
@ -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).*
|
*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é
|
## 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)
|
- [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)
|
- [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)
|
- [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)
|
||||||
|
|
13
security_team.md
Normal file
13
security_team.md
Normal file
|
@ -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 <security@yunohost.org>
|
||||||
|
sub 4096R/446838AF 2016-07-01
|
||||||
|
```
|
14
security_team_fr.md
Normal file
14
security_team_fr.md
Normal file
|
@ -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 <security@yunohost.org>
|
||||||
|
sub 4096R/446838AF 2016-07-01
|
||||||
|
```
|
|
@ -61,6 +61,7 @@
|
||||||
* [Add a certificate certified by an authority](/certificate)
|
* [Add a certificate certified by an authority](/certificate)
|
||||||
* [Regenerate self-signed certificate](/regenerate_certificate_en)
|
* [Regenerate self-signed certificate](/regenerate_certificate_en)
|
||||||
* [Security](/security)
|
* [Security](/security)
|
||||||
|
- [Contact security team](security_team)
|
||||||
* [Troubleshooting guide](/troubleshooting_guide_en)
|
* [Troubleshooting guide](/troubleshooting_guide_en)
|
||||||
* [YunoHost Tor Hidden Servicer](/torhiddenservice)
|
* [YunoHost Tor Hidden Servicer](/torhiddenservice)
|
||||||
* [Unblock an IP address with Fail2ban](/fail2ban_en)
|
* [Unblock an IP address with Fail2ban](/fail2ban_en)
|
||||||
|
@ -80,6 +81,7 @@
|
||||||
|
|
||||||
* [Contributor guide](/contribute)
|
* [Contributor guide](/contribute)
|
||||||
* Developement
|
* Developement
|
||||||
|
* Applications
|
||||||
* [Package new application](/packaging_apps)
|
* [Package new application](/packaging_apps)
|
||||||
* [Manifest](packaging_apps_manifest_en)
|
* [Manifest](packaging_apps_manifest_en)
|
||||||
* [Scripts](packaging_apps_scripts_en)
|
* [Scripts](packaging_apps_scripts_en)
|
||||||
|
@ -90,6 +92,7 @@
|
||||||
* [Trap usage](packaging_apps_trap_fr)
|
* [Trap usage](packaging_apps_trap_fr)
|
||||||
* [Applications in progress](/apps_in_progress_en)
|
* [Applications in progress](/apps_in_progress_en)
|
||||||
* [Wishlist of applications](/apps_wishlist_en)
|
* [Wishlist of applications](/apps_wishlist_en)
|
||||||
|
* [Contributing to the YunoHost core](/dev)
|
||||||
* [Creation of system packages](/build_system_en)
|
* [Creation of system packages](/build_system_en)
|
||||||
* [Creation of Debian packages](/build_packages_en)
|
* [Creation of Debian packages](/build_packages_en)
|
||||||
* [Create an ARM board image](/build_arm_image_en)
|
* [Create an ARM board image](/build_arm_image_en)
|
||||||
|
@ -106,8 +109,11 @@
|
||||||
* [Roadmap](/roadmap)
|
* [Roadmap](/roadmap)
|
||||||
* [Frequently asked questions](/faq_en)
|
* [Frequently asked questions](/faq_en)
|
||||||
* [Contributors](contribs)
|
* [Contributors](contribs)
|
||||||
|
- [Project organization](project_organization_fr)
|
||||||
* [Support](/support_en)
|
* [Support](/support_en)
|
||||||
* [Art Works](artworks_en)
|
* [Art Works](artworks_en)
|
||||||
* [Blog](https://forum.yunohost.org/c/announcement)
|
* [Blog](https://forum.yunohost.org/c/announcement)
|
||||||
|
- [Forum](https://forum.yunohost.org)
|
||||||
|
- [Chat rooms](chat_rooms_en)
|
||||||
* [Communication](communication_en)
|
* [Communication](communication_en)
|
||||||
* [Help](/help)
|
* [Help](/help)
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
* [Connexion à son serveur avec SSH](/ssh_fr)
|
* [Connexion à son serveur avec SSH](/ssh_fr)
|
||||||
* [Administration avec la Moulinette](/moulinette_fr)
|
* [Administration avec la Moulinette](/moulinette_fr)
|
||||||
* [Administration web](/admin_fr)
|
* [Administration web](/admin_fr)
|
||||||
|
* [Administration via l'API](/admin_api_fr)
|
||||||
* [Changer le mot de passe d’administration](/change_admin_password_fr)
|
* [Changer le mot de passe d’administration](/change_admin_password_fr)
|
||||||
* [Courrier électronique](email_fr)
|
* [Courrier électronique](email_fr)
|
||||||
* [Configuration d’un client email](email_configure_client_fr)
|
* [Configuration d’un client email](email_configure_client_fr)
|
||||||
|
@ -67,6 +68,7 @@
|
||||||
* [Ajouter un certificat d’une autorité](/certificate_fr)
|
* [Ajouter un certificat d’une autorité](/certificate_fr)
|
||||||
* [Régénérer le certificat auto-signé](/regenerate_certificate_fr)
|
* [Régénérer le certificat auto-signé](/regenerate_certificate_fr)
|
||||||
* [Sécurité](/security_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)
|
* [Consulter les fichiers de log du système](/check_logfile_fr)
|
||||||
* [Guide de dépannage](/troubleshooting_guide_fr)
|
* [Guide de dépannage](/troubleshooting_guide_fr)
|
||||||
* [YunoHost service caché Tor](/torhiddenservice_fr)
|
* [YunoHost service caché Tor](/torhiddenservice_fr)
|
||||||
|
@ -89,10 +91,11 @@
|
||||||
|
|
||||||
* [Guide du contributeur](/contribute_fr)
|
* [Guide du contributeur](/contribute_fr)
|
||||||
* Développement
|
* 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)
|
* [Présentation du fonctionnement de YunoHost](/package_list_fr)
|
||||||
* Applications :
|
* Applications :
|
||||||
* [Packager des applications](/packaging_apps_fr)
|
* [Packager des applications](/packaging_apps_fr)
|
||||||
|
* [Introduction](packaging_apps_start_fr.md)
|
||||||
* [Manifeste](packaging_apps_manifest_fr)
|
* [Manifeste](packaging_apps_manifest_fr)
|
||||||
* [Scripts](packaging_apps_scripts_fr)
|
* [Scripts](packaging_apps_scripts_fr)
|
||||||
* [Gestion des arguments](packaging_apps_arguments_management_fr)
|
* [Gestion des arguments](packaging_apps_arguments_management_fr)
|
||||||
|
@ -102,6 +105,7 @@
|
||||||
* [Usage de trap](packaging_apps_trap_fr)
|
* [Usage de trap](packaging_apps_trap_fr)
|
||||||
* [Packages d’applications en cours de développement](/apps_in_progress_fr)
|
* [Packages d’applications en cours de développement](/apps_in_progress_fr)
|
||||||
* [Liste de proposition d’applications](/apps_wishlist_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 système](/build_system_fr)
|
||||||
* [Création de paquets Debian](/build_packages_fr)
|
* [Création de paquets Debian](/build_packages_fr)
|
||||||
* [Créer une image pour carte ARM](/build_arm_image_en)
|
* [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)
|
* [Journal des modifications v.2.2](/changelog_2_2_en)
|
||||||
* [Feuille de route](/roadmap_en)
|
* [Feuille de route](/roadmap_en)
|
||||||
* [Foire aux questions](/faq_fr)
|
* [Foire aux questions](/faq_fr)
|
||||||
|
- [Organisation du projet](project_organization_fr)
|
||||||
* [Contributeurs](contribs_fr)
|
* [Contributeurs](contribs_fr)
|
||||||
* [Entraide - support](/support_fr)
|
* [Entraide - support](/support_fr)
|
||||||
* [Blog](https://forum.yunohost.org/c/announcement)
|
* [Blog](https://forum.yunohost.org/c/announcement)
|
||||||
|
- [Forum](https://forum.yunohost.org)
|
||||||
|
- [Salons de discussions](chat_rooms_fr)
|
||||||
* [Conférences](/conf_fr)
|
* [Conférences](/conf_fr)
|
||||||
* [Communication extérieure](communication_fr)
|
* [Communication extérieure](communication_fr)
|
||||||
* [Travail artistique](artworks_fr)
|
* [Travail artistique](artworks_fr)
|
||||||
|
|
4
try.md
4
try.md
|
@ -1,7 +1,7 @@
|
||||||
#Try YunoHost
|
#Try YunoHost
|
||||||
|
|
||||||
<div class="alert alert-warning" markdown="1">
|
<div class="alert alert-warning" markdown="1">
|
||||||
**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.
|
||||||
<br>
|
<br>
|
||||||
If it does not work, do consider [trying it at home](/try_at_home).
|
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).
|
||||||
|
|
||||||
<p class="text-center" markdown="1">
|
<p class="text-center" markdown="1">
|
||||||
***Demo server gracefully provided by
|
***Demo server gracefully provided by
|
||||||
<a href="https://www.web4all.fr/" target="_blank"><img src="/images/web4all.png" width=100 style="vertical-align: center"></a>***
|
<a href="https://www.gitoyen.net" target="_blank">Gitoyen</a>***
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#Essayer YunoHost
|
#Essayer YunoHost
|
||||||
|
|
||||||
<div class="alert alert-warning" markdown="1">
|
<div class="alert alert-warning" markdown="1">
|
||||||
**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.
|
||||||
<br>
|
<br>
|
||||||
Si cela ne fonctionne pas, vous pouvez [essayer chez vous](/try_at_home_fr).
|
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).
|
||||||
|
|
||||||
<p class="text-center" markdown="1">
|
<p class="text-center" markdown="1">
|
||||||
***Le serveur de démo est fourni généreusement par
|
***Le serveur de démo est fourni généreusement par
|
||||||
<a href="https://www.web4all.fr/" target="_blank"><img src="/images/web4all.png" width=100 style="vertical-align: center"></a>***
|
<a href="https://www.gitoyen.net" target="_blank">Gitoyen</a>***
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
91
ynh_dev_fr.md
Normal file
91
ynh_dev_fr.md
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
## Créer un environnement de développement
|
||||||
|
|
||||||
|
<div class="alert alert-info">
|
||||||
|
<b>Attention :</b> 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).
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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`
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
<b>Attention :</b> 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.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
<b>Attention :</b> pour yunohost-admin vous devez avoir compilé le js avec gulp au préalable
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
<b>Note :</b> vous pouvez sélectionner les paquets à déployer exemple : `./ynh-dev deploy yunohost yunohost-admin`
|
||||||
|
</div>
|
||||||
|
|
||||||
|
##### 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.
|
Loading…
Reference in a new issue