diff --git a/XMPP.md b/XMPP.md index 3b6ccc68..79027d84 100644 --- a/XMPP.md +++ b/XMPP.md @@ -2,7 +2,7 @@ XMPP is a communication protocol of instant messaging, VoIP (Voice over IP), videoconferencing. YunoHost provide: -* [Metronome](http://www.lightwitch.org/metronome): a XMPP server +* [Metronome](https://metronome.im/): a XMPP server * [Jappix](/apps): a web XMPP client ## Desktop XMPP client diff --git a/admin.md b/admin.md index 6793e8c8..688a7796 100644 --- a/admin.md +++ b/admin.md @@ -4,6 +4,7 @@ Yunohost has an administrator web interface. The other way to administer your Yu **Please note** that the web interface is an active work-in-progress and has far fewer features than the CLI moulinette. + ### Access You can access your administrator web interface at this address: https://example.org/yunohost/admin (replace 'example.org' with your own domain name) @@ -12,20 +13,9 @@ You can access your administrator web interface at this address: https://example + ### Reset admin password -#### On Yunohost 2.5 - -The script to reset the admin password is not directly available, but can be downloaded and executed (as root) : - -```bash -$ wget https://raw.githubusercontent.com/YunoHost/yunohost/testing/sbin/yunohost-reset-ldap-password -$ chmod +x yunohost-reset-ldap-password -$ ./yunohost-reset-ldap-password -``` - -#### From Yunohost 2.6 - To reset the admin password (as root) : ```bash @@ -34,6 +24,7 @@ $ yunohost-reset-ldap-password A temporary password will be created, which you can use to define the new password. + ### How to move application folder To change an application folder, only a few commands are needed: move content, create a symlink and set access rights. diff --git a/admin_api_fr b/admin_api_fr.md similarity index 100% rename from admin_api_fr rename to admin_api_fr.md diff --git a/admin_fr.md b/admin_fr.md index 4214b2ce..2acd9354 100644 --- a/admin_fr.md +++ b/admin_fr.md @@ -4,27 +4,18 @@ YunoHost est fourni avec une interface graphique d’administration. L’autre m **Attention** : l’interface d’administration donne accès à beaucoup moins de fonctionnalités que la moulinette, car elle est en développement actif. + ### Accès + L’interface admin est accessible depuis votre instance YunoHost à l’adresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur)
+ ### Réinitialiser le mot de passe administrateur -#### Sous Yunohost 2.5 - -Le script pour réinitialiser le mot de passe adminstrateur n'est pas directement disponible, mais peut être téléchargé puis executé (à partir de l'utilisateur root) : - -```bash -$ wget https://raw.githubusercontent.com/YunoHost/yunohost/testing/sbin/yunohost-reset-ldap-password -$ chmod +x yunohost-reset-ldap-password -$ ./yunohost-reset-ldap-password -``` - -#### À partir de Yunohost 2.6 - Pour réinitialiser le mot de passe administrateur de YunoHost (à partir de l'utilisateur root) : ```bash @@ -34,7 +25,6 @@ $ yunohost-reset-ldap-password Un mot de passe temporaire sera créé, que vous pouvez utiliser pour ensuite définir un nouveau mot de passe. - ### Comment déplacer le dossier d’une application Pour changer le dossier contenant une application, seules quelques commandes sont nécessaires : déplacer le contenu créer un lien symbolique et définir les droits d’accès. diff --git a/admindoc_fr.md b/admindoc_fr.md index 5ea7cc01..5415e90a 100644 --- a/admindoc_fr.md +++ b/admindoc_fr.md @@ -28,9 +28,8 @@ * [Avec OVH](/OVH_fr) * [Accéder à son domaine depuis le réseau local](/dns_local_network_fr) * [Nom de domaine en Nohost.me](/dns_nohost_me_fr) -* [Applications officielles](/apps_fr) +* [Applications](/apps_fr) * [Mettre à jour ses applications](app_update_fr) - * [Applications en cours](apps_in_progress_fr) * [Applications souhaitées](apps_wishlist_fr) * [Nextcloud](app_nextcloud_fr) * [Fournisseurs d’accès à Internet](/isp_fr) diff --git a/app_baikal.md b/app_baikal.md index 39735890..83a85d48 100644 --- a/app_baikal.md +++ b/app_baikal.md @@ -11,7 +11,6 @@ The user name specified is "admin" followed by the specific password choosen at ### Example of creating a new user: -Go to the "settings" tab, select "Digest" in "WebDAV authentication type". Add users to the "Users and resources" tab. ## CalDAV Connection diff --git a/app_netdata.md b/app_netdata.md new file mode 100644 index 00000000..f3831882 --- /dev/null +++ b/app_netdata.md @@ -0,0 +1,262 @@ +## NetData + +[NetData](http://my-netdata.io/) is a system for **distributed real-time performance and health monitoring**. +It provides **unparalleled insights, in real-time**, of everything happening on the +system it runs (including applications such as web and database servers), using +**modern interactive web dashboards**. + +_netdata is **fast** and **efficient**, designed to permanently run on all systems +(**physical** & **virtual** servers, **containers**, **IoT** devices), without +disrupting their core function._ + +[![Install Piwigo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=piwigo) + +**Customization brought by the package:** + +* grant MySQL statistics access via a `netdata` user +* nginx root log statistics via putting `netdata` user in the `adm` group +* Dovecot statistics via giving access to Dovecot stats stocket to `netdata` user (works only with Dovecot 2.2.16+) + +**Further recommendations:** +We don't allow YunoHost packages to make sensible changes to system files. So here are further customizations you can make to allow more monitoring: + +* Nginx: + * requests/connections: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#nginx) to enable `/stab_status` (for example by putting the `location` section in `/etc/nginx/conf.d/yunohost_admin.conf` + * weblogs: you can monitor all your nginx weblogs for errors; follow [these recommendations](https://github.com/firehol/netdata/tree/master/python.d#nginx_log) +* phpfpm: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#phpfpm) + +## Features + +

+ +

+ + - **Stunning interactive bootstrap dashboards**
+ mouse and touch friendly, in 2 themes: dark, light + + - **Amazingly fast**
+ responds to all queries in less than 0.5 ms per metric, + even on low-end hardware + + - **Highly efficient**
+ collects thousands of metrics per server per second, + with just 1% CPU utilization of a single core, a few MB of RAM and no disk I/O at all + + - **Sophisticated alarming**
+ hundreds of alarms, **out of the box**!
+ supports dynamic thresholds, hysteresis, alarm templates, + multiple role-based notification methods (such as email, slack.com, + pushover.net, pushbullet.com, telegram.org, twilio.com, messagebird.com) + + - **Extensible**
+ you can monitor anything you can get a metric for, + using its Plugin API (anything can be a netdata plugin, + BASH, python, perl, node.js, java, Go, ruby, etc) + + - **Embeddable**
+ it can run anywhere a Linux kernel runs (even IoT) + and its charts can be embedded on your web pages too + + - **Customizable**
+ custom dashboards can be built using simple HTML (no javascript necessary) + + - **Zero configuration**
+ auto-detects everything, it can collect up to 5000 metrics + per server out of the box + + - **Zero dependencies**
+ it is even its own web server, for its static web files and its web API + + - **Zero maintenance**
+ you just run it, it does the rest + + - **scales to infinity**
+ requiring minimal central resources + + - **several operating modes**
+ autonomous host monitoring, headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations. + Each node may have different metrics retention policy and run with or without health monitoring. + + - **time-series back-ends supported**
+ can archive its metrics on `graphite`, `opentsdb`, `prometheus`, json document DBs, in the same or lower detail + (lower: to prevent it from congesting these servers due to the amount of data collected) + +![netdata](https://cloud.githubusercontent.com/assets/2662304/14092712/93b039ea-f551-11e5-822c-beadbf2b2a2e.gif) + +--- + +## What does it monitor? + +netdata collects several thousands of metrics per device. +All these metrics are collected and visualized in real-time. + +> _Almost all metrics are auto-detected, without any configuration._ + +This is a list of what it currently monitors: + +- **CPU**
+ usage, interrupts, softirqs, frequency, total and per core, CPU states + +- **Memory**
+ RAM, swap and kernel memory usage, KSM (Kernel Samepage Merging), NUMA + +- **Disks**
+ per disk: I/O, operations, backlog, utilization, space, software RAID (md) + + ![sda](https://cloud.githubusercontent.com/assets/2662304/14093195/c882bbf4-f554-11e5-8863-1788d643d2c0.gif) + +- **Network interfaces**
+ per interface: bandwidth, packets, errors, drops + + ![dsl0](https://cloud.githubusercontent.com/assets/2662304/14093128/4d566494-f554-11e5-8ee4-5392e0ac51f0.gif) + +- **IPv4 networking**
+ bandwidth, packets, errors, fragments, + tcp: connections, packets, errors, handshake, + udp: packets, errors, + broadcast: bandwidth, packets, + multicast: bandwidth, packets + +- **IPv6 networking**
+ bandwidth, packets, errors, fragments, ECT, + udp: packets, errors, + udplite: packets, errors, + broadcast: bandwidth, + multicast: bandwidth, packets, + icmp: messages, errors, echos, router, neighbor, MLDv2, group membership, + break down by type + +- **Interprocess Communication - IPC**
+ such as semaphores and semaphores arrays + +- **netfilter / iptables Linux firewall**
+ connections, connection tracker events, errors + +- **Linux DDoS protection**
+ SYNPROXY metrics + +- **fping** latencies
+ for any number of hosts, showing latency, packets and packet loss + + ![image](https://cloud.githubusercontent.com/assets/2662304/20464811/9517d2b4-af57-11e6-8361-f6cc57541cd7.png) + + +- **Processes**
+ running, blocked, forks, active + +- **Entropy**
+ random numbers pool, using in cryptography + +- **NFS file servers and clients**
+ NFS v2, v3, v4: I/O, cache, read ahead, RPC calls + +- **Network QoS**
+ the only tool that visualizes network `tc` classes in realtime + + ![qos-tc-classes](https://cloud.githubusercontent.com/assets/2662304/14093004/68966020-f553-11e5-98fe-ffee2086fafd.gif) + +- **Linux Control Groups**
+ containers: systemd, lxc, docker + +- **Applications**
+ by grouping the process tree and reporting CPU, memory, disk reads, + disk writes, swap, threads, pipes, sockets - per group + + ![apps](https://cloud.githubusercontent.com/assets/2662304/14093565/67c4002c-f557-11e5-86bd-0154f5135def.gif) + +- **Users and User Groups resource usage**
+ by summarizing the process tree per user and group, + reporting: CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets + +- **Apache and lighttpd web servers**
+ `mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers + +- **Nginx web servers**
+ `stub-status`, for multiple servers + +- **Tomcat**
+ accesses, threads, free memory, volume + +- **web server log files**
+ extracting in real-time, web server performance metrics and applying several health checks + +- **mySQL databases**
+ multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues, + tmp operations, connections, binlog metrics, threads, innodb metrics, and more + +- **Postgres databases**
+ multiple servers, each showing: per database statistics (connections, tuples + read - written - returned, transactions, locks), backend processes, indexes, + tables, write ahead, background writer and more + +- **Redis databases**
+ multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves + +- **mongodb**
+ operations, clients, transactions, cursors, connections, asserts, locks, etc + +- **memcached databases**
+ multiple servers, each showing: bandwidth, connections, items + +- **elasticsearch**
+ search and index performance, latency, timings, cluster statistics, threads statistics, etc + +- **ISC Bind name servers**
+ multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics + +- **NSD name servers**
+ queries, zones, protocols, query types, transfers, etc. + +- **Postfix email servers**
+ message queue (entries, size) + +- **exim email servers**
+ message queue (emails queued) + +- **Dovecot** POP3/IMAP servers
+ +- **ISC dhcpd**
+ pools utilization, leases, etc. + +- **IPFS**
+ bandwidth, peers + +- **Squid proxy servers**
+ multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests + +- **HAproxy**
+ bandwidth, sessions, backends, etc + +- **varnish**
+ threads, sessions, hits, objects, backends, etc + +- **OpenVPN**
+ status per tunnel + +- **Hardware sensors**
+ `lm_sensors` and `IPMI`: temperature, voltage, fans, power, humidity + +- **NUT and APC UPSes**
+ load, charge, battery voltage, temperature, utility metrics, output metrics + +- **PHP-FPM**
+ multiple instances, each reporting connections, requests, performance + +- **hddtemp**
+ disk temperatures + +- **smartd**
+ disk S.M.A.R.T. values + +- **SNMP devices**
+ can be monitored too (although you will need to configure these) + +- **statsd**
+ [netdata is a fully featured statsd server](https://github.com/firehol/netdata/wiki/statsd) + +And you can extend it, by writing plugins that collect data from any source, using any computer language. + +## Links + + * Report a bug: https://github.com/YunoHost-Apps/netdata_ynh/issues + * NetData website: http://my-netdata.io/ \ No newline at end of file diff --git a/app_piwigo.md b/app_piwigo.md new file mode 100644 index 00000000..0ed09045 --- /dev/null +++ b/app_piwigo.md @@ -0,0 +1,32 @@ +## + + + + +[Piwigo](http://piwigo.org) is a photo gallery software for the web, built by an active community of users and developers. + +Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and opensource. + +[![Install Piwigo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=piwigo) + +![](http://piwigo.org/screenshots/homepage/piwigo-batch-manager.png) + +## Features + +In addition to Piwigo [core features](http://piwigo.org/basics/features), the following are made available with +this package: + + * Integrate with YunoHost users and SSO: + * private mode: limit access to Yunohost users + * public mode: + * SSO for YunoHost users + * allow other users management, and guest mode + * Allow one YunoHost user to be the administrator (set at the installation) + + +## Links + + * Report a bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues + * Piwigo website: http://piwigo.org/ + + diff --git a/app_piwigo_fr.md b/app_piwigo_fr.md new file mode 100644 index 00000000..ada13e24 --- /dev/null +++ b/app_piwigo_fr.md @@ -0,0 +1,30 @@ +## + + + + +[Piwigo](http://piwigo.org) est un logiciel de galerie photo pour le web, bâti par une communauté active d'utilisateurs et de développeurs. + +Les extensions rendent Piwigo facilement personnalisable. Cerise sur le gâteau, Piwigo est libre et gratuit. + +[![Installer Piwigo avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=piwigo) + +![](http://piwigo.org/screenshots/homepage/piwigo-batch-manager.png) + +## Fonctionnalités + +En plus des [fonctionnalités principales](Piwigo) de Piwigo, ce paquet propose également: + + * une intégration avec le système de gestion des utilisateurs et le SSO de Yunohost : + * installation privée : limitée aux utilisateurs de YunoHost + * installation publique : + * SSO pour les utilisateurs YunoHost + * permet de gérer l'accès à d'autres utilisateurs, et mode invité possible + * de permettre à un utilisateur d'être administrateur (réglage lors de l'installation) + +## Liens + + * Rapport de bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues + * Site web Piwigo : http://piwigo.org/ + + diff --git a/app_ttrss.md b/app_ttrss.md index f93d08a4..8ccedfa0 100644 --- a/app_ttrss.md +++ b/app_ttrss.md @@ -1,4 +1,4 @@ -#Tiny Tiny RSS +# Tiny Tiny RSS Tiny Tiny RSS is a news feed reader using RSS and atom protocols. @@ -10,11 +10,11 @@ In order to do so, go to Actions -> Configuration -> feed tab -> OPML section -> You can read your feeds on Android using ttrss-reader application: -**[ttrss-reader](https://f-droid.org/repository/browse/?fdfilter=rss&fdid=org.ttrssreader)** +**[ttrss-reader](https://f-droid.org/packages/org.ttrssreader/)** To use it, you need to go to Actions -> Configuration, in TTRSS web interface and select "Activate API". Then, in your android ttrss-reader, fill the TTRSS server adress: "https://yourdomain.org/ttrss", username, password (no need to use HTTP authentification). **Note** : you may need to uninstall and reinstall the TTRSS application through the Yunohost admin panel in order to be able to connect. -* [Tiny Tiny RSS Website](http://tt-rss.org/redmine/projects/tt-rss/wiki) +* [Tiny Tiny RSS Website](https://git.tt-rss.org/git/tt-rss/wiki) diff --git a/app_ttrss_fr.md b/app_ttrss_fr.md index 79c06fa6..be8b239c 100644 --- a/app_ttrss_fr.md +++ b/app_ttrss_fr.md @@ -1,4 +1,4 @@ -#Tiny Tiny RSS +# Tiny Tiny RSS Tiny Tiny RSS est un lecteur de flux d’actualité utilisant les protocoles RSS et atom. @@ -11,11 +11,11 @@ Pour cela, il faut aller dans Actions -> Configuration -> onglet flux -> chapitr Il est possible d’utiliser le client Android ttrss-reader pour consulter ces flux : -**[ttrss-reader](https://f-droid.org/repository/browse/?fdfilter=rss&fdid=org.ttrssreader)** +**[ttrss-reader](https://f-droid.org/packages/org.ttrssreader/)** Sur l’interface web, dans Actions -> Configuration, cochez « Activer l’accès par API » puis dans ttrss-reader sur Android, l’adresse du serveur TTRSS : « https://votredomaine.org/ttrss », nom d’utilisateur, mot de passe. (pas besoin d’utiliser l’authentification HTTP) **Note** : vous pouvez avoir besoin de désinstaller, puis réinstaller entièrement l’app ttrss via l’administration de YunoHost pour que la connexion puisse se faire. -* [Site de Tiny Tiny RSS](http://tt-rss.org/redmine/projects/tt-rss/wiki) \ No newline at end of file +* [Site de Tiny Tiny RSS](https://git.tt-rss.org/git/tt-rss/wiki) diff --git a/apps.md b/apps.md index 01345a25..0b820a07 100644 --- a/apps.md +++ b/apps.md @@ -1,44 +1,138 @@ -#Official apps +# Apps - - - - - - - - - - - -Official apps Apps in progress Apps wishlist - -
-
View all
+
+ + +
- -
- -
-
All official applications are under free licenses.
+
+

Only apps tagged validated are officially supported by the package team.

+ +

Apps tagged working, inprogress, notworking are from community repository, you can test and use them **at your own risk**.

+ +

Important: it's the application maintaineur that qualify his application as working, not the YunoHost core team. Install it at your own risks. We won't provide support for it.

+
+
The packagers will appreciate your remarks. If you install them and find issues, or ideas for improvement, do not hesitate to file issues directly on their repositories project page.
+ +
+ +
If you don't find the app you are searching for, you can search it in community app repository (working, inprogress and not working apps) or fill the apps wishlist.
+ + + + + diff --git a/apps_fr.md b/apps_fr.md index e1312afa..04769916 100644 --- a/apps_fr.md +++ b/apps_fr.md @@ -1,49 +1,144 @@ -#Apps officielles +# Apps - - - - - - - - - - - -Apps officielles Apps en cours Apps souhaitées - -
-
Tout déplier
+ - -
- -
-
Toutes les applications officielles sont sous licences libres.
+
+

Seules les apps marquées validated sont officiellement supportées par l'équipe d'empaquetage.

+ +

Les apps marquées working, inprogress, notworking sont des applications non officielles maintenues par la communauté, vous pouvez les tester et les utiliser **à vos risques et périls**.

+ +

Important: c'est le mainteneur de l'application qui définit son application comme "working" et non pas l'équipe d'empaquetage de Yunohost. Installez ces apps à vos risques et périls. Nous ne fournissons pas de support pour elles.

+
+
Les empaqueteurs apprécieront vos remarques. Si vous installez leurs apps et trouvez des dysfonctionnement, ou si vous avez des idées d'amélioration, n'hésitez pas à créer des tickets directement sur les pages de dépots des projets.
+ +
+ +
Si vous ne trouvez pas l'applications que vous recherchez, vous pouvez la rechercher dans les apps communautaires (working, inprogress et notworking) ou remplir la liste d'apps souhaitées.
+ + + + + diff --git a/apps_in_progress.md b/apps_in_progress.md deleted file mode 100644 index 821ae0a6..00000000 --- a/apps_in_progress.md +++ /dev/null @@ -1,134 +0,0 @@ -# Apps in progress - - - - - - - - - - - - -Official apps -Apps in progress -Apps wishlist - -The following applications are being packaged on by a growing number of packagers. -
They are **NOT** validated by the packaging team, and as such, **no official support is provided** for them.
-You can test and use them **at your own risk**. -
- -You can install them through the [administration web interface](/admin) by choosing "Install custom app", or using the [moulinette](/moulinette): -```bash -yunohost app install https://github.com// -``` - -The packagers will appreciate your remarks. If you test them and find issues, or ideas for improvement, do not hesitate to file issues directly on their repositories project page. - -
-
Collapse broken
-
Collapse in progress
-
Collapse working
-
- -

Declared as working applications

-

Important: it's the application maintaineur that qualify his application as working, not the YunoHost core team. Install it at your own risks. We won't provide support for it.

- -
- -

Work in progress applications

-

Those are not yet finished applications, we strongly advise against installing them except if you know what you are doing.

- -
- -

Broken applications

-

Do NOT install them, they are here as reference while they aren't fixed.

- -
- - - - diff --git a/apps_in_progress_fr.md b/apps_in_progress_fr.md deleted file mode 100644 index 6b76fb4f..00000000 --- a/apps_in_progress_fr.md +++ /dev/null @@ -1,137 +0,0 @@ -# Apps en cours - - - - - - - - - - - - -Apps officielles -Apps en cours -Apps souhaitées - -De plus en plus d’applications sont mises à disposition par les packagers. -
Ces applications **n’ont pas** été validées par l’équipe YunoHost et **ne sont pas** officiellement prises en charge.
Vous pouvez les tester et les utiliser à **vos risques et périls**. -
- -Elles sont installables avec l’[interface web d’administration](/admin) ou avec la moulinette : -```bash -yunohost app install https://github.com// -``` - -N’hésitez pas à vous créer un compte GitHub pour faire part de vos remarques aux packagers (sous forme d’« issues ») ou à leur proposer des améliorations (sous forme de « pull requests »). - -
-
Déplier cassées
-
Déplier en cours
-
Déplier fonctionnelles
-
- -

Applications dites fonctionnelles

-

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

- -
- -

Applications en cours de développement

-

Il s'agit d'application pas encore fonctionnelles mais en cours de développement, nous vous déconseillons fortement de les installer sauf si vous savez ce que vous faites.

- -
- -

Applications cassées

-

Ne les installez PAS, elles sont là pour référence le temps d'être réparées.

- -
- - - - diff --git a/apps_wishlist.md b/apps_wishlist.md index 4a0148bc..299f3680 100644 --- a/apps_wishlist.md +++ b/apps_wishlist.md @@ -1,6 +1,6 @@ # Apps wishlist -Official apps Apps in progress Apps wishlist +
Before to add an app in wishlist please check your app is not already in official or community list: see the apps list
The following list is a compiled wishlist of applications that would be nice-to-have. @@ -9,11 +9,12 @@ The following list is a compiled wishlist of applications that would be nice-to- - [List of awesome selfhosted apps](https://github.com/Kickball/awesome-selfhosted) - [List of awesome sysadmin apps](https://github.com/kahun/awesome-sysadmin) - [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects) +- [List of SIP softwares/applications](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license) - [10er10](https://github.com/dready92/10er10) - [Airtime](https://www.sourcefabric.org/en/airtime/) - [Ajenti](http://ajenti.org) - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) -- [Auth0 SSO Dashboard](https://github.com/auth0/auth0-sso-dashboard) +- [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension) - [Blynk](https://github.com/blynkkk/blynk-library) - [Bolt](http://bolt.cm) - [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html) @@ -24,14 +25,10 @@ The following list is a compiled wishlist of applications that would be nice-to- - [cgit](http://git.zx2c4.com/cgit/about) - [CheckUp](https://sourcegraph.github.io/checkup) - [CiviCRM](https://civicrm.org) -- [Collabora Online](https://www.collaboraoffice.com/code/) -- [Collabora Online server](https://nextcloud.com/collaboraonline/) (to be able to use Collabora inside Nextcloud) - [Commafeed](https://github.com/Athou/commafeed) - [Converse.js](https://conversejs.org) - [Coquelicot](https://coquelicot.potager.org) – [package](https://github.com/M5oul/coquelicot_ynh) -- [Cryptpad](https://github.com/xwiki-labs/cryptpad) - [Cronkeep](https://github.com/cronkeep/cronkeep) -- [CronWeb](https://github.com/fisherinnovation/CronWeb) - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption. - [CumulusClips](http://cumulusclips.org) - [Darkwire.io](https://github.com/seripap/darkwire.io) @@ -43,38 +40,38 @@ The following list is a compiled wishlist of applications that would be nice-to- - [Emby](https://emby.media) - [Emoncms](https://github.com/emoncms/emoncms) - [ERPnext](https://erpnext.com/download) -- [Ethersheet](https://ethersheet.org) +- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet) - [Fail2web](https://github.com/Sean-Der/fail2web) - [Ferment](https://github.com/mmckegg/ferment) - [FileTea](https://filetea.me) - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software - [Fossil](http://www.fossil-scm.org) - [Framaslides](https://framagit.org/framasoft/framaslides/) +- [Geneweb](https://geneweb.tuxfamily.org) - [GetSimple CMS](http://get-simple.info) - [Git-annex](http://git-annex.branchable.com) - [Gitit](http://gitit.net) -- [GitLab](http://gitlab.org) - [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) - [Gollum](https://github.com/gollum/gollum) - [Goploader](https://github.com/Depado/goploader) +- [Granary](https://github.com/snarfed/granary) - [Guacamole](http://guac-dev.org) - [h5ai](http://larsjung.de/h5ai) +- [HackMD](https://hackmd.io) - [Hackpad](https://github.com/dropbox/hackpad) - [Headphones](https://github.com/rembo10/headphones) -- [Hi Buddy](http://hibuddy.monkeypatch.me) +- [Hi Buddy](https://github.com/tOkeshu/hibuddy) - [Huginn](https://github.com/cantino/huginn) - [Hugo](http://gohugo.io) - [Icecast 2](http://www.icecast.org) - [ikiwiki](http://ikiwiki.info) -- [img.bi](https://img.bi) -- [Inbox](https://www.inboxapp.com) +- [img.bi](https://github.com/imgbi/img.bi) - [InfCloud](https://www.inf-it.com/open-source/clients/infcloud) - [InvoicePlane](https://invoiceplane.com) - [IPFS](https://ipfs.io) -- [Jeedom](http://www.jeedom.fr) – [package](https://github.com/lunarok/jeedom_ynh) -- [Joomla!](https://www.joomla.org) - [JS Bin](http://jsbin.com/help/2-second-setup) - [Kaiwa](http://getkaiwa.com) +- [Keepass](http://keepass.info) - [Kin calendar](https://github.com/KinToday) - [Kinto](https://github.com/Kinto/formbuilder) - [Kiwix](http://www.kiwix.org/) Offline wikipedia @@ -85,23 +82,22 @@ The following list is a compiled wishlist of applications that would be nice-to- - [Kresus](https://framagit.org/bnjbvr/kresus) - [KrISS feed](https://github.com/tontof/kriss_feed) - [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29) +- [LibreNews-Server](https://librenews.io) - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online) - [LiquidSoap](http://savonet.sourceforge.net/) - [Logstalgia](http://logstalgia.io) - [Loomio](https://www.loomio.org) - [The Lounge](https://thelounge.github.io), cf. https://github.com/Kloadut/shout_ynh/issues/4 -- [LSTU](https://github.com/ldidry/lstu) - [MaidSafe](http://maidsafe.net) - [Mailpile](https://www.mailpile.is) -- [MatterMost](https://github.com/mattermost/platform) - [MediaCrush](https://imgrush.com) - [MinigalNano](https://github.com/sebsauvage/MinigalNano) - [Mirakel](http://mirakel.azapps.de/taskwarrior.html) - [Modoboa](http://modoboa.org) +- [MotionEye](https://github.com/ccrisan/motioneye) - [MPD](http://www.musicpd.org) -- [NetData](https://github.com/firehol/netdata) +- [Museek+](https://github.com/eLvErDe/museek-plus) - [Nibbleblog](http://www.nibbleblog.com) -- [NodeBB](https://nodebb.org) - [Nuage](https://nuage.kerjean.me/login) - [ONLYOFFICE](http://onlyoffice.org) - [ONLYOFFICE Document Server](http://helpcenter.onlyoffice.com/server/linux/document/linux-installation.aspx) (to be able to use ONLYOFFICE inside Nextcloud) @@ -112,7 +108,6 @@ The following list is a compiled wishlist of applications that would be nice-to- - [pdfy](https://github.com/joepie91/pdfy) - [PeerTube](https://github.com/Chocobozzz/PeerTube) - [Pelias](https://github.com/pelias/pelias) -- [Pelican](http://blog.getpelican.com) - [Peps](https://github.com/MLstate/PEPS) - [PHPList](http://www.phplist.com) - [PHProxy](http://sourceforge.net/projects/poxy) @@ -124,44 +119,39 @@ The following list is a compiled wishlist of applications that would be nice-to- - [ProcessMaker](http://www.processmaker.com) - [Pulse](https://ind.ie/pulse) - [Pump.io](http://pump.io) +- [qBittorrent](https://github.com/qbittorrent/qBittorrent) - [racktables](http://racktables.org) - [remotestorage-server](http://remotestorage.io/provide) - [Request Tracker](https://bestpractical.com) - [Respawn 2.0](https://github.com/broncowdd/respawn) - [Restya](http://restya.com) -- [uMap](https://umap.openstreetmap.fr/en) - [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble) - [Scribbleton](https://scribbleton.com) - [ShareLatex](https://www.sharelatex.com) - [Shleuder](http://schleuder2.nadir.org) - [Simone](https://github.com/Kloadut/Simone) -- [SIP](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license) - [Sonarr](https://sonarr.tv) - [Stackedit](https://stackedit.io) - [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion. - [Streama](https://github.com/dularion/streama) - [Streisand](https://github.com/jlund/streisand) - [SVG-Edit](https://github.com/SVG-Edit/svgedit) -- [Sympa](http://www.sympa.org) - [Taskwarrior](https://taskwarrior.org) - [Taiga](https://taiga.io) - [TorChat](https://github.com/prof7bit/TorChat) - [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client) - [Total Respawn](https://github.com/broncowdd/TotalRespawn) +- [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds. - [Twister](http://twister.net.co) -- [Unvis](https://github.com/phixofor/unvis.it) +- [Unvis](https://github.com/lodjuret/unvis.it) - [Unsee](https://github.com/unsee-cc) - [Vaultier](http://www.vaultier.org) -- [Weblate](http://weblate.org) - [Webmpc](https://github.com/ushis/webmpc) - [WebODF](http://webodf.org) - [webSync](http://furier.github.io/websync) - [WebTorrent](https://github.com/feross/webtorrent) -- [Wekan](http://wekan.io) -- [WID](https://wid.chorem.com/site/home) - [Wisemapping](http://www.wisemapping.com) - [Xonotic](http://xonotic.org) -- [Yacy](http://yacy.net) – [package](https://github.com/M5oul/yacy_ynh) - [YellowCMS](http://datenstrom.se/yellow) - [YesWiki](http://yeswiki.net/wa.php?wiki=AccueiL) - [ZeroTier](https://github.com/zerotier/ZeroTierOne) diff --git a/apps_wishlist_fr.md b/apps_wishlist_fr.md index 5c9c3683..28616ea0 100644 --- a/apps_wishlist_fr.md +++ b/apps_wishlist_fr.md @@ -1,7 +1,3 @@ # Apps souhaitées -Apps officielles -Apps en cours -Apps souhaitées - La liste des applications souhaitées n’est maintenue qu’en version anglaise. Merci de vous y référer. diff --git a/build_system_fr.md b/build_system_fr.md index 46067fe9..3bc34836 100644 --- a/build_system_fr.md +++ b/build_system_fr.md @@ -29,7 +29,7 @@ deb http://repo.yunohost.org/debian/ jessie stable testing unstable ## Workflow -Le but du workflow est d’éviter toute intervention manuelle (lancement d’un script, etc.) sur le serveur, et de maîtriser la gestion des paquets via GitHub uniquement. +Le but du workflow est d’éviter toute intervention manuelle (lancement d’un script, etc.) sur le serveur, et de maîtriser la gestion des paquets via GitHub uniquement. (Edit: les webhooks ne sont plus fonctionnels, il est nécessaire de lancer la création des paquets à la main) Ainsi, les dépôts de chaque paquet yunohost possèdent trois branches correspondant aux trois composants (`unstable`, `testing` et `stable`). Le serveur de build construit et déploie **automatiquement** les paquets sources et binaires Debian correspondant à l’état de ces trois branches sur GitHub. @@ -137,7 +137,7 @@ Puis passer dans la branche `unstable` et merger la branche `testing`. Un nouvea #### Publier une release testing ou stable -Pour l'instant, on passe par une release via GitHub pour déclencher le build du paquet. +Pour l'instant, on passe par une release via GitHub pour déclencher le build du paquet. (Edit: les webhooks ne sont plus fonctionnels, il est nécessaire de lancer la création des paquets à la main) Aller sur https://github.com/YunoHost/{moulinette, yunohost, yunohost-admin, ssowat}/releases/new @@ -153,6 +153,14 @@ Ex: "debian/2.4.1" Reprendre le changelog depuis `debian/changelog`. Remercier les contributeurs/traducteurs ( Pour voir le dernier commit : `git show HEAD` ) +5/ Création des paquets +Une fois connecté à `veganaise2`, il faut utiliser la commande `ynh-build` pour lancer la création des paquets. +Exemples de commandes: +```bash +ynh-build yunohost stable 2.6.5 +ynh-build moulinette testing 2.6.9 +``` + #### Paquets non YunoHost Pour les paquets « non-YunoHost » (par exemple `rspamd`) le paquet ne passe pas par le composant `unstable`, mais uniquement `testing` et `stable` une fois les tests effectués sur ce paquet. diff --git a/certmanager.md b/certmanager.md index 99872bb3..70ce239f 100644 --- a/certmanager.md +++ b/certmanager.md @@ -15,7 +15,7 @@ command line with `yunohost domain cert-status`, `cert-install` and Your server needs to be reachable from the rest of Internet on port 80 (and 443), and make your `domain.tld` points to your server's public IP in your DNS -configuration. See [this documentation](hdiagnostic) if you need help. +configuration. See [this documentation](diagnostic_en) if you need help. #### Will my certificate be automatically be renewed ? diff --git a/contribute.md b/contribute.md index f09aaab3..eeb06146 100644 --- a/contribute.md +++ b/contribute.md @@ -33,7 +33,7 @@ We need people able to test YunoHost deeply. If you find a bug, try to identify    Helping users
-Our support relies on contributors like you. Just come to [the XMPP chatroom](/support) and help new users getting started, or pick a question on the Forum. +Our support relies on contributors like you. Just come to [the support chatroom](/help) and help new users getting started, or pick a question on the Forum.
@@ -109,32 +109,3 @@ Seed (share) YunoHost images with Torrent system: [live](http://build.yunohost.o

In any case, please [come to dev chatroom](xmpp:dev@conference.yunohost.org?join) to contribute :-)

- - diff --git a/contribute_fr.md b/contribute_fr.md index 28403815..124bfe68 100644 --- a/contribute_fr.md +++ b/contribute_fr.md @@ -33,7 +33,7 @@ Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essa    Aidez les utilisateurs
-Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon de discussion XMPP](/support_fr), ou tentez de répondre aux questions du Forum. Vous pouvez aussi organiser des ateliers de formation. +Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help_fr), ou tentez de répondre aux questions du Forum. Vous pouvez aussi organiser des ateliers de formation.
@@ -105,32 +105,3 @@ Seedez (partagez) avec le système de Torrent les images de YunoHost : [live](h

Dans tous les cas, venez sur le [salon de développement](xmpp:dev@conference.yunohost.org?join) pour contribuer :-)

- - diff --git a/default.md b/default.md index 03140a4b..d8eebdbb 100644 --- a/default.md +++ b/default.md @@ -2,10 +2,10 @@ This page is not created yet, you can edit it by pressing `````` on your keyboard or by clicking the "edit" button on the bottom-right side of your screen. You will be able to preview your changes by pressing `````` again or by clicking the "preview" button. -** Note: ** If you don't have any account you will have to send the modifications manually. +** Note: ** You will need to provide an email adress to validate your submission. ###Syntax This page use the markdown syntax, please refer to the documentation for further informations: -http://daringfireball.net/projects/markdown/syntax \ No newline at end of file +http://daringfireball.net/projects/markdown/syntax diff --git a/default_fr.md b/default_fr.md index 4c8158a0..75c46aa3 100644 --- a/default_fr.md +++ b/default_fr.md @@ -2,7 +2,7 @@ Cette page n’existe pas encore, vous pouvez l’éditer en appuyant sur la touche ```<Échap>``` de votre clavier, ou en cliquant sur le bouton "Éditer" en bas à droite de votre écran. Vous pourrez avoir un aperçu de vos changements en appuyant à nouveau sur la touche ```<Échap>``` ou en cliquant sur le bouton "Aperçu". -** Note : ** Si vous n’avez pas de compte vous devrez envoyer vos modifications manuellement. +** Note : ** Vous aurez besoin d'une adresse email pour valider votre proposition. ### Syntaxe diff --git a/dev.md b/dev.md index 1d677afc..378cfe64 100644 --- a/dev.md +++ b/dev.md @@ -122,34 +122,3 @@ If you're looking for stuff to implement or fix, the bug-tracker is should be merged in `testing` (?) ! - - - - diff --git a/dev_fr.md b/dev_fr.md index 1acd96da..3d2ab6d4 100644 --- a/dev_fr.md +++ b/dev_fr.md @@ -131,34 +131,4 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page. - Après relecture, test et validation par les autres contributeurs, votre branche sera mergée dans `testing` (?) ! - - - diff --git a/dkim.md b/dkim.md index b0e5d9e2..b34a5c1f 100644 --- a/dkim.md +++ b/dkim.md @@ -1,166 +1,8 @@ # DKIM -
This page is deprecated. DKIM is now by default integrated in YunoHost with [Rspamd](https://rspamd.com)/rmilter.
-Now you just need to add a zone in your DNS configuration according to the file /etc/dkim/yourdomainname.tld.mail.txt +
+DKIM is now integrated by default in YunoHost with [Rspamd](https://rspamd.com)/rmilter. +Make sure to add the TXT record for mail._domainkey from [the recommended DNS +configuration](dns_config) for DKIM to be fully operational. +
- -##### Note: -* This is the 2nd revision of this Work In Progress How-To activate [DKIM](https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail) and [SPF](https://en.wikipedia.org/wiki/Sender_Policy_Framework) in YunoHost. -* Le DKIM and SPF prevent emails which could be sent with your domain name from a non legitim server. This avoid spam. -* Untill, this is not natively integrated in YunoHost core, it will mean to that Postfix configuration will be blocked (or each time there is a change some configuration lines will need to be added to the end of `/etc/postfix/main.cf`). -* To be fully functionnal DKIM requires a modification of your [DNS zone](/dns_config_en), which propagantion can take up to 24h. - -##### Sources: -* This tutorial has been initially based on the DKMI section of: http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/ from Drew Crawford. -* This tutorial has been reviewed based on https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy from Popute Sebastian Armin - -Replace `DOMAIN.TLD` by your own domain name. - -Changes in 2n revision: -Much easier to manage more than one DOMAIN.TLD (future proof). -Updated configuration as it seemed that the previous one was based on old software. - -So, here is the thing: -### With a script -Fully automatic script: (single domain) -```bash -git clone https://github.com/polytan02/yunohost_auto_config_basic -cd yunohost_auto_config_basic -sudo ./5_opendkim.sh -``` - -### Manually -We start by installing the right software: -```bash -sudo aptitude install opendkim opendkim-tools -``` - -Then we configure opendkim -```bash -sudo nano /etc/opendkim.conf -``` - -Text to be placed in the text file: -```bash -AutoRestart Yes -AutoRestartRate 10/1h -UMask 022 -Syslog yes -SyslogSuccess Yes -LogWhy Yes - -Canonicalization relaxed/simple - -ExternalIgnoreList refile:/etc/opendkim/TrustedHosts -InternalHosts refile:/etc/opendkim/TrustedHosts -KeyTable refile:/etc/opendkim/KeyTable -SigningTable refile:/etc/opendkim/SigningTable - -Mode sv -PidFile /var/run/opendkim/opendkim.pid -SignatureAlgorithm rsa-sha256 - -UserID opendkim:opendkim - -Socket inet:8891@127.0.0.1 - -Selector mail -``` - -Connect the milter to Postfix: -```bash -sudo nano /etc/default/opendkim -``` - -Text to be placed in the text file: -```bash -SOCKET="inet:8891@localhost" -``` - -Configure Postfix to use this milter: -```bash -sudo nano /etc/postfix/main.cf -``` - -Text to be placed **at the end** in the text file: -```bash -# OpenDKIM milter - -milter_protocol = 2 -milter_default_action = accept -smtpd_milters = inet:127.0.0.1:8891 -non_smtpd_milters = inet:127.0.0.1:8891 -``` - -Create a directory structure that will hold the trusted hosts, key tables, signing tables and crypto keys: -```bash -sudo mkdir -pv /etc/opendkim/keys/DOMAIN.TLD -``` - -Specify trusted hosts: -```bash -sudo nano /etc/opendkim/TrustedHosts -``` - -Text to be placed in the text file: -```bash -127.0.0.1 -localhost -192.168.0.1/24 -*.DOMAIN.TLD -``` - -Create a key table: -```bash -sudo nano /etc/opendkim/KeyTable -``` - -Text to be placed in the text file: be very careful, it needs to be on a **single line** for each domain. -```bash -mail._domainkey.DOMAIN.TLD DOMAIN.TLD:mail:/etc/opendkim/keys/DOMAIN.TLD/mail.private -``` - -Create a signing table: -```bash -sudo nano /etc/opendkim/SigningTable -``` - -Text to be placed in the text file: -```bash -*@DOMAIN.TLD mail._domainkey.DOMAIN.TLD -``` - -Now we generate the keys! smile -```bash -sudo cd /etc/opendkim/keys/DOMAIN.TLD -sudo opendkim-genkey -s mail -d DOMAIN.TLD -``` - -Output the DKIM DNS line to the terminal. Then, we install it on our DNS server. My ZONE file looks like this. (Be very careful with the formatting, the "p=...." needs to be in a single line.) -```bash -cat mail.txt - -mail._domainkey IN TXT "v=DKIM1; k=rsa; p=AAAKKUHGCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPFrBM54eXlZPXLJ7EFphiA8qGAcgu4lWuzhzxDDcIHcnA/fdklG2gol1B4r27p87rExxz9hZehJclaiqlaD8otWt8r/UdrAUYNLKNBFGHJ875467jstoAQAB" ; ----- DKIM key mail for DOMAIN.TLD -``` - -And we don't forget to put the right rights otherwise opendkim will get grumpy... -```bash -chown -Rv opendkim:opendkim /etc/opendkim* -``` - -And finally, we restart everything: -```bash -sudo service opendkim restart -sudo service postfix restart -``` - -To test if it is all working well (don't forget that the DNS propagation can take a bit of take…) you can simply go to [mail-tester.com](http://www.mail-tester.com) and send an e-mail to the address indicated. Then follow the link and the result will appear. - -# SPF -Lastly, don't forget to add a SPF key in your [DNS zone](/dns_config_en) such as: -```bash -DOMAIN.TLD 300 TXT "v=spf1 a:DOMAIN.TLD ip4: ip6: mx ?all" - ``` - -As reminder, the SPF field shows that the only machine using the IP address shows in your DNS zone are authorized to send emails. -If you don't have IPv6 on your email server, simply delete le ip6:<...> section diff --git a/dkim_fr.md b/dkim_fr.md index 095fa478..e85066c2 100644 --- a/dkim_fr.md +++ b/dkim_fr.md @@ -1,171 +1,9 @@ # DKIM -
Cette page n’est plus à jour. Le DKIM est a présent intégré par défaut dans YunoHost avec [Rspamd](https://rspamd.com)/rmilter. -Il suffit désormais de créer une zone DNS en s'inspirant du fichier /etc/dkim/yourdomainname.tld.mail.txt
+
+DKIM est maintenant intégré de base dans YunoHost grâce à [Rspamd](https://rspamd.com)/rmilter. +Il vous suffit d'ajouter l'enregistrement DNS de type TXT recommandé pour +mail._domainkey tel que donné par [la configuration DNS recommandée](dns_config_fr) +pour que les signatures DKIM soient pleinement fonctionelles. +
-Le protocole SMTP ne prévoit pas de mécanisme de vérification de l’expéditeur. Il est donc possible d’envoyer un courrier avec une adresse d’expéditeur factice ou usurpée. SPF et DKIM sont deux mécanismes d’authentification de l’expéditeur d’un email. - -#### Notes : - -* Ceci est la deuxième version de ce travail en cours concernant l’activation de [DKIM](https://fr.wikipedia.org/wiki/DomainKeys_Identified_Mail) et [SPF](https://fr.wikipedia.org/wiki/Sender_Policy_Framework) dans YunoHost. -* Le DKIM et le SPF empêchent le fait que des courriels puissent être envoyés avec votre nom de domaine à partir d’un autre serveur que le serveur légitime. Ceci évite le spam. -* En attendant que tout ceci soit intégré nativement dans YunoHost, cela nécessitera une modification de la configuration de Postfix dans `/etc/postfix/main.cf`. -* Pour fonctionner correctement, DKIM nécessite une modification de votre [zone DNS](/dns_config_fr). N’oubliez pas que la propagation de l’information DNS une fois modifiée peut prendre jusqu’à 24h ! - -#### Sources : -* Ce document a été initialement basé sur : http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/ de Drew Crawford. -* Cette 2e révision s’appuie beaucoup sur : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy from Popute Sebastian Armin - -Dans la suite de ce document, replacez `DOMAIN.TLD` par votre propre nom de domaine. - -Changement dans la 2de révision : - -* La configuration s’adapte très facilement à plusieurs noms de domaines simultanés. -* Mise à jour des paramètres de configuration avec la dernière version de OpenDKIM disponible dans Debian 7. - -Rentrons maintenant dans le cœur du sujet : -### Avec un script -Utiliser un script tout fait et répondez aux questions : -```bash -git clone https://github.com/polytan02/yunohost_auto_config_basic -cd yunohost_auto_config_basic -sudo ./5_opendkim.sh -``` - -### À la main -On commence par installer les logiciels : -```bash -sudo aptitude install opendkim opendkim-tools -``` - -Ensuite on configure openDKIM : -```bash -sudo nano /etc/opendkim.conf -``` - -Texte à insérer dans le document : -```bash -AutoRestart Yes -AutoRestartRate 10/1h -UMask 022 -Syslog yes -SyslogSuccess Yes -LogWhy Yes - -Canonicalization relaxed/simple - -ExternalIgnoreList refile:/etc/opendkim/TrustedHosts -InternalHosts refile:/etc/opendkim/TrustedHosts -KeyTable refile:/etc/opendkim/KeyTable -SigningTable refile:/etc/opendkim/SigningTable - -Mode sv -PidFile /var/run/opendkim/opendkim.pid -SignatureAlgorithm rsa-sha256 - -UserID opendkim:opendkim - -Socket inet:8891@127.0.0.1 - -Selector mail -``` - -On connecte ensuite le milter à Postfix : -```bash -sudo nano /etc/default/opendkim -``` - -Texte à insérer dans le document : -```bash -SOCKET="inet:8891@localhost" -``` - -Configurer Postfix pour utiliser ce milter : -```bash -sudo nano /etc/postfix/main.cf -``` - -Texte à insérer à la fin du document : -```bash -# OpenDKIM milter -milter_protocol = 2 -milter_default_action = accept -smtpd_milters = inet:127.0.0.1:8891 -non_smtpd_milters = inet:127.0.0.1:8891 -``` - -Créer la structure de dossiers qui contiendra la clé, les hôtes connues et quelques tableaux de données : -```bash -sudo mkdir -pv /etc/opendkim/keys/DOMAIN.TLD -``` - -On précise les hôtes de confiance : -```bash -sudo nano /etc/opendkim/TrustedHosts -``` - -Texte à insérer dans le document : -```bash -127.0.0.1 -localhost -192.168.0.1/24 -*.DOMAIN.TLD -``` - -Créer le tableau des clés : -```bash -sudo nano /etc/opendkim/KeyTable -``` - -(Texte à insérer dans le document : faites très attention, ça doit rester ** sur une seule ligne ** pour chaque nom de domaine) -mail._domainkey.DOMAIN.TLD DOMAIN.TLD:mail:/etc/opendkim/keys/DOMAIN.TLD/mail.private - -Créer un tableau des signatures : -```bash -sudo nano /etc/opendkim/SigningTable -``` - -Texte à insérer dans le document : -```bash -*@DOMAIN.TLD mail._domainkey.DOMAIN.TLD -``` - -Maintenant on peut générer nos clés ! -```bash -sudo cd /etc/opendkim/keys/DOMAIN.TLD -sudo opendkim-genkey -s mail -d DOMAIN.TLD -``` - -On affiche les paramètres DNS de DKIM générés par opendkim dans le terminal. -Ensuite, on installera la clé DKIM dans notre DNS. Ma zone DNS ressemble à l’exemple ci-dessous. -(Faites très attention à la casse, le "p=...." doit rester sur une seule ligne dans le DNS et pas sur plusieurs, sinon cela ne sera pas accepté ni reconnu) -```bash -cat mail.txt -``` - -```bash -mail._domainkey IN TXT "v=DKIM1; k=rsa; p=AAAKKUHGCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPFrBM54eXlZPXLJ7EFphiA8qGAcgu4lWuzhzxDDcIHcnA/fdklG2gol1B4r27p87rExxz9hZehJclaiqlaD8otWt8r/UdrAUYNLKNBFGHJ875467jstoAQAB" ; ----- DKIM key mail for DOMAIN.TLD -``` - -Et surtout, on n’oublie pas de donner les bons droits d’accès à opendkim aux fichiers créés par root... -```bash -chown -Rv opendkim:opendkim /etc/opendkim* -``` - -Et enfin, on redémarre le tout : -```bash -sudo service opendkim restart -sudo service postfix restart -``` - -Pour tester que tout fonctionne bien (n’oubliez pas que la propagation DNS peut prendre jusqu’à 24h...) vous pouvez tout simplement vous rendre sur [mail-tester.com](http://www.mail-tester.com/), envoyer un courriel à l’adresse indiquée et cliquer pour voir le résultat. - -# SPF -Enfin, n’oubliez pas d’ajouter une clé SPF dans votre [zone DNS](/dns_config_fr) (ou un champ TXT si SPF n’est pas disponible) : - -```bash -DOMAIN.TLD 1800 TXT "v=spf1 a:DOMAIN.TLD ip4: ip6: mx ?all" - ``` - -Pour rappel, le champ SPF indique que seule la machine utilisant l’adresse IP indiquée dans votre zone DNS est autorisée à envoyer des courriels. -Si vous n’avez pas d’IPv6 sur votre serveur, supprimez simplement la section ip6:<…> diff --git a/dns_config.md b/dns_config.md index 2c605cf7..d9e08da9 100644 --- a/dns_config.md +++ b/dns_config.md @@ -1,64 +1,82 @@ -## DNS zone configuration +# DNS zone configuration -Sample DNS zone configuration for `domain.tld` domain name: +DNS (domain name system) is a system that converts human-readable addresses +(domain names) into machine-understandable addresses (IP). For your server to be +easily accessible by human beings, and for some services like mail to work +properly, DNS must be configured. -#### Use yunohost command to generate my DNS ZONE +If you're using a nohost.me / noho.st domain, the configuration should be +performed automatically. If you're using your own domain name (e.g. bought via +a registrar), you should manually configure your domain on your registrar's +interface. + +## Recommended DNS configuration + +YunoHost provides a recommended DNS configuration, available via : +- the webadmin, in Domain > your.domain.tld > DNS configuration ; +- or the command line, `yunohost domain dns-conf your.domain.tld` + +For specific needs or specific setups, and if you know what you're doing, you +might want or have to tweak these or add additional ones (e.g. to handle +subdomains). + +The recommended configuration typically looks like this : -Connect to your server using yunohost and run the following as root ```bash -yunohost domain dns-conf domain.tld +# +# Basic ipv4/ipv6 records +# +@ 3600 IN A 111.222.33.44 +* 3600 IN A 111.222.33.44 + +# (If your server is IPv6 capable, there are some AAAA records) +@ 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111 +* 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111 + +# +# XMPP +# +_xmpp-client._tcp 3600 IN SRV 0 5 5222 your.domain.tld. +_xmpp-server._tcp 3600 IN SRV 0 5 5269 your.domain.tld. +muc 3600 IN CNAME @ +pubsub 3600 IN CNAME @ +vjud 3600 IN CNAME @ + +# +# Mail (MX, SPF, DKIM and DMARC) +# +@ 3600 IN MX 10 your.domain.tld. +@ 3600 IN TXT "v=spf1 a mx ip4:111.222.33.44 -all" +mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=someHuuuuuuugeKey" +_dmarc 3600 IN TXT "v=DMARC1; p=none" ``` -#### Redirection from the domain name to the IP address -```bash -@ 1800 IN A 111.222.333.444 # (Minimal) IPv4 -@ 1800 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 # IPv6 -``` +Though it might be easier to understand it if displayed like this : -#### Redirection from the domain name and subdomains to the IP address -```bash -* 1800 IN A 111.222.333.444 # Wildcard: *.domain.tld and domain.tld redirection to the IP address -* 1800 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 -``` -#### Subdomains -```bash -www 1800 IN CNAME @ # accesible at www.domain.tld -``` +| Type | Name | Value | +| :-----: | :--------------------: | :--------------------------------------------------: | +| **A** | **@** | `111.222.333.444` (your IPv4) | +| A | * | `111.222.333.444` (your IPv4) | +| AAAA | @ | `2222:444:8888:3333:bbbb:5555:3333:1111` (your IPv6) | +| AAAA | * | `2222:444:8888:3333:bbbb:5555:3333:1111` (your IPv6) | +| **SRV** | **_xmpp-client._tcp** | `0 5 5222 your.domain.tld.` | +| **SRV** | **_xmpp-server._tcp** | `0 5 5269 your.domain.tld.` | +| CNAME | muc | `@` | +| CNAME | pubsub | `@` | +| CNAME | vjud | `@` | +| **MX** | **@** | `your.domain.tld.` (and priority: 10) | +| TXT | @ | `"v=spf1 a mx ip4:111.222.33.44 -all"` | +| TXT | mail._domainkey | `"v=DKIM1; k=rsa; p=someHuuuuuuugeKey"` | +| TXT | _dmarc | `"v=DMARC1; p=none"` | -#### XMPP -```bash -_xmpp-client._tcp 1800 IN SRV 0 5 5222 domain.tld. # (Minimal) clients connection -_xmpp-server._tcp 1800 IN SRV 0 5 5269 domain.tld. # (Minimal) servers connection +#### A few notes about this table -muc 1800 IN CNAME @ # multi-user chat rooms at muc.domain.tld -anonymous 1800 IN CNAME @ # connection without account at `anonymous.domain.tld` -bosh 1800 CNAME @ # BOSH -_xmppconnect 1800 TXT "_xmpp-client-xbosh=https://bosh.domain.tld:5281/http-bind" -pubsub 1800 IN CNAME @ -vjud 1800 IN CNAME @ -``` - -#### Email -```bash -@ 1800 IN MX 10 domain.tld. # (Minimal) -@ 1800 IN TXT "v=spf1 a mx -all" -``` - -You should also consult the [DKIM documentation](#/dkim). DKIM allows yours mails not to be considered by spam by other mail service. In fact DKIM ask you to add an entry in your zone. - -#### Set up -Replace: -- "`domain.tld`" with your own domain preserving the dot at the end. -- IP samples values with your server IP addresses: - * `111.222.333.444`: [IPv4](http://ip.yunohost.org/). - * `2001:AABB:CCDD:EEFF:1122:3344:5566:7788`: [IPv6](http://ip6.yunohost.org/). - -DNS lines for subdomains, XMPP and email does not work without a redirection from the domain name to the IP address (one line is enough) because they depend on it. - -
To begin: lines with "(Minimal)" are the minimal required DNS entries to make redirection work from the domain name to the IP adress, XMPP and email.
- -
Warning: @ is the default domain name currently defined, some registrar (like OVH) does not accept it, so replace @ by your domain name (domain.tld**.**) with a dot at the end.
- -#### Time to live -All DNS lines above have `1800` value (30 minutes). It corresponds to [Time to live (TTL)](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) which represents and indicate time, in seconds, during which the DNS line can be kept in the cache. After this time, the information must me considered obsolete and must be updated. +- Not all these lines are absolutely necessary. For a minimal setup, you only need the records in bold. +- The dot at the end of `your.domain.tld.` is important ;) ; +- `@` corresponds to `your.domain.tld`, and e.g. `muc` corresponds to `muc.your.domain.tld` ; +- These are example values ! See your generated conf for the actual values you should use ; +- We recommend a [TTL](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) of 3600 (1 hour). But you can use something else if you + know what you're doing ; +- Don't put an IPv6 record if you're not sure IPv6 really works on your server ! + You might have issues with Let's Encrypt if it doesn't. diff --git a/dns_config_fr.md b/dns_config_fr.md index 3476586e..3fe48d45 100644 --- a/dns_config_fr.md +++ b/dns_config_fr.md @@ -1,66 +1,82 @@ -## Configuration de la zone DNS +# Configuration de la zone DNS -Exemple de configuration des entrées de la zone DNS pour le nom de domaine `domain.tld` : +DNS (système de nom de domaine) est un élément essentiel d'Internet qui permet +de convertir des adresses compréhensible par les êtres humains (les noms de +domaines) en adresses compréhensibles par la machine (les IPs). Pour que +votre serveur soit facilement accessible par d'autres êtres humains, et pour +que certains services comme le mail fonctionnent correctement, il est nécessaire +de configurer la zone DNS de votre domaine. -#### Utiliser la commande yunohost pour générer ma zone DNS +Si vous utilisez un domaine en nohost.me / noho.st domain, la configuration +devrait être faite automatiquement. Si vous utilisez votre propre nom de domaine +(e.g. acheté chez un registrar), il vous faut configurer manuellement votre +domaine via l'interface de votre registrar. + +## Configuration DNS recommandée + +YunoHost fourni une configuration DNS recommandée, accessible via : +- la webadmin, dans Domaines > votre.domain.tld > Configuration DNS ; +- ou la ligne de commande, `yunohost domain dns-conf votre.domaine.tld` + +Pour certains besoins ou installations particulières, et si vous savez ce que +vous faîtes, il vous faudra peut-être modifier cette recommendation ou ajouter +d'autres enregistrements (e.g. pour gérer des sous-domaines). + +La configuration recommandée ressemble typiquement à : -Connecter vous à votre serveur et lancer la commande suivante. ```bash -yunohost domain dns-conf domain.tld +# +# Enregistrements IPv4/IPv6 basiques +# +@ 3600 IN A 111.222.33.44 +* 3600 IN A 111.222.33.44 + +# (Si votre serveur supporter l'IPv6, il a des enregistrements AAAA) +@ 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111 +* 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111 + +# +# XMPP +# +_xmpp-client._tcp 3600 IN SRV 0 5 5222 votre.domaine.tld. +_xmpp-server._tcp 3600 IN SRV 0 5 5269 votre.domaine.tld. +muc 3600 IN CNAME @ +pubsub 3600 IN CNAME @ +vjud 3600 IN CNAME @ + +# +# Mail (MX, SPF, DKIM et DMARC) +# +@ 3600 IN MX 10 votre.domaine.tld. +@ 3600 IN TXT "v=spf1 a mx ip4:111.222.33.44 -all" +mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=uneGrannnnndeClef" +_dmarc 3600 IN TXT "v=DMARC1; p=none" ``` -#### Redirection du nom de domaine vers l’adresse IP -```bash -@ 1800 IN A 111.222.333.444 # (Minimum) IPv4 -@ 1800 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 # IPv6 -``` +Mais il est peut-être plus facile de la comprendre si affichée de la façon +suivante : -#### Redirection du nom de domaine et de tous les sous-domaines vers l’adresse IP -```bash -* 1800 IN A 111.222.333.444 # Wildcard : *.domain.tld et domain.tld pointent vers l’adresse IP. -* 1800 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 -``` +| Type | Nom | Valeur | +| :-----: | :--------------------: | :----------------------------------------------------: | +| **A** | **@** | `111.222.333.444` (votre IPv4) | +| A | * | `111.222.333.444` (votre IPv4) | +| AAAA | @ | `2222:444:8888:3333:bbbb:5555:3333:1111` (votre IPv6) | +| AAAA | * | `2222:444:8888:3333:bbbb:5555:3333:1111` (votre IPv6) | +| **SRV** | **_xmpp-client._tcp** | `0 5 5222 votre.domaine.tld.` | +| **SRV** | **_xmpp-server._tcp** | `0 5 5269 votre.domaine.tld.` | +| CNAME | muc | `@` | +| CNAME | pubsub | `@` | +| CNAME | vjud | `@` | +| **MX** | **@** | `votre.domaine.tld.` (et priorité: 10) | +| TXT | @ | `"v=spf1 a mx ip4:111.222.33.44 -all"` | +| TXT | mail._domainkey | `"v=DKIM1; k=rsa; p=uneGrannnndeClef"` | +| TXT | _dmarc | `"v=DMARC1; p=none"` | -#### Sous-domaines -```bash -www 1800 IN CNAME @ # accessible sur www.domain.tld -``` +#### Quelques notes à propos de cette table -#### XMPP -```bash -_xmpp-client._tcp 1800 IN SRV 0 5 5222 domain.tld. # (Minimum) connexions avec les clients -_xmpp-server._tcp 1800 IN SRV 0 5 5269 domain.tld. # (Minimum) connexions entre serveurs - -muc 1800 IN CNAME @ # salons de discussion sur `muc.domain.tld` -anonymous 1800 IN CNAME @ # connexion sans compte sur `anonymous.domain.tld` -bosh 1800 CNAME @ # BOSH -_xmppconnect 1800 TXT "_xmpp-client-xbosh=https://bosh.domain.tld:5281/http-bind" -pubsub 1800 IN CNAME @ -vjud 1800 IN CNAME @ -``` - -#### Email -```bash -@ 1800 IN MX 10 domain.tld. # (Minimum) -@ 1800 IN TXT "v=spf1 a mx -all" -``` -
- -Vous devriez aussi consulter [la documentation de DKIM](#/dkim_fr). DKIM permet d'éviter que vos mails soit considérés comme SPAM et DKIM nécessite une entrée spécifique dans votre zone DNS. - -#### Mise en place -Remplacez : -* « `domain.tld` » par votre propre nom de domaine en conservant le point à la fin. -* les adresses IP d’exemple par celles de votre serveur : - * `111.222.333.444` : [IPv4](http://ip.yunohost.org/). - * `2001:AABB:CCDD:EEFF:1122:3344:5566:7788` : [IPv6](http://ip6.yunohost.org/). - -Les entrées DNS sous domaines, XMPP et email ne fonctionnent pas sans une redirection du nom de domaine vers l’adresse IP (une ligne est suffisante) étant donné qu’elles en sont dépendantes. - -
**Pour débuter :** les lignes avec « (Minimum) » sont les entrées DNS minimales requises pour avoir une redirection du nom de domaine vers l’adresse IP, XMPP et le courrier électronique qui fonctionnent.
- -
**Attention :** le **@** représente le nom de domaine par défaut que l’on est en train de définir, certains bureaux d’enregistrement ne l’acceptent pas (ex : OVH). Il faut donc remplacer le « @ » par votre nom de domaine (domain.tld**.**) sans oublier un point à la fin.
- -#### Time to live -Toutes les entrées DNS ci-dessus ont la valeur `1800` (30 minutes). Elle correspond au -[Time to live (TTL)](https://fr.wikipedia.org/wiki/Time_to_Live#Le_Time_to_Live_dans_le_DNS) qui représente et indique le temps, en secondes, durant lequel l’entrée DNS peut être conservée en cache. Passé ce délai, l’information doit être considérée comme obsolète et doit être mise à jour. +- Tous ces enregistrements ne sont pas nécessaires. Pour une installation minimale, seuls les enregistrements en gras sont nécessaires. +- Le point à la fin de `votre.domaine.tld.` est important ;) ; +- `@` corresponds à `votre.domaine.tld`, et par ex. `muc` corresponds à `muc.votre.domaine.tld` ; +- Les valeurs montrées sont des valeurs d'exemple ! Référez-vous à la configuration générée chez vous pour savoir quelles valeurs utiliser. +- Nous recommendons un [TTL](https://fr.wikipedia.org/wiki/Time_to_Live#Le_Time_to_Live_dans_le_DNS) de 3600 (1 heure). Mais vous pouvez utiliser une autre valeur si vous savez ce que vous faîtes ; +- Ne mettez pas d'enregistrement IPv6 si vous n'êtes pas certains que l'IPv6 fonctionne sur votre serveur ! Vous aurez des problèmes avec Let's Encrypt si ce n'est pas le cas. diff --git a/dns_resolver.md b/dns_resolver.md index 7298f577..de33802b 100644 --- a/dns_resolver.md +++ b/dns_resolver.md @@ -1,5 +1,7 @@ # YunoHost DNS Resolver ++
This page is deprecated / obsolete. Information it contains should be updated (or should be removed).
+ ### Presentation YunoHost provide a DNS service for DNS name resolution. Usually, your server is not configured to use it, it's your ISP DNS. For instance, for the Free ISP with Freebox router the DNS resolver IP is `192.168.0.254`. diff --git a/dns_resolver_fr.md b/dns_resolver_fr.md index d396a1a0..8f9060eb 100644 --- a/dns_resolver_fr.md +++ b/dns_resolver_fr.md @@ -1,5 +1,7 @@ # Résolveur DNS de YunoHost +
Cette page est dépréciée / obsolète. Les informations présentées ont besoin d'être mise à jour (ou doivent être retirée).
+ ### Présentation YunoHost est installé avec un service DNS pour la résolution des noms de domaine. En général, votre serveur n’est pas configuré, c’est celui de votre FAI. Par exemple pour une Freebox la résolution se fait par l’adresse `192.168.0.254`. diff --git a/docker.md b/docker.md index 715fa023..00988d58 100644 --- a/docker.md +++ b/docker.md @@ -2,8 +2,20 @@
-This page isn't valid anymore, YunoHost 2.4 doesn't work anymore on Docker -because YunoHost requires systemdn and Docker has chosen to not support it (and +Yunohost doesn't support Docker officially since issues with versions 2.4+. +In question, YunoHost 2.4 doesn't work anymore on Docker +because YunoHost requires systemd and Docker has chosen to not support it natively (and there are other problems link to the firewall and services).
+ +## Community images + +However, community images exist and are available on Docker Hub : + + * AMD64 (classic) + * https://hub.docker.com/r/domainelibre/yunohost2/ (Yunohost v2.7) + * ARMV7 (raspberry pi 2/3 ...) + * https://hub.docker.com/r/domainelibre/yunohost2-arm/ (Yunohost v2.7) + * ARMV6 (raspberry pi 1) + * https://hub.docker.com/r/tuxalex/yunohost-armv6/ diff --git a/docker_fr.md b/docker_fr.md index f89edf58..98a85c4f 100644 --- a/docker_fr.md +++ b/docker_fr.md @@ -2,9 +2,20 @@
-Cette page n'est plus valide, YunoHost 2.4 ne marche PLUS sous Docker car -YunoHost dépend désormait de systemd et que docker a décidé qu'ils ne le -supporteraient pas (et il y a d'autres problèmes liés au firewall et aux +Yunohost ne supporte plus officiellement Docker depuis les problèmes rencontrés avec la version 2.4+. +En cause, YunoHost dépend désormait de systemd et docker a décidé qu'ils ne le +supporteraient pas nativement (et il y a d'autres problèmes liés au firewall et aux services).
+ +## Images communautaires + +Cependant il existe des images communautaires disponibles sur Docker Hub : + + * AMD64 (classique) + * https://hub.docker.com/r/domainelibre/yunohost2/ (Yunohost v2.7) + * ARMV7 (raspberry pi 2/3 ...) + * https://hub.docker.com/r/domainelibre/yunohost2-arm/ (Yunohost v2.7) + * ARMV6 (raspberry pi 1) + * https://hub.docker.com/r/tuxalex/yunohost-armv6/ diff --git a/email_configure_client_fr.md b/email_configure_client_fr.md index 89eae011..57819f3e 100644 --- a/email_configure_client_fr.md +++ b/email_configure_client_fr.md @@ -19,6 +19,8 @@ L’utilitaire de détection automatique de Thunderbird ne fonctionne pas avec l +Note : si votre instance Yunohost gère plusieurs noms de domaine, il faut utiliser celui définit comme "nom de domaine par défaut" dans l'interface de gestion des noms de domaines. Et ce, même si le domaine de votre adresse mail en est un autre. + * [Gestion des alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases) #### Pour Android diff --git a/faq.md b/faq.md index ec3fd498..44662e13 100644 --- a/faq.md +++ b/faq.md @@ -1,17 +1,124 @@ -# Frequently asked questions +# Frequently Asked Questions -#### YunoHost ported on Ubuntu? -YunoHost team does not have energy to port and maintain YunoHost on Ubuntu. -#### YunoHost is distributed under which license? +#### Under which licence is YunoHost distributed? + YunoHost packages are under free licenses GNU AGPL v.3. YunoHost is based on Debian, so on licenses of Debian based elements. -Applications and applications packages have there respectives licenses. +Applications and applications packages have their respectives licenses. -#### Can we host many independents websites with differents domain names? -We can host many websites cause YunoHost is multi-domain and that some applications for websites management, like *WordPress* or *Web App Multi Custom*, are multi-instances, which means that the application can be installed many times. -#### Why can I access to applications via the IP address? -The [SSO](https://github.com/Kloadut/SSOwat/) does not allow access to the user part (apps included) via an IP address. For this purpose, you should use a domain name. One trick could be to modify the [`hosts` file (last §)](dns_local_network_en) of your desktop computer with a domain name that you don't need to own. \ No newline at end of file +#### What is the goal of YunoHost? + +We believe that decentralizing the Internet, and people taking back control and +responsability over their own data and services, is a crucial issue to guarantee +a free and democratic society. + +The YunoHost project aims to democratize self-hosting. + +It provides a software that aim to make it easy for people to run and +administrate their own server, with minimal knowledge and time required. + + +#### But what does YunoHost *do* exactly? + +YunoHost may be called a distribution or an operating system, but it's actually +"just" a simple layer added over the top of Debian, which does most of the hard +work for you. + +For instance, if you wanted to install Wordpress, you would need to type a bunch +of commands to create some users, setup a web server, setup a SQL server, +download the wordpress archive, uncompress it, configure the web server, +configure the SQL database, and finally configure wordpress. YunoHost handle +the technical mess and "type all these commands for you", so that you can focus +on what really matters. + +More info on [this page](whatsyunohost) ! + +#### Can I host my own personnal website with YunoHost? + +Yes ! Have a look at the [Custom Web app](https://github.com/YunoHost-Apps/my_webapp_ynh). +It provides an "empty shell" : after installing it, just upload your files +(via SSH/SCP or SFTP) to the right location. You can have PHP and a SQL database +if you need. + + +#### Can I host many independents websites with different domain names? + +Yes ! YunoHost is multi-user and multi-domain. Some applications like *WordPress* or *Web App Multi Custom*, are multi-instances, which means that the application can be installed many times. + + +#### Why can't I access to applications via the IP address? + +The [SSO](https://github.com/Kloadut/SSOwat/) (single sign-on) cannot properly authenticate users when they access your server with only its IP. If you really can't configure the DNS properly, you can temporarily work around it by [modifying the `hosts` file (last §)](dns_local_network_en) on your computer. + + +#### What's YunoHost's business model? + +At the moment, YunoHost is maintained only by volunteers working in their free +time. Basically no money is involved in the project (apart from server fees +or stickers :P), which also means that we are independent and not +pressured by economical concerns. + +Right now, the team is not too enthusiast about bringing money in the project. +With that said, some contributors have professional projects which involve +YunoHost. + + +#### Can I make donations to the project? + +At the moment we don't have any system to receive money donations. We do however +receive some in-kind contributions from association, like servers. + + +#### How can I contribute to the project? + +There are [many ways to contribute](contribute) :). + +Don't hesitate to come talk to us about your ideas! + +A common misconception for newcomers in free software projects is to think that +they are "not skilled enough". In practice, nobody is "skilled" :). What really +matter is : [liking what you do](https://www.youtube.com/watch?v=zIbR5TAz2xQ&t=113s), +being friendly with other human beings, being patient and stubborn with machines, +and having some free time. Other than that, just doing what you can is already awesome! + + +#### What's YunoHost's political model? + +It is described in [this document](https://github.com/YunoHost/project-organization/blob/master/yunohost_project_organization.md) :). + + +#### Will you port YunoHost to [insert favorite distro] ? + +Short answer: No. We don't have the energy for it and this is irrelevant. + +Long answer +
+

If you care about distrowars, or think 'Debian is dirty', you are not the public of YunoHost.

+ +

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

+ +

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

+
+ + +#### I checked how apps packaging work. Why are you reinventing [insert favorite package format] ? + +Short answer: We are not. + +Medium answer: Apps were packaged in .deb in the past. It was a nightmare. We're happy now ;). + +Long answer +
+ +

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

+ +

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

+ +

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

+ +

If you still think deb packages can be hacked to do this, see previous answers.

+
diff --git a/faq_fr.md b/faq_fr.md index 0c12a021..bafac065 100644 --- a/faq_fr.md +++ b/faq_fr.md @@ -1,17 +1,127 @@ # Foire aux questions -#### Est-ce que YunoHost est porté sous Ubuntu ? -L’équipe de YunoHost n’a pas l’énergie de porter ni de maintenir YunoHost sur Ubuntu. +#### Sous quelle licence est distribué YunoHost ? -#### YunoHost est distribuée sous quelle licence ? Les paquets qui composent YunoHost sont sous licence libre GNU AGPL v.3. YunoHost est basé sur Debian, donc sur les licences des éléments sur lesquels Debian est basé. Les applications et les packages d’applications ont leurs licences respectives. + +#### Quel est l'objectif de YunoHost? + +Nous pensons que la décentalization d'Internet, et la reprise du contrôle et +de la responsabilité des données et services par les citoyens est un enjeu +crucial pour garantir une société libre et démocratique. + +Le projet YunoHost cherche à démocratiser l'auto-hébergement. + +Nous fournissons un logiciel qui cherche à rendre simple le fait de gérer et +d'administrer un serveur soi-même, en minimisant les compétences et le temps +requis. + + +#### Mais qu'est-ce que ça fait *vraiment*? + +YunoHost peut être appelé une distribution ou un système d'exploitation, mais +dans les fait, c'est une "simple" couche par dessus Debian, qui gère les +manipulations pénibles à votre place. + +Par exemple, pour installer un Wordpress à la main, il vous faudrait taper +toute une série de commande pour créer des utilisateurs, mettre en place un +serveur web, mettre en place un serveur SQL, télécharger l'archive de Wordpress, +la décompresser, configurer le serveur web, configurer la base de données SQL, +et finalement configurer Wordpress. YunoHost gère toute cette partie technique +et "tape les commandes à votre place", pour que vous puissiez vous concentrer +sur ce qui compte vraiment. + +Plus d'informations sur [cette page](whatsyunohost) ! + + +#### Puis-je gérer mon propre site web avec YunoHost? + +Oui ! Il faut regarder du côté de [cette app](https://github.com/YunoHost-Apps/my_webapp_ynh). +Elle fournit une "coquille vide" : après l'installation, il suffit d'uploader +vos fichiers (via SSH/SCP ou SFTP) au bon endroit. Il est aussi possible +d'avoir du PHP et une base de donnée SQL si besoin. + + #### Peut-on héberger plusieurs sites indépendants avec des noms de domaines différents ? + On peut tout à fait héberger plusieurs sites web car YunoHost est multi-domaine et que certaines applications de gestion de sites web, comme *WordPress* ou *Web App Multi Custom*, sont multi-instances, c’est-à-dire que l’application peut-être installée plusieurs fois. #### Pourquoi je ne peux pas accéder à mes applications avec l’adresse IP ? -Le [SSO](https://github.com/Kloadut/SSOwat/) ne permet pas d’accéder à la partie utilisateur (applications incluses) avec une adresse IP. Pour cela, il faut utiliser un nom de domaine. Une des astuces consiste à modifier le [fichier `hosts` (dernier §)](dns_local_network_fr) de son ordinateur de bureau avec un nom de domaine que l’on n’est pas obligé de posséder. + +Pour des raisons techniques, le [SSO](https://github.com/Kloadut/SSOwat/) ne permet pas aux utilisateurs de se logger à l'espace utilisateur lorsque l'on accède au serveur uniquement avec l'IP. Si vous ne pouvez réellement pas configurer un nom de domaine, une solution temporaire peut être de modifier le [fichier `hosts` (dernier §)](dns_local_network_fr) de son ordinateur. + + +#### Quel est le modèle économique de YunoHost ? + +À l'heure actuelle, YunoHost est maintenu uniquement par une équipe de bénévole +travaillant pendant leur temps libre. Il n'y a pas d'argent impliqué dans le +projet (hormis quelques frais de serveurs et stickers :P), ce qui signifie +également que nous sommes indépendant de toute préocuppations économiques. + +Pour le moment, l'équipe est assez peu enthousiaste à l'idée d'include de +l'argent dans la projet. Cependant, certains contributeurs mène des activités +professionelles qui sont liées à YunoHost. + + +#### Puis-je faire un don au projet ? + +Pour le moment, nous n'avons pas mis en place de moyen pour recevoir des dons. +Cependant, nous bénéficions de contributions en nature apportées par des associations, +comme des serveurs. + + +#### Comment puis-je contributer au projet ? + +Il y existe [plusieurs façons de contribuer](contribute) :). + +N'hésitez pas à venir nous parler de vos idées! + +Une idée répandue parmis les nouveaux contributeurs aux logiciels libres est +de ne pas être "assez compétent". En pratique, croyez-le, personne n'est +compétent :). Ce qui compte vraiment est : [d'aimer ce que vous faites](https://www.youtube.com/watch?v=zIbR5TAz2xQ&t=113s), +être sympatique avec les autres êtres humains du projet, être patient et têtu +avec les machines, et avoir du temps libre. À part ça, juste faire ce que vous +pouvez, c'est déjà trop cool! + + +#### Quel est le modèle politique de YunoHost ? + +Il est décrit dans [ce document](https://github.com/YunoHost/project-organization/blob/master/yunohost_project_organization.md) :). + + + +#### Pouvez-vous porter YunoHost sur [ma distro préféré] ? + +Réponse courte : Non. L'équipe n'a pas l'énergie et ce n'est pas pertinent pour le but recherché par YunoHost. + +Réponse longue +
+

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

+ +

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

+ +

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

+
+ +#### J'ai regardé comment le packaging des apps fonctionne. Pourquoi réinventez-vous [mon format de package préféré] ? + +Réponse courte: Ce n'est pas ce que nous faisons. + +Réponse moyenne: Par le passé, les apps étaient gérées via des .deb. C'était cauchemardesque. On est heureux maintenant ;). + +Long answer +
+ +

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

+ +

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

+ +

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

+ +

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

+
diff --git a/help.md b/help.md index a0702104..71a29164 100644 --- a/help.md +++ b/help.md @@ -1,5 +1,65 @@ -#About this site +# Looking for help? -Unless specifically mentioned, the content of this website is licensed under the [Creative Commons ```CC-BY-SA``` license](http://creativecommons.org/licenses/by-sa/3.0/). +

Connect to the support chatroom

+
+
+ProTips™ +
    +
  • Don't ask to ask, just ask !
  • +
  • Be patient, it can take a few minutes before someone sees your messages.
  • +
+
+Nickname : +
+
+ +
+
+Note : you can also connect using your favorite XMPP client to
+support@conference.yunohost.org
+
+ +

... or ask on the forum !

+ +
+ +
+ +

You've found a bug ?

+ +
+
+Please report it on our bugtracker or contact the developers

+ + +
+
+Note : you can also connect to the devrooms, using your favorite XMPP client, to
+dev@conference.yunohost.org and apps@conference.yunohost.org
+
+ + -This wiki is powered by [Simone](https://github.com/Kloadut/Simone). diff --git a/help_fr.md b/help_fr.md index b87025c8..3a6826d2 100644 --- a/help_fr.md +++ b/help_fr.md @@ -1,5 +1,65 @@ -#À propos de ce site +# Besoin d'aide ? -Sauf mention contraire, le contenu de ce site est sous [licence Creative Common ```CC-BY-SA```](http://creativecommons.org/licenses/by-sa/3.0/fr/) +

Connectez-vous au salon de support

+
+
+ProTips™ +
    +
  • Pas besoin de demander si vous pouvez poser une question - posez-la directement !
  • +
  • Soyez patient, cela peut prendre plusieurs minutes avant que quelqu'un remarque vos messages.
  • +
+
+Pseudonyme : +
+
+ +
+
+Note : vous pouvez aussi vous connecter via votre client XMPP favori à
+support@conference.yunohost.org
+
+ +

... ou demandez sur le forum !

+ +
+ +
+ +

Vous avez trouvé un bug ?

+ +
+
+Vous pouvez rapporter le bug sur le bugtracker ou contacter les développeurs

+ + +
+
+Note : vous pouvez aussi vous connecter aux salons de dev, via votre client XMPP favori, à
+dev@conference.yunohost.org et apps@conference.yunohost.org
+
+ + -Ce wiki est propulsé par [Simone](https://github.com/Kloadut/Simone). diff --git a/images/images.list b/images/images.list index aa1424e8..4289c16b 100644 --- a/images/images.list +++ b/images/images.list @@ -39,6 +39,7 @@ OVH1_domain_select.png OVH2_domain_DNS.png OVH3_zoneDNS.png Pidgin-add-acount.png +piwigo.png postinstall_cli.png postinstall_error.png postinstall_web.png diff --git a/images/piwigo.png b/images/piwigo.png new file mode 100644 index 00000000..94c048de Binary files /dev/null and b/images/piwigo.png differ diff --git a/images/portForwarding_en.png b/images/portForwarding_en.png new file mode 100644 index 00000000..202d437f Binary files /dev/null and b/images/portForwarding_en.png differ diff --git a/images/portForwarding_fr.png b/images/portForwarding_fr.png new file mode 100644 index 00000000..21456c5d Binary files /dev/null and b/images/portForwarding_fr.png differ diff --git a/images/portForwarding_src_en.odg b/images/portForwarding_src_en.odg new file mode 100644 index 00000000..3a6300c1 Binary files /dev/null and b/images/portForwarding_src_en.odg differ diff --git a/images/portForwarding_src_fr.odg b/images/portForwarding_src_fr.odg new file mode 100644 index 00000000..16b9347a Binary files /dev/null and b/images/portForwarding_src_fr.odg differ diff --git a/index.md b/index.md index 9f3e6656..8bbecc85 100644 --- a/index.md +++ b/index.md @@ -44,7 +44,7 @@
@@ -97,7 +97,7 @@ Forum Chat rooms Latest news - Support + Support

Explore what you can do with a server, and why it is important

@@ -152,32 +152,3 @@ - - diff --git a/index_fr.md b/index_fr.md index e9bbd8be..22096dc8 100644 --- a/index_fr.md +++ b/index_fr.md @@ -40,7 +40,7 @@
@@ -90,13 +90,13 @@
@@ -152,32 +152,3 @@ - - diff --git a/install_iso.md b/install_iso.md index a947f1af..871abf04 100644 --- a/install_iso.md +++ b/install_iso.md @@ -32,6 +32,3 @@ To connect directly to your computer or with [SSH](/ssh) (only on local network: * User: **root** * Password: **yunohost** ---- - -***Need help during one of these steps? [Get support!](/support)*** diff --git a/install_iso_fr.md b/install_iso_fr.md index a493fd00..699f9e7a 100644 --- a/install_iso_fr.md +++ b/install_iso_fr.md @@ -31,5 +31,7 @@ Pour se connecter directement sur l’ordinateur (uniquement en local) : * Utilisateur : **root** * Mot de passe : **yunohost** ---- -***Si vous avez besoin d’aide lors de ces étapes, n’hésitez pas à utiliser les différents [moyens de support](/support_fr).*** + +## Cas spécifiques / avancés + +Si l'ordinateur n'a pas de carte graphique mais a un port série : il faut modifier l'ISO pour démarrer avec la console série. Une solution est d'utiliser [un script qui modifie les options de démarrage](https://github.com/luffah/debian-mkserialiso). diff --git a/install_manually.md b/install_manually.md index 5b5e9a1a..05b69af4 100644 --- a/install_manually.md +++ b/install_manually.md @@ -8,7 +8,8 @@ Once you have access to your server, either directly or by SSH, you can install 1. Install git ```bash -sudo apt-get install git dialog +sudo apt-get update +sudo apt-get install ca-certificates dialog git ``` 2. Clone the Yunohost install script repository @@ -16,7 +17,7 @@ sudo apt-get install git dialog git clone https://github.com/YunoHost/install_script /tmp/install_script ``` -3. The root user must have a password set, if it isn't the case, set it (whithout the install script failed): +3. The root user must have a password set, if it isn't the case, set it (otherwise, the install script fails): ```bash sudo passwd root ``` diff --git a/install_on_arm_board.md b/install_on_arm_board.md index 8b56085a..fb07dcd1 100644 --- a/install_on_arm_board.md +++ b/install_on_arm_board.md @@ -36,6 +36,3 @@ #### Build image * [Create an ARM board image](/build_arm_image_en) ---- - -***Need help during one of these steps? [Get support!](/support)*** diff --git a/install_on_arm_board_fr.md b/install_on_arm_board_fr.md index 0c8cc277..ef8fa0eb 100644 --- a/install_on_arm_board_fr.md +++ b/install_on_arm_board_fr.md @@ -33,6 +33,3 @@ #### Créer une image * [Créer une image pour la carte ARM](build_arm_image_en) ---- - -***Si vous avez besoin d’aide lors de ces étapes, n’hésitez pas à utiliser les différents [moyens de support](/support_fr).*** diff --git a/install_on_debian.md b/install_on_debian.md index 599f8671..28c19344 100644 --- a/install_on_debian.md +++ b/install_on_debian.md @@ -22,6 +22,3 @@ An ARM box, a VPS, a dedicated server, a standard x86 computer, an old Macintosh 2. Post-install ---- - -***Need help during one of these steps? [Get support!](/support)*** diff --git a/install_on_debian_fr.md b/install_on_debian_fr.md index dbd61065..408a2da6 100644 --- a/install_on_debian_fr.md +++ b/install_on_debian_fr.md @@ -22,7 +22,3 @@ Sur une plateforme ARM, un VPS, un serveur dédié, un ordinateur x86 standard, 2. Post-installation ---- - -***Si vous avez besoin d’aide lors de ces étapes, n’hésitez pas à utiliser les différents [moyens de support](/support_fr).*** - diff --git a/install_on_raspberry.md b/install_on_raspberry.md index be96c1f8..7e1879c9 100644 --- a/install_on_raspberry.md +++ b/install_on_raspberry.md @@ -56,6 +56,3 @@ sudo passwd root 4. Then follow the generic manual install procedure. ---- - -***If you need help during one of these steps, do not hesitate to use [our support tools](/support).*** diff --git a/install_on_raspberry_fr.md b/install_on_raspberry_fr.md index 5d453af4..172538c6 100644 --- a/install_on_raspberry_fr.md +++ b/install_on_raspberry_fr.md @@ -56,6 +56,3 @@ sudo passwd root 4. Poursuivez avec la procédure d'installation manuelle générique. ---- - -***Si vous avez besoin d’aide lors de ces étapes, n’hésitez pas à utiliser les différents [outils de support](/support_fr).*** diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md index 23467526..4ff5905f 100644 --- a/install_on_virtualbox.md +++ b/install_on_virtualbox.md @@ -73,6 +73,3 @@ After the reboot, you will see this screen: * You can get more information on the post-installation here: **[yunohost.org/postinstall](/postinstall)** ---- - -***Need help during one of these steps? [Get support!](/support)*** diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md index 80732f28..5e047899 100644 --- a/install_on_virtualbox_fr.md +++ b/install_on_virtualbox_fr.md @@ -72,6 +72,3 @@ Après le redémarrage, vous devriez voir cet écran : * Vous pouvez obtenir plus d’information sur la post-installation ici : **[yunohost.org/postinstall_fr](/postinstall_fr)** * Le mode de passe root est "yunohost" ---- - -***Si vous avez besoin d’aide lors de ces étapes, n’hésitez pas à utiliser les différents [moyens de support](/support_fr).*** diff --git a/install_on_vps.md b/install_on_vps.md index d16c436e..07a9b1d9 100644 --- a/install_on_vps.md +++ b/install_on_vps.md @@ -18,6 +18,3 @@ 2. Post-install ---- - -***If you need help during one of these steps, do not hesitate to use [our support tools](/support).*** diff --git a/install_on_vps_fr.md b/install_on_vps_fr.md index 1bc25775..c830e6bd 100644 --- a/install_on_vps_fr.md +++ b/install_on_vps_fr.md @@ -18,7 +18,3 @@ 2. Post-installation ---- - - -***Si vous avez besoin d’aide lors de ces étapes, n’hésitez pas à utiliser les différents [moyens de support](/support_fr).*** diff --git a/isp.md b/isp.md index 02d84f78..0e0d1a34 100644 --- a/isp.md +++ b/isp.md @@ -20,4 +20,9 @@ A list of French and Belgian ISPs is available on the [french page](/isp_fr). | --- | --- | --- | --- | --- | --- | --- | | Global Village Telecom | Multiple | Yes | No. Only for Fix IP| No | No | Yes, extra charge. | +### Ireland +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| Whizzy Internet | Multiple | Yes | Yes| Yes | Yes | Yes | + If you want to add international ISPs information, please do consider [modifying this page](/write_documentation). diff --git a/isp_box_config.md b/isp_box_config.md index abad4e44..508f79d6 100644 --- a/isp_box_config.md +++ b/isp_box_config.md @@ -1,35 +1,46 @@ -# Configuration box/router +# Configure port-forwarding -Check ports are open +If you are self-hosting at home and without a VPN, you need to forward ports on your home router ("Internet box"). If you want a short explanation on what is and why you need port forwarding, have a look in [this page](port_forwarding). -#### Access to box/routeur administration -In the URL bar of your web browser put: -```bash -192.168.0.1 or 192.168.1.1 -``` -Then you will need to authentificate. +### 0. Diagnose ports opened -#### Opening ports -Opening following ports are necessary to make works differents services. +After configuring port forwarding, you should be able to validate with this small tool that your ports are correctly forwarded : + +Check which ports are forwarded + +### 1. Access your box/router administration interface + +Your box/router admin interface is usually reachable via http://192.168.0.1 or http://192.168.1.1. Then, you will probably need to authenticate yourself with your internet server provider's credentials. + +### 2. Find the local IP of your server + +Identify what is the local IP of your server, either : +- from your box/router interface, which might list devices connected +- from the YunoHost webadmin, in 'State of the server', 'Network' +- from the command line in your server, by running `ip a | grep "scope global" | awk '{print $2}'` + +A local IP address typically looks like `192.168.xx.yy`, or `10.0.xx.yy`. + +### 3. Forwarding ports + +In your router admin interface, look for something like 'router configuration' or 'port forwarding'. The naming differs among the various kinds of boxes. + +Opening the ports listed below is necessary for the various services available in YunoHost to work. For each of them, the 'TCP' forwarding is needed. Some interfaces refer to 'external' and 'internal' ports : these are the same in our case. -**TCP:** * Web: 80 (HTTP), 443 (HTTPS) * [SSH](/ssh_en): 22 * [XMPP](/XMPP_en): 5222 (clients), 5269 (servers) * [Email](/email_en): 25, 465 (SMTP), 587 (SMTP with SSL), 993 (IMAP) -* [DNS](/dns_en): 53 -##### UPnP -UPnP permit automatically forward ports. +
+ Some internet service providers block port 25 (mail SMTP) by default to fight spam. Some other ISP don't allow to use port 80/443 (web) freely, though it's less likely. Depending on the ISP, it might be possible to open them in the admin interface... Check [this page](isp_en) for more info. +
-In some case, after changing your box configuration (ex: add IPv6, or unlock SMTP…) and a reboot. It happens that ports are no longer forwarded. So you have to reload your firewall configuration: +## Automatic port forwarding / UPnP + +A technology called UPnP is available on some internet boxes / routers and allows to automatically forward ports by the machine who needs them. If UPnP is enabled in your local network, then running this command should automatically open the port for you : ```bash sudo yunohost firewall reload ``` -##### Manual forward ports -In the case that UPnP doesn’t works, manual ports forward are necessary. - -##### Email -Internet service porviders blocks port 25 to avoid spam. To send mails, you’ll need to forward port 25. diff --git a/isp_box_config_fr.md b/isp_box_config_fr.md index ee0e7b5e..5bcd46f9 100644 --- a/isp_box_config_fr.md +++ b/isp_box_config_fr.md @@ -1,44 +1,51 @@ -# Configuration box/routeur +# Configurer la redirection des ports -Vérifier que les ports sont ouverts +Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Si vous souhaitez une explication courte de ce qu'est et pourquoi vous avez besoin de rediriger les ports, vous pouvez jeter un oeil à [cette page](port_forwarding_fr). [Cette page](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs. -### Accès à l’administration de la box/routeur -Allez à l’adresse suivante : http://192.168.0.1 (ou celle-ci http://192.168.1.1). Puis authentifier-vous. +### 0. Diagnostiquer les ports ouverts -### Tutoriel -* [Tutoriel pour les ouvrir les ports sur les boxs d’Orange, Free, SFR, Dartybox, Belgacom et sur les routeurs Netgear](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html). +Une fois que vous aurez configuré la redirection, vous devriez pouvoir valider avec ce petit outil que vos ports sont bien redirigés : -### Redirection des ports -La redirection des ports suivants est nécessaire au fonctionnement des différents services. +Vérifier la redirection des ports -**TCP :** - * Web : 80 (HTTP), 443 (HTTPS) - * [SSH](ssh_fr) : 22 - * [XMPP](XMPP_fr) : 5222 (clients), 5269 (serveurs) - * [Courriel](email_fr) : 25, 465 (SMTP), 587 (SMTP avec chiffrement), 993 (IMAP) - * [DNS](dns_fr) : 53 +### 1. Accéder à l'interface d'administration de votre box/routeur -**UDP:** - * [DNS](dns_fr) : 53 +L'interface d'administration est généralement accessible via http://192.168.0.1 ou http://192.168.1.1. +Ensuite, il vous faudra peut-être vous authentifier avec les identifiants +fournis par votre fournisseur d'accès internet (FAI). ---- +### 2. Trouver l'IP locale de votre serveur -#### UPnP +Identifiez quelle est l'IP locale de votre serveur, soit : +- depuis l'interface de votre routeur/box, qui liste peut-être les dispostifis + connectés. +- depuis la webadmin de YunoHost, dans 'État du serveur', 'Réseau' +- depuis la ligne de commande dans votre serveur, par exemple avec `ip a | grep "scope global" | awk '{print $2}'` -L’UPnP permet d’ouvrir automatiquement les ports. Si ce n’est pas le cas par défaut, vous pouvez l’activer via l’interface d’administration de votre routeur. +Une adresse IP locale ressemble généralement à `192.168.xx.yy`, ou `10.0.xx.yy`. -Dans certains cas après avoir changé la configuration de votre box (ex : sur Freebox ajout d’IPv6, débloquer le SMTP…) et après l’avoir rebooté. Il se peut que vos ports ne soient plus redirigés. Il faut donc réautoriser ces ports par le firewall : +### 3. Rediriger les ports + +Dans l'interface d'administration de votre box/routeur, il vous faut trouver +une catégorie comme 'Configuration du routeur', ou 'Redirections de ports'. Le +nom diffère suivant le type / marque de la box... + +Il vous faut ensuite rediriger chacun des ports listés ci-dessous vers l'IP locale de votre serveur pour que les différents services de YunoHost fonctionnent. Pour chacun d'eux, une redirection 'TCP' est nécessaire. Certains interfaces font références à un port 'externe' et un port 'interne' : dans notre cas il s'agit du même. + +* Web: 80 (HTTP), 443 (HTTPS) +* [SSH](/ssh_fr): 22 +* [XMPP](/XMPP_fr): 5222 (clients), 5269 (servers) +* [Email](/email_fr): 25, 465 (SMTP), 587 (SMTP with SSL), 993 (IMAP) + +
+ Certains fournisseurs d'accès internet bloquent le port 25 (mail SMTP) par défaut pour combattre le spam. D'autres (plus rares) ne permettent pas d'utiliser librement les ports 80/443. En fonction de votre FAI, il peut être possible d'ouvrir ces ports dans l'interface... Voir [cette page](isp_fr) pour plus d'informations. +
+ +## Redirection automatique / UPnP + +Une technologie nommée UPnP est disponible sur certains routeurs/box et permet de rediriger automatiquement des ports vers une machine qui le demande. Si UPnP est activé chez vous, exécuter cette commande devrait automatiquement rediriger les bons ports : ```bash sudo yunohost firewall reload ``` -#### Redirection manuelle des ports - -Dans le cas où l’UPnP ne fonctionne pas, la redirection manuelle des ports est nécessaire. Encore une fois, référez-vous à l’interface d’administration de votre routeur. - -ATTENTION (CPU ARM) : l’activation de l’UPnP est inefficace avec les serveurs équipés d’un processeur ARM (remarque valable pour YunoHost v2.2). Une redirection manuelle des ports du routeur est alors requise. - -#### Le courrier électronique - -Les fournisseurs d’accès à Internet bloquent souvent le port 25 pour éviter que les ordinateurs de votre réseau n’envoient des spams sur Internet à votre insu. Pour pouvoir envoyer des emails, il vous faut donc ouvrir le port 25, ou désactiver l’option « blocage SMTP sortant » dans l’administration de votre routeur. diff --git a/isp_fr.md b/isp_fr.md index e840aa5d..09255994 100644 --- a/isp_fr.md +++ b/isp_fr.md @@ -33,4 +33,4 @@ Pour une liste plus complète et précise, référez-vous à la très bonne docu | **Proximus** | BBox2 | oui (activé) | oui | **non** | **non** | **non** | | | BBox3 | oui (activé) | oui | **non** | **non** | **non** | | **Scarlet** | BBox2 | oui (activé) | oui | **non** | **non** | **non** | -**Proximus** ne serait pas ouvert à l’auto-hébergement. L’ouverture des ports serait plus difficile afin d’éviter tout SPAM. Il serait préférable de passer par [Neutrinet](http://neutrinet.be), un des [membres de la Fédération French Data Network](http://www.ffdn.org/fr/membres). +**Proximus** ne serait pas ouvert à l’auto-hébergement. L’ouverture des ports serait plus difficile afin d’éviter tout SPAM. Il serait préférable de passer par [Neutrinet](http://neutrinet.be), un des [membres de la Fédération French Data Network](http://www.ffdn.org/fr/membres). Les ports 23, 80 et 443 sont fermés par le fournisseur par défaut, ils peuvent être débloqués à la demande (via le compte en ligne MyProximus) sur le site de Proximus. diff --git a/isp_free_fr.md b/isp_free_fr.md index 13e0a706..d60c0fac 100644 --- a/isp_free_fr.md +++ b/isp_free_fr.md @@ -1,4 +1,4 @@ -#Free +# Free *Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp_fr)**.* @@ -33,9 +33,9 @@ La présence conjointe de ces deux règles permettent d'accéder à votre serveu Pour pouvoir envoyer des mails, le déblocage se fait dans la [partie client](https://subscribe.free.fr/login/). -Depuis le menu Ma freebox aller sur « Blocage SMTP sortant ». +Depuis le menu Ma freebox aller sur « Blocage SMTP sortant ». -Pour pouvoir envoyer des mails, passer le blocage en « inactif ». +Pour pouvoir envoyer des mails, passer le blocage en « inactif ». #### Fonction NAS de la Freebox @@ -57,13 +57,13 @@ $ sudo mount -t cifs //mafreebox.freebox.fr/Disque\ dur/ /home/monlogin/freebox ##### Automatiser le montage Une ligne a ajouter à la fin du `/etc/fstab` : -``` +```bash //mafreebox.freebox.fr/Disque\040dur/ /home/monlogin/freebox cifs _netdev,guest,uid=monlogin,gid=users,iocharset=utf8 0 0 ``` Le `_netdev` signale que c'est un périphérique réseau, afin que le système ne le monte que s'il a accès au réseau. `guest` est le mode d'identification à la Freebox : pour une connexion authentifié, placer vos identifiants dans un fichier sous la forme -``` +```bash username=your_user password=your_pass domain=FREEBOX diff --git a/packaging_apps.md b/packaging_apps.md index cd2bfe32..3f04d214 100644 --- a/packaging_apps.md +++ b/packaging_apps.md @@ -87,7 +87,7 @@ This Python script checks: ### 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 for testing and feedback on your application. -* 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`. +* 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_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 evolution. diff --git a/packaging_apps_fr.md b/packaging_apps_fr.md index 60304894..4b5d9a07 100644 --- a/packaging_apps_fr.md +++ b/packaging_apps_fr.md @@ -69,7 +69,7 @@ Il s’agit d’un script Python qui vérifie : ### Publiez et demandez des tests de votre application * Demandez des tests et des retours sur votre application en publiant un [post sur le Forum](https://forum.yunohost.org/) dans la [catégorie `App integration`](https://forum.yunohost.org/c/app-integration). -* Faire une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) afin qu’elle soit affichée dans [la liste des apps non officielles](apps_in_progress_fr). Préciser également son état d’avancement : `notworking`, `inprogress` ou `working`. +* Faire une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) afin qu’elle soit affichée dans [la liste des apps non officielles](apps_fr). Préciser également son état d’avancement : `notworking`, `inprogress` ou `working`. - Inscrivez-vous à la [mailing list Apps](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) pour être tenu au courant des évolutions du packaging. diff --git a/packaging_apps_guidelines.md b/packaging_apps_guidelines.md new file mode 100644 index 00000000..1637a560 --- /dev/null +++ b/packaging_apps_guidelines.md @@ -0,0 +1,442 @@ +# Packing Applications : Good Practise Guidelines + +
+ +This page is under development. As long as this warning is not removed. Consider this information as potentially false. +The name YEP is not a priori definitive, neither the levels nor the good practices in itself. + +
+ +### Introduction +The purpose of this document is to list the various best practices concerning the creation of YunoHost application packages. + +Each good practice is numbered with a number suffixed by the letters YEP (YunoHost Enhancement Proposals), so that it can be easily referenced in the ([package checker](https://github.com/YunoHost/package_check) and [package linter](https://github.com/YunoHost/package_linter)) tools, but also during the reviews of code. + +Each YEP is associated with: +* a status indicating whether the rule has been validated or is still under discussion (draft, validated, refused, obsolete); +* an indication of the type of test to be carried out (manual or auto if an automatic tool can verify); +* an indication of the app level from which the rule is required (NOTWORKING, INPROGRESS, WORKING, OFFICIAL), some rules are optional; + +### YEP Index +| ID | Title | Status | Test | Level | +| ---- | -------- | -------- | ------ | -------- | +| ** YEP 1 ** | ** Communicate with the community ** | | | | +| YEP 1.1 | App name and deposit | validated | manual | NOTWORKING (0) | +| YEP 1.2 | Register the app on a known "directory" | validated | manual | NOTWORKING (0) | +| YEP 1.3 | Indicate the license associated with the package | validated | AUTO | WORKING (5) | +| YEP 1.4 | Inform about intention to maintain package | draft | manual | OFFICIAL (6) | +| YEP 1.5 | Regularly update app status | draft | manual | WORKING (2) | +| YEP 1.6 | Keeping up-to-date on the evolution of apps packaging | validated | manual | OFFICIAL (6) | +| YEP 1.7 | Add the app to the [YunoHost-Apps Organization](https://github.com/YunoHost-Apps) | validated | manual | OFFICIAL (6) | +| YEP 1.8 | Publish test requests | validated | manual | OFFICIAL (6) | +| YEP 1.9 | Document the app | validated | AUTO | OFFICIAL (6) | +| YEP 1.10 | Keep a clean version history | draft | manual | OFFICIAL (6) | +| YEP 1.11 | Add app to [YunoHost bugtracker](https://dev.yunohost.org) | draft | manual | OFFICIAL (NA) | +| | | | | | +| ** YEP 2 ** | ** Stabilize an app ** | ** Status ** | ** Test ** | ** Level ** | +| YEP 2.1 | Respect the manifest format | validated | Home | INPROGRESS (5) | +| YEP 2.2 | Using bash for main scripts | validated | Home | WORKING (1) | +| YEP 2.3 | Save replies during installation | validated | manual | WORKING (3) | +| YEP 2.4 | Detect and manage errors | draft | manual | WORKING (8) | +| YEP 2.5 | Copy files correctly | draft | manual | WORKING (1) | +| YEP 2.6 | Cancel action if input values ​​are incorrect | validated | manual | WORKING (7) | +| YEP 2.7 | Give sufficient permissions to bash | validated | Home | WORKING (1) | +| YEP 2.8 | Correctly Changing a System Configuration | draft | manual | WORKING (8) | +| YEP 2.9 | Remove all traces of the app when deleting | draft | manual | WORKING (6) | +| YEP 2.10 | Configure application logs | draft | manual | WORKING (9) | +| YEP 2.11 | Use a variable rather than the id app directly | validated | manual | OFFICIAL (9) | +| YEP 2.12 | Using Helpers | validated | Home | OFFICIAL (5) | +| YEP 2.13 | Translate the package in English | draft | manual | OFFICIAL (9) | +| YEP 2.14 | Fill a conf file correctly | draft | manual | OFFICIAL (9) | +| YEP 2.15 | Follow the instructions for installing the application | validated | manual | OFFICIAL (1) | +| YEP 2.16 | Check availability of dependencies on ARM, x86 and x64 | validated | manual | OFFICIAL (8) | +| YEP 2.17 | Take the original version into account when updating | validated | manual | OFFICIAL (9) | +| | | | | | +| ** YEP 2.18 ** | ** Stabilize a webapp ** | ** Status ** | ** Test ** | ** Level ** | +| YEP 2.18.1 | Launch the script to install a webapp correctly | validated | manual | WORKING (5) | +| YEP 2.18.2 | Manage installation at the root of a domain name | validated | Home | WORKING (2) | +| YEP 2.18.3 | Manage installation on a subdomain | validated | Home | WORKING (2) | +| YEP 2.18.4 | Manage installation on a path `/path` | validated | Home | OFFICIAL (2) | +| YEP 2.18.5 | Manage the YunoHost tile for easy navigation between applications | validated | manual | OFFICIAL (8) | +| | | | | | +| ** YEP 3 ** | ** Secure an app ** | ** Status ** | ** Test ** | ** Level ** | +| YEP 3.1 | Do not ask or store LDAP password | draft | manual | NOTWORKING (?) | +| YEP 3.2 | Open a port correctly | draft | manual | WORKING (7) | +| YEP 3.3 | Facilitating Source Integrity Control | draft | manual | OFFICIAL (6) | +| YEP 3.4 | Isolate app | draft | manual | OFFICIAL (8) | +| YEP 3.5 | Follow the recommendations of the app's documentation | validated | manual | OFFICIAL (6) | +| YEP 3.6 | Update versions containing CVE | draft | manual | OFFICIAL (6) | +| | | | | | +| ** YEP 4 ** | ** Integrate an app ** | ** Status ** | ** Test ** | ** Level ** | +| 4.1 | Link to ldap | validated | manual | OFFICIAL (4) | +| YEP 4.2 | Link authentication to sso | validated | manual | OFFICIAL (4) | +| YEP 4.2.1 | Sign Out | validated | manual | OFFICIAL (9) | +| YEP 4.3 | Provide YunoHost Backup Script Functional | validated | Home | OFFICIAL (6) | +| YEP 4.4 | Provide a YunoHost Restore Functional script | validated | Home | OFFICIAL (6) | +| YEP 4.5 | Using Hooks | validated | manual | OPTIONAL (8) | +| YEP 4.6 | Manage multi-instance | validated | manual | OPTIONAL (2) | +| YEP 4.7 | Add a module to the CLI | validated | manual | OPTIONAL | +| YEP 4.8 | Add a module to the web admin | draft | manual | OPTIONAL | + +### YEP 1 +#### Communicating with the community +The YEP 1 is a meta YEP, it explains what it takes to interact with the community around a YunoHost application package. + +#### YEP 1.1 +##### App name and deposit | validated | manual | NOTWORKING | +Each YunoHost application has an id registered in the application manifest. +This identifier must be unique between each application packet. +It is therefore recommended to verify its availability by consulting the list of applications referenced in the known applications repositories (official, community, internetcube). + +In addition, the identifier must respect the regular expression `^[a-z1-9]((_|-)?[A-z1-9])+$`. +In other words, it must respect the following rules: +* be in lowercase +* start with a letter or number +* be alphanumeric (the underscore is allowed) +* do not contain two underscores or dashes that follow one another +* do not end with an underscore or dash + +For application names containing spaces, virtually all current packages simply remove them without replacing them with dashes or underscores. + +By convention, the YunoHost application repositories are always named their ID followed by the string "\ _ynh". Thus one can distinguish the upstream repository of the application, the deposit of the yunohost package. This notation also makes it possible to find applications not listed by the search engines of platforms offering version managers (GitHub for example). + +Example: ID: Example Filing Name: example_ynh + +#### YEP 1.2 +##### Register the app on a known "directory" | validated | manual | NOTWORKING | +It is advised from the beginning of the packaging to register an app on one of the YunoHost application depots. + +These deposits have several functions: +* communicate the existence of a package; +* indicate the latest version associated with the package (to allow the update of the app by YunoHost); +* indicate the state of operation of the packet; +* indicate information about the support of a package. + +For the `official.json` and` community.json` lists, registration is on [the git apps repository](https://github.com/YunoHost/apps). + +#### YEP 1.3 +##### Indicate the license associated with the package | draft | AUTO | WORKING | +The license of the packet must be specified in a `LICENSE` file at the root of the packet. Be careful not to confuse with the license of the application that will be installed whose acronym is to be entered in the `license` field of the manifest. + +The application lists official.json and community.json only accept packages with a free license, as well as the license for the contained application. Some free applications require non-free dependencies (example: mp3, drivers, etc.). In this case, you should add `&dep-non-free` to the acronym and if possible give details in the README.md of the package, in this case the integration will be accepted on a case-by-case basis. + +In the future, YunoHost will probably display details about the license of the application. To achieve this, the acronym must be the one from this [list of licenses listed in the SPDX](https://spdx.org/licenses/) (if there are 2 acronyms, the one containing the version number). For consistency, the case must be respected. + +If the license is not present in the list, in this case it is necessary to indicate `free` or `non-free` depending on whether it is free or not and give the user the opportunity to inquire in the README .md (link, explanations, ...). + +Example: for a GNU Lesser General Public License (LGPL), version 3 the acronym is `LGPL-3.0` if non-free dependencies are used in this case it will be necessary to put LGPL-3.0 & dep-non-free `in the manifesto. + +If an application has modules linked to another license (Example: Odoo 9 LGPL-3.0 + a module licensed AGPL-3.0), in this case we will indicate the two licenses separated by a `&`. + +If two separate applications are in the same installation package and have separate licenses, in this case we can use `,` to separate the licenses. + +In both cases, the maintainer is encouraged to consider creating two separate packages. The manifest of each application is used to ask app-type questions to refer to another application already installed. + +Reminder: a question of type `app` answers the identifier of one of the apps already installed. + +Some interesting links to help with the choice of license: +* [Explanatory sheets on free licenses](https://www.inria.fr/content/download/5896/48452/version/2/file/INRIA_recueil_fiches_licences_libres_vf.pdf) +* [GNU project licensing documentation](https://www.gnu.org/licenses/licenses.html) +* [A Guide to the GNU Project to Help Choose a License](https://www.gnu.org/licenses/license-recommendations.en.html) + +#### YEP 1.4 +##### Inform about intention to maintain package | draft | manual | OFFICIAL | +The maintainer of the application must undertake to maintain its app over time if he wishes it to join the list of official applications. +This involves monitoring updates to the upstream application, adhering to the new packaging rules and responding to user requests. + +#### YEP 1.5 +##### Regularly update app status | draft | manual | WORKING | +#### YEP 1.6 +##### Keeping up-to-date on the evolution of apps packaging | validated | manual | OFFICIAL | +In order to keep up with the evolution of the packaging format and best practices, it is recommended to: +* subscribe to the discussion list `apps @ list.yunohost.org` +* follow [the forum's Apps category](https://forum.yunohost.org/c/apps-packaging) + +To follow the evolution of YunoHost more generally: +* join XMPP dev@conference.yunohost.org ([three days of logs are available](https://im.yunohost.org/logs/dev/)) +* follow [Annoucement category of the forum](https://forum.yunohost.org/c/announcement) +* follow discussions on contrib@list.yunohost.org + +#### YEP 1.7 +##### Add the app to the [YunoHost-Apps Organization](https://github.com/YunoHost-Apps) | validated | manual | OFFICIAL | +Adding an app to the [YunoHost-Apps organization](https://github.com/YunoHost-Apps) lets you share apps with other contributors who might be tempted to package the targeted application . + +It is also a way to quickly deploy a security patch if necessary in the event that the maintainer is unavailable. + +Transfer Procedure: Ask the [chat room](chat_rooms_en) to be invited to the organization by providing the name of their GitHub account. +Once the invitation is accepted, [transfer its deposit to the organization by following this tutorial](https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/# Transferring-a-repository-to-another-user-account-or-to-an-organization). + +#### YEP 1.8 +##### Publish test requests | validated | manual | OFFICIAL | +In order to ensure the proper functioning of a package, it is necessary to publish an announcement in order to open the tests on the package. This announcement can be done on the forum in [Forum Apps category](https://forum.yunohost.org/c/apps). + +It is recommended to indicate if some tests have not been conducted. + +* Check package with Package linter. +* Installation in subfolder. +* Installation at the root of a domain or subdomain. +* Deletion, in the 2 cases of previous installations. +* Access to the web interface of the application, with the / final in the address, and omitting it. +* Upgrade on the same version of the package. +* Upgrade from an older version of the package. +* Private installation (secured by SSO). +* Public installation. +* Multi-instance installation. +* User name error. +* Domain name error. +* Poorly written path (path / instead of / path for example). +* Port already used by another application. +* Source corrupted after download. +* Error downloading source. +* Folder already used by another application. +* Backup and restore. + +#### YEP 1.9 +##### Document the app | validated | AUTO | OFFICIAL | +Above all, it is appropriate to make a correct description of the app in the `description` field of the manifest. Keyword insertion in this description can be a good idea, as a user might be required to search (CTRL + F) among all applications. + +There is also README.md, which must and can contain: +* the name of the app +* a brief summary of what it does +* any additional installation if the script is not sufficient +* instructions to use it (for example to connect your smartphone or computer) +* the location to report a malfunction / request +* the roadmap / TODO +* possibly prerequisites in terms of ram memories, processor etc. (some equipment has less than 512MB of ram) + +#### YEP 1.10 +##### Keep a clean version history | draft | manual | OFFICIAL | +#### YEP 1.11 +##### Add app to [YunoHost bugtracker](https://dev.yunohost.org) | draft | manual | OFFICIAL | + +### YEP 2 +#### Stabilize an app +#### YEP 2.1 +##### Respect the manifest format | validated | Home | INPROGRESS | +The manifest allows to describe an app so that YunoHost can apply the good treatments. For more information see [dedicated documentation](https://yunohost.org/#/packaging_apps_manifest). + +#### YEP 2.2 +##### Using bash for main scripts | validated | Home | WORKING | +Action scripts (install, upgrade, remove, backup and restore) must be in the bash so that the cli / api yunohost can call them correctly. + +That being said, there is nothing to prevent other scripts or function libraries from using these scripts. These are not obliged to be in bash. + +However, careful attention must be paid to the correct display of logs of information, warning, or errors. So that a user of the cli / api yunohost can understand the operation of the script just executed and if necessary repair its YunoHost instance. + +#### YEP 2.3 +##### Save the answers during the installation | validated | manual | WORKING | +During installation, it is necessary to save each answer to the questions in the manifest. Indeed, even if at the beginning it is not necessary to write an update script, thereafter it will probably be the case. However, without the initial information, the update can be more tedious. + +#### YEP 2.4 +##### Detecting and Managing Errors | draft | manual | WORKING | +The install, upgrade, backup, and restore scripts must detect errors to avoid further scripting in case of blocking error or empty variable usage. +The use of trap and set -eu is recommended to detect and treat errors ([Discussion in progress](https://forum.yunohost.org/t/gestion-des-erreurs-set-e-and-or-trap/2249/5)) +It is also necessary to check the contents of the variables before removing the remove script. For example, an `rm -Rf /var/www/$app` with `$app` empty would have a disastrous result. + +At the beginning of the scripts, before any modifications, it is necessary to check the existence of the users mentioned at the installation, as well as the availability of the requested path, the availability of the final file of the application and the size of the passwords if necessary . + + Do not forget that in case of installation error the removal script will be launched automatically by the yunohost cli. + +#### YEP 2.5 +##### Copy files correctly | draft | manual | WORKING | +#### YEP 2.6 +##### Cancel action if input values ​​are incorrect | validated | manual | WORKING | +Each script should verify that the input values ​​are correct. + +Here are some examples : +* Check that the domain name exists +* Check that the user exists +* Check that the chosen path is available + +If one of the values ​​is incorrect, it is necessary to cancel any modifications made previously to the instance. The best thing is to do all these checks before changing the system. + +#### YEP 2.7 +##### Give sufficient permissions to bash | validated | Home | WORKING | +Some instructions require sudo rights. In this case, do not forget to prefix these instructions with `sudo`. + +In other cases it is necessary to give rights using chmod and chown. + +#### YEP 2.8 +##### Correctly changing a system configuration | draft | manual | WORKING | +Changes to the system must be reversible so that the removal of the application is of no consequence to the system leaves no residue. +For this purpose, the `.d` folders of the system configurations must be used as much as possible. Where it is not possible to do otherwise, clearly indicate the configuration as modified by an application and ensure that the changes will be removed when it is removed. + +#### YEP 2.9 +##### Remove all traces of the app when deleting | draft | manual | WORKING | +Except for dependencies (eg, Debian packages) used by other services or applications. + +#### YEP 2.10 +##### Configure application logs | draft | manual | WORKING | +If possible, the application should use a log file, which will preferably be in /var/log. +If the log is set up by the install script and not by the application itself, a log-rotate configuration file will have to be added to handle the logs of the application. + +#### YEP 2.11 +##### Using a variable rather than the app id directly | validated | manual | OFFICIAL | +It is advisable to make the scripts as generic as possible, a good way to do this is to use a variable for the app's name to avoid it being found everywhere in scripts. This will make it easier for another package builder to use the script for another app. + +#### YEP 2.12 +##### Using Helpers | validated | Home | OFFICIAL | +In order to simplify packaging, standardize practices, avoid errors and increase the lifetime of a script vis-à-vis future versions of YunoHost. A set of helpers to do many actions is proposed. + +For more information : +* consult [helpers documentation](https://yunohost.org/#/packaging_apps_helpers) +* explore [helpers directory](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d) + +#### YEP 2.13 +##### Translate the package in English | draft | manual | OFFICIAL | +#### YEP 2.14 +##### Fill a conf file correctly | draft | manual | OFFICIAL | +* Just to clear up a little this YEP, but it remains in draft form. * +The goal is to find a more reliable method than sed to modify the configuration files. sed can possibly have edge effects by modifying unwanted parts of the configuration file, especially with the use of regex. + +#### YEP 2.15 +##### Follow the instructions for installing the application | validated | manual | OFFICIAL | + +#### YEP 2.16 +##### Check availability of dependencies on ARM, x86, and x64 | validated | manual | OFFICIAL | +YunoHost installs on ARM, x86 and x64. A package should therefore be tested on these three processor architectures. + +Some packages are not available on ARM, in this case it is advisable to study other solutions or to indicate in the README.md that the application does not work on ARM and to block the installation by detection of type d 'architecture. + +#### YEP 2.17 +##### Take the original version into account when updating | validated | manual | OFFICIAL | +The update script must be able to run even if the previous updates have not been performed. + +For example, it should be possible to perform update jumps from an N-x version to an N version. To do this, it is advisable to save the version numbers in the app settings. + +### YEP 2.18 +##### Stabilizing a webapp +The majority of YunoHost applications are web apps, but some are not. The YEP 2.18.x develop certain specificities related to the web app. + +#### YEP 2.18.1 +##### Launch the script to install a webapp correctly | validated | manual | WORKING | +Often a web app installs itself from forms displayed on a web page. This practice, while practical for a human, is less so for a program. + +It is therefore necessary to check if the application does not propose a solution of installation on command line. + +If this is not the case, the -H option of curl should be used. In some cases, DNS redirection may not be active at the time of installation. +`` `Bash +curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https: //localhost$path/install.php > /dev/null 2>&1 +`` ` + +#### YEP 2.18.2 +##### Manage installation at the root of a domain name | validated | Home | WORKING | +A web app should be able to install itself at the root of a domain name. + +#### YEP 2.18.3 +##### Manage installation on a subdomain | validated | Home | WORKING | +A web app should be able to install itself on a subdomain directly without subfolders. + +#### YEP 2.18.4 +##### Manage installation on a path `/path` | validated | Home | OFFICIAL | +A web app should be able to install on a path `/path`. + +#### YEP 2.18.5 +##### Manage the YunoHost tile to easily navigate between applications | validated | manual | OFFICIAL | +Except in rare cases it is advisable to integrate the tile YunoHost which allows to return to the menu of the SSO. This integration is done in the nginx configuration. + +Some users have replaced this square with a script adding a menu at the top of each webapp. + +### YEP 3 +#### Securing an app +#### YEP 3.1 +##### Do not ask or store LDAP password | draft | manual | NOTWORKING | +#### YEP 3.2 +##### Open a port correctly | draft | manual | WORKING | +If the application requires the opening of a port, it is necessary to check beforehand that this port is not already used by another application. If so, the install script must be able to find another available port. +It should also be checked whether the port should be open on the router, beyond the local network. If this is not the case, the `--no-upnp` argument must be added to the` yunohost firewall allow` command in order to limit the port opening to the LAN only. + +#### YEP 3.3 +##### Facilitating Source Integrity Control | draft | manual | OFFICIAL | +The upstream application should not be integrated into tarball in the source folder of the package, as this adds to the package and the git repository and does not allow verification of the integrity of the source. +The source must be downloaded from the official website, then its integrity must be checked before installing it. + +#### YEP 3.4 +##### Isolate app | draft | manual | OFFICIAL | +In order to avoid edges in case of possible compromise of the application, it must be insulated in order not to affect the other applications. +To do this, it is necessary to isolate the application in its execution folder by restricting its environment by a chroot, either by a mechanism internal to the application where possible (for example for an ftp server), or by the use of phpfpm. +Similarly, to restrict the scope of the user running the application, it is preferable to use a user dedicated to the application. Whose rights are restricted to the use of the application only. +However, this should not exempt from a maximum restriction of rights on application files. As much as possible, the files must belong to root, and the dedicated user must have write rights only on files that specifically request it. + +#### YEP 3.5 +##### Follow the recommendations in the app's documentation | validated | manual | OFFICIAL | +Typically, an application provides documentation to help system administrators perform the installation. It is advisable to follow the recommendations, including the permissions to be granted per file or directory. + +However, the package maintainer must remain vigilant, some documentation may be erroneous or insufficient. + +#### YEP 3.6 +##### Update versions with CVE | draft | manual | OFFICIAL | +The [CVE](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures), or Common Vulnerabilities and Exposures, identify security vulnerabilities common to applications. The corrections of these flaws may concern the application and it is important in this case to follow these updates as closely as possible. +More generally, the application can propose a patch for a specific vulnerability to itself. +Generally, this YEP involves tracking an information channel to track application security updates and reacting quickly by updating the package accordingly. + +As specified in YEP 1.7, if a security patch is to be deployed urgently, another YunoHost member may be required to commit to the package if necessary. + +### YEP 4 +#### Embedding an app +This meta YEP deals with the integration of an app with the YunoHost environment. Good integration is generally a guarantee of quality and comfort for users. + +#### YEP 4.2 +##### Linking Authentication to sso | validated | manual | OFFICIAL | +The Single Sign On makes it possible to avoid having to create the same users for each app. Thus, a YunoHost user can connect via the Single Sign On to all the apps. + +To do this, you must link your app to the LDAP and / or use hooks to duplicate the account credentials in the app's database. + +Once this is done, the maintainer can use the REMOTE_USER HTTP statement to check whether a user is logged on or not. In general, modules exist (whether at the level of the technology, the framework or even the app itself). + +If required, SSOwat can be used to secure access to one or more parts of the app. It may be relevant to secure access to an administration page with the SSO rather than a `.htaccess` and make the rest of the app accessible to all visitors. + +#### YEP 4.2.1 +##### Logout | validated | manual | OFFICIAL | +When you click on a disconnect action within the app, it should disconnect the user from the SSO. Otherwise, there is a risk that the user will inadvertently leave an open session. + +#### YEP 4.3 +##### Provide YunoHost Backup Script Functional | validated | Home | OFFICIAL | +The application must have a backup script to allow users to back up the application, its configuration, and its data. + +#### YEP 4.4 +##### Provide a functional YunoHost restoration script | validated | Home | OFFICIAL | +The application must have a restore script to allow users to restore an application previously backed up with the backup script. + +#### YEP 4.5 +##### Using Hooks | validated | manual | OPTIONAL | +YunoHost offers the possibility to launch actions with each processing carried out by the command line. This can be practical in many cases. + +Examples: +* Add / delete a user in the app database when using `yunohost user create` or` yunohost user remove` +* Manage the addition of a new domain name during the `yunohost domain add` action +* Run a script after the firewall has been reloaded + +List of hooks: +* post_domain_add +* post_domain_remove +* post_user_create +* post_user_delete +* post_backup_create +* post_backup_restore +* pre_backup_delete +* post_backup_delete +* post_app_addaccess +* post_app_removeaccess +* post_app_clearaccess +* post_app_addaccess +* post_iptable_rules + +These scripts are to be placed in a `hooks` directory as in this package: https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks. + + +#### YEP 4.6 +##### Manage multi-instance | validated | manual | OPTIONAL | +It is sometimes practical to be able to install the same app several times. For example, for several different domain names. + +However, be careful about how to handle file paths, dependencies, ports used, etc. so that there is no collision. + +#### YEP 4.7 +##### Add a module to the CLI | validated | manual | OPTIONAL | +You can create a module to add commands to the yunohost command line. + +To do this, you need to add an actionmaps to `/usr/share/moulinette/actionsmap/`. This actionmaps must start with `ynh_`. + +The packages [menu_ynh](https://github.com/YunoHost-Apps/menu_ynh/) and [subscribe_ynh](https://github.com/YunoHost-Apps/subscribe_ynh/) are old (and not up to date) can be used as the basis for this type of module. +#### YEP 4.8 +##### Add a module to the web admin | draft | manual | OPTIONAL | \ No newline at end of file diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md index 6dc58e56..7186320a 100644 --- a/packaging_apps_guidelines_fr.md +++ b/packaging_apps_guidelines_fr.md @@ -79,10 +79,12 @@ Chaque YEP est associée à : | YEP 4.8 | Ajouter un module à l'admin web | brouillon | manuel | OPTIONAL | -### YEP 1 - Communiquer avec la communauté +### YEP 1 +#### Communiquer avec la communauté La YEP 1 est une meta YEP, elle explique ce qu'il faut faire pour échanger avec la communauté autour d'un paquet d'application YunoHost. -#### YEP 1.1 - Nommer son app et son dépôt | validé | manuel | NOTWORKING | +#### YEP 1.1 +##### Nommer son app et son dépôt | validé | manuel | NOTWORKING | Chaque application YunoHost possède un id inscrit dans le manifeste de l'application. Cet identifiant doit être unique entre chaque paquet d'application. Il est donc recommandé de vérifier sa disponibilité en consultant la liste des applications référencées dans les dépôts d'applications connus (official, community, internetcube). @@ -100,7 +102,8 @@ Par convention, les dépôts d'applications YunoHost sont toujours nommés de le Exemple : ID : exemple Nom de dépôt : exemple_ynh -#### YEP 1.2 - Inscrire l'app sur un « répertoire » connu | validé | manuel | NOTWORKING | +#### YEP 1.2 +##### Inscrire l'app sur un « répertoire » connu | validé | manuel | NOTWORKING | Il est conseillé dès le début du packaging d'inscrire une app sur un des dépôts d'application YunoHost. Ces dépôts ont plusieurs fonctions : @@ -111,7 +114,8 @@ 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). -#### 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. @@ -135,12 +139,15 @@ Quelques liens intéressants pour aider au choix de licence: * [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 | OFFICIAL | +#### YEP 1.4 +##### Informer sur l'intention de maintenir un paquet | brouillon | manuel | OFFICIAL | Le mainteneur de l'application doit s'engager à maintenir son app sur la durée si il souhaite que celle-ci rejoigne la liste des applications officielles. Cela implique de surveiller les mises à jour de l'application upstream, de respecter les nouvelles règles de packaging et de répondre aux demandes des utilisateurs. -#### 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.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 | Afin de suivre l'évolution du format de packaging ainsi que des bonnes pratiques, il est recommandé de: * s'inscrire à la liste de discussion `apps@list.yunohost.org` * suivre [la catégorie Apps packaging du forum](https://forum.yunohost.org/c/apps-packaging) @@ -150,7 +157,8 @@ Pour suivre l'évolution de YunoHost de façon plus générale : * suivre [la catégorie Annoucement du forum](https://forum.yunohost.org/c/announcement) * suivre les discussions sur contrib@list.yunohost.org -#### YEP 1.7 - Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL | +#### YEP 1.7 +##### Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL | L'ajout d'une app sur l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) permet de faire connaitre l'apps auprès des autres contributeurs qui pourraient être tentés de packager l'application visée. C'est aussi un moyen pour permettre de déployer rapidement un correctif de sécurité si nécessaire dans le cas où le mainteneur ne serait pas disponible. @@ -158,7 +166,8 @@ C'est aussi un moyen pour permettre de déployer rapidement un correctif de séc Procédure de transfert : demander sur le [salon de discussion `Apps`](chat_rooms_fr) à être invité à l’organisation en lui fournissant le nom de son compte GitHub. Une fois l’invitation acceptée, [transférer son dépôt sur l’organisation en suivant ce tutoriel](https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/#transferring-a-repository-to-another-user-account-or-to-an-organization). -#### YEP 1.8 - Publier des demandes de test | validé | manuel | OFFICIAL | +#### YEP 1.8 +##### Publier des demandes de test | validé | manuel | OFFICIAL | Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie Apps du forum](https://forum.yunohost.org/c/apps). Il est recommandé d'indiquer si certains tests n'ont pas été menés. @@ -182,7 +191,8 @@ Il est recommandé d'indiquer si certains tests n'ont pas été menés. * Dossier déjà utilisé par une autre application. * Backup et restore. -#### YEP 1.9 - Documenter l'app | validé | AUTO | OFFICIAL | +#### YEP 1.9 +##### Documenter l'app | validé | AUTO | OFFICIAL | Avant tout, il convient de faire une description correcte de l'app dans le champ `description` du manifest. L'insertion de mot clé dans cette description peut être une bonne idée, dans la mesure où un utilisateur pourrait être amené à faire une recherche (CTRL+F) parmi toutes les applications. Il y a également le README.md, ce dernier doit et peut contenir : @@ -194,24 +204,31 @@ Il y a également le README.md, ce dernier doit et peut contenir : * la roadmap/TODO * éventuellement les pré-requis en termes de mémoires ram, processeur etc. (certains équipements ont moins de 512Mo de ram) -#### YEP 1.10 - Garder un historique de version propre | brouillon | manuel | OFFICIAL | -#### YEP 1.11 - Ajouter l'app au [bugtracker YunoHost](https://dev.yunohost.org) | brouillon | manuel | OFFICIAL | +#### YEP 1.10 +##### Garder un historique de version propre | brouillon | manuel | OFFICIAL | +#### YEP 1.11 +##### Ajouter l'app au [bugtracker YunoHost](https://dev.yunohost.org) | brouillon | manuel | OFFICIAL | -### YEP 2 - Stabiliser une app -#### YEP 2.1 - Respecter le format du manifeste | validé | auto | INPROGRESS | +### YEP 2 +#### Stabiliser une app +#### YEP 2.1 +##### Respecter le format du manifeste | validé | auto | INPROGRESS | Le manifeste permet de décrire une app afin que YunoHost puisse lui appliquer les bons traitements. Pour plus d'information voir la [documentation dédiée](https://yunohost.org/#/packaging_apps_manifest). -#### YEP 2.2 - Utiliser bash pour les scripts principaux | validé | auto | WORKING | +#### YEP 2.2 +##### Utiliser bash pour les scripts principaux | validé | auto | WORKING | Les scripts d'action (install, upgrade, remove, backup et restore) doivent être en bash afin que la cli/api yunohost puisse correctement les appeler. Ceci étant, rien n'empêche à l'intérieur de ces scripts de faire appel à d'autres scripts ou bibliothèques de fonction. Ceux-ci ne sont pas obligés d'être en bash. Cependant, il faudra porter une attention particulière à l'affichage correct des logs d'information, de warning, ou d'erreurs. Afin qu'un utilisateur de la cli/api yunohost puisse comprendre le fonctionnement du script venant d'être exécuté et au besoin réparer son instance YunoHost. -#### YEP 2.3 - Sauvegarder les réponses lors de l'installation | validé | manuel | WORKING | +#### YEP 2.3 +##### Sauvegarder les réponses lors de l'installation | validé | manuel | WORKING | Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux questions du manifeste. En effet, même si au début il n'est pas nécessaire d'écrire un script de mise à jour, par la suite ce sera sans doute le cas. Or, sans les informations initiales, la mise à jour peut être plus fastidieuse. -#### YEP 2.4 - Détecter et gérer les erreurs | brouillon | manuel | WORKING | +#### YEP 2.4 +##### Détecter et gérer les erreurs | brouillon | manuel | WORKING | Les scripts install, upgrade, backup et restore doivent détecter les erreurs pour éviter la poursuite des scripts en cas d'erreur bloquante ou d'usage de variable vide. L'usage de trap et de set -eu est recommandé pour détecter et traiter les erreurs ([Discussion en cours à ce sujet](https://forum.yunohost.org/t/gestion-des-erreurs-set-e-et-ou-trap/2249/5)) Il est nécessaire également de vérifier le contenu des variables avant les suppressions du script remove. Par exemple un `rm -Rf /var/www/$app` avec `$app` vide aurait un résultat désastreux. @@ -220,8 +237,10 @@ Au début des scripts, avant toutes modifications, il faut vérifier l'existence N'oubliez pas qu'en cas d'erreur d'installation le script de suppression sera lancé automatiquement par la cli yunohost. -#### YEP 2.5 - Copier correctement des fichiers | brouillon | manuel | WORKING | -#### YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | +#### YEP 2.5 +##### Copier correctement des fichiers | brouillon | manuel | WORKING | +#### YEP 2.6 +##### Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | Chaque script devrait vérifier que les valeurs d'entrées sont correctes. Voici quelques exemples : @@ -232,53 +251,66 @@ Voici quelques exemples : Dans le cas où l'une des valeurs est incorrecte, il est alors nécessaire d'annuler toutes modifications réalisées préalablement sur l'instance. Le mieux étant de faire tous ces contrôles avant de modifier le système. -#### YEP 2.7 - Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING | +#### YEP 2.7 +##### Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING | Certaines instructions nécessitent les droits sudo. Il faut dans ce cas ne pas oublier de préfixer ces instructions par `sudo `. Dans d'autres cas il est nécessaire de donner des droits à l'aide de chmod et de chown. -#### YEP 2.8 - Modifier correctement une configuration système | brouillon | manuel | WORKING | +#### YEP 2.8 +##### Modifier correctement une configuration système | brouillon | manuel | WORKING | Les modifications du système doivent être réversible pour que la suppression de l'application soit sans conséquences pour le système ne laisse pas de résidus. Pour celà, il faut recourir autant que possible aux dossiers `.d` des configurations système. Où lorsqu'il n'est pas possible de faire autrement, d'indiquer clairement la configuration modifiée par une application et s'assurer que les modifications seront retirées lors de sa suppression. -#### YEP 2.9 - Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | +#### YEP 2.9 +##### Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | À l’exception de dépendances (pax exemple : paquets Debian) utilisés par d’autres services ou applications. -#### YEP 2.10 - Configurer les logs de l'application | brouillon | manuel | WORKING | +#### YEP 2.10 +##### Configurer les logs de l'application | brouillon | manuel | WORKING | Si possible, l'application doit utiliser un fichier de log, qui sera de préférence dans /var/log. Si le log est mis en place par le script install et non par l'application elle-même, un fichier de configuration pour log-rotate devra être ajouté pour gérer les rotations des logs de l'application. -#### YEP 2.11 - Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | +#### YEP 2.11 +##### Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | Il est conseillé de rendre les scripts le plus générique possible, un bon moyen d'y parvenir est d'utiliser une variable pour le nom de l'app afin d'éviter qu'il se retrouve partout dans les scripts. Ainsi, un autre packageur pourra plus facilement se servir du script pour une autre app. -#### YEP 2.12 - Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | +#### YEP 2.12 +##### Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | Afin de simplifier le packaging, d'uniformiser les pratiques, d'éviter les erreurs et d'augmenter la durée de vie d'un script vis-à-vis des futures versions de YunoHost. Un ensemble de helpers permettant de faire de nombreuses actions est proposé. Pour plus d'informations : * consulter [la documentation des helpers](https://yunohost.org/#/packaging_apps_helpers_fr) * explorer [le répertoire des helpers](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d) -#### YEP 2.13 - Traduire le paquet en anglais | brouillon | manuel | OFFICIAL | -#### YEP 2.14 - Remplir correctement un fichier de conf | brouillon | manuel | OFFICIAL | +#### YEP 2.13 +##### Traduire le paquet en anglais | brouillon | manuel | OFFICIAL | +#### YEP 2.14 +##### Remplir correctement un fichier de conf | brouillon | manuel | OFFICIAL | *Juste pour éclaircir un peu cette YEP, mais ça reste à l'état de brouillon.* Le but est de trouver une méthode plus fiable que sed pour modifier les fichiers de configuration. sed pouvant éventuellement avoir des effets de bord en modifiant des parties non désirées du fichier de configuration, en particulier avec l'usage de regex. -#### YEP 2.15 - Suivre les instructions d'installation de l'application | validé | manuel | OFFICIAL | +#### YEP 2.15 +##### Suivre les instructions d'installation de l'application | validé | manuel | OFFICIAL | -#### YEP 2.16 - Vérifier la disponibilité des dépendances sur ARM, x86 et x64 | validé | manuel | OFFICIAL | +#### YEP 2.16 +##### Vérifier la disponibilité des dépendances sur ARM, x86 et x64 | validé | manuel | OFFICIAL | YunoHost s'installe sur ARM, sur x86 et x64. Un paquet devrait donc être testé sur ces trois architectures processeur. Certains paquets ne sont pas disponibles sur ARM, il convient dans ce cas d'étudier d'autres solutions ou d'indiquer dans le README.md que l'application ne fonctionne pas sur ARM et de bloquer l’installation par détection du type d’architecture. -#### YEP 2.17 - Prendre en compte la version d'origine lors des mises à jour | validé | manuel | OFFICIAL | +#### YEP 2.17 +##### Prendre en compte la version d'origine lors des mises à jour | validé | manuel | OFFICIAL | Le script de mise à jour doit pouvoir fonctionner même si les mises à jour précédentes n'ont pas été effectuées. Ainsi, il doit être possible de faire des sauts de mise à jour d'une version N-x vers une version N. Pour ce faire il est conseillé d'enregistrer les numéros de version dans les settings de l'app. -### YEP 2.18 - Stabiliser une webapp +### YEP 2.18 +##### Stabiliser une webapp La majeure partie des applications YunoHost sont des web apps, mais certaines n'en sont pas. Les YEP 2.18.x développent certaines spécificités liées aux web app. -#### YEP 2.18.1 - Lancer le script d'installation d'une webapp correctement | validé | manuel | WORKING | +#### YEP 2.18.1 +##### Lancer le script d'installation d'une webapp correctement | validé | manuel | WORKING | Bien souvent une web app s'installe à partir de formulaires affichés sur une page web. Cette façon de faire, bien que pratique pour un humain, l'est moins pour un programme. Il convient donc de vérifier si l'application ne propose pas une solution d'installation en ligne de commande. @@ -288,52 +320,65 @@ Si ce n'est pas le cas, il convient d'utiliser l'option -H de curl. En effet, da curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https://localhost$path/install.php > /dev/null 2>&1 ``` -#### YEP 2.18.2 - Gérer l'installation à la racine d’un nom de domaine | validé | auto | WORKING | +#### YEP 2.18.2 +##### Gérer l'installation à la racine d’un nom de domaine | validé | auto | WORKING | Une web app devrait pouvoir s'installer à la racine d’un nom de domaine. -#### YEP 2.18.3 - Gérer l'installation sur un sous-domaine | validé | auto | WORKING | +#### YEP 2.18.3 +##### Gérer l'installation sur un sous-domaine | validé | auto | WORKING | Une web app devraient pouvoir s'installer sur un sous-domaine directement sans sous dossiers. -#### YEP 2.18.4 - Gérer l'installation sur un chemin `/path` | validé | auto | OFFICIAL | +#### YEP 2.18.4 +##### Gérer l'installation sur un chemin `/path` | validé | auto | OFFICIAL | Une web app devraient pouvoir s'installer sur un chemin `/path`. -#### YEP 2.18.5 - Gérer la tuile YunoHost pour naviguer facilement entre les applications | validé | manuel | OFFICIAL | +#### YEP 2.18.5 +##### Gérer la tuile YunoHost pour naviguer facilement entre les applications | validé | manuel | OFFICIAL | Sauf dans de rare cas il est conseillé d'intégrer la tuile YunoHost qui permet de retourner sur le menu du SSO. Cette intégration se fait dans la configuration nginx. Certains utilisateurs ont remplacé ce carré par un script ajoutant un menu en haut de chaque webapp. -### YEP 3 - Sécuriser une app -#### YEP 3.1 - Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | -#### YEP 3.2 - Ouvrir un port correctement | brouillon | manuel | WORKING | +### YEP 3 +#### Sécuriser une app +#### YEP 3.1 +##### Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | +#### YEP 3.2 +##### Ouvrir un port correctement | brouillon | manuel | WORKING | Si l'application nécessite l'ouverture d'un port, il est nécessaire de vérifier préalablement que ce port n'est pas déjà utilisé par une autre application. Le cas échéant, le script install doit être capable de trouver un autre port disponible. Il convient également de vérifier si le port doit être ouvert sur le routeur, au delà du réseau local. Si ce n'est pas le cas, l'argument `--no-upnp` doit être ajouté à la commande `yunohost firewall allow` afin de limiter l'ouverture du port au réseau local uniquement. -#### YEP 3.3 - Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | +#### YEP 3.3 +##### Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | L'application upstream ne doit pas être intégrée en tarball dans le dossier source du package, car cela alourdit le package et le dépôt git et ne permet pas la vérification de l'intégrité de la source. La source doit donc être téléchargée depuis le site officiel, puis son intégritée doit être vérifiée avant de l'installer. -#### YEP 3.4 - Isoler l'app | brouillon | manuel | OFFICIAL | +#### YEP 3.4 +##### Isoler l'app | brouillon | manuel | OFFICIAL | Afin d'éviter des effets de bords en cas de compromission éventuelle de l'application, celle-ci doit être isolée pour de ne pas risquer d'impacter les autres applications. Pour cela, il convient d'isoler l'application dans son dossier d'exécution en restreignant son environnement par un chroot, soit par un mécanisme interne à l'application lorsque c'est possible (par exemple pour un serveur ftp), soit par l'usage de phpfpm. De même, pour restreindre la portée de l'utilisateur exécutant l'application, il est préférable d'utiliser un utilisateur dédiée à l'application. Dont les droits sont restreint à l'usage de l'application uniquement. Toutefois, cela ne doit pas exempter d'une restriction maximale des droits sur les fichiers de l'application. Autant que possible, les fichiers doivent appartenir à root, et l'utilisateur dédié ne doit avoir de droits d'écriture que sur les fichiers le réclamant expressément. -#### YEP 3.5 - Suivre les recommandations de la documentation de l'app | validé | manuel | OFFICIAL | +#### YEP 3.5 +##### Suivre les recommandations de la documentation de l'app | validé | manuel | OFFICIAL | En général, une application propose une documentation afin d'aider les administrateurs systèmes à réaliser l'installation. Il est conseiller d'en suivre les recommandations, notamment celles concernant les permissions à accorder par fichier ou répertoire. Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations pouvant être erronées ou insuffisante. -#### YEP 3.6 - Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | +#### YEP 3.6 +##### Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | Les [CVE](https://fr.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures), ou Common Vulnerabilities and Exposures, recensent les failles de sécurités communes aux applications. Les corrections de ces failles peuvent concerner l'application et il est important dans ce cas de suivre au plus près ces mises à jour. Plus généralement, l'application peut proposer un correctif pour une faille spécifique à elle-même. De manière générale, cette YEP implique de suivre un canal d'information pour suivre les mises à jour de sécurité de l'application et réagir rapidement en mettant à jour le package en conséquence. Comme précisé dans la YEP 1.7, si un correctif de sécurité doit être déployé en urgence, un autre membre de YunoHost peut être amené à faire un commit sur le package si nécessaire. -### YEP 4 - Intégrer une app +### YEP 4 +#### Intégrer une app Cette meta YEP traite de l'intégration d'une app avec l'environnement YunoHost. Une bonne intégration est en général un gage de qualité et de confort pour les utilisateurs. -#### YEP 4.2 - Lier l'authentification au sso | validé | manuel | OFFICIAL | +#### YEP 4.2 +##### Lier l'authentification au sso | validé | manuel | OFFICIAL | Le Single Sign On permet d'éviter d'avoir à créer les mêmes utilisateurs pour chaque app. Ainsi, un utilisateur YunoHost pourra se connecter via le Single Sign On à l'ensemble des apps. Pour se faire, il convient de lier son app au LDAP et/ou d'utiliser des hooks pour dupliquer les identifiants du compte dans la base de données de l'app. @@ -342,16 +387,20 @@ Une fois cette opération appliquée, le mainteneur peut utiliser l'instruction Au besoin, SSOwat permet de sécuriser l'accès à une ou plusieurs parties de l'app. Il peut ainsi être pertinent de sécuriser l'accès à une page d'administration avec le SSO plutôt qu'un `.htaccess` et de rendre le reste de l'app accessible à tous les visiteurs. -#### YEP 4.2.1 - Déconnexion | validé | manuel | OFFICIAL | +#### YEP 4.2.1 +##### Déconnexion | validé | manuel | OFFICIAL | Lorsque l'on clique sur une action de déconnexion au sein de l'app, celle-ci devrait déconnecter l'utilisateur du SSO. Sinon, il y a un risque que l'utilisateur laisse par mégarde une session ouverte. -#### YEP 4.3 - Fournir un script de sauvegarde YunoHost fonctionnel | validé | auto | OFFICIAL | +#### YEP 4.3 +##### Fournir un script de sauvegarde YunoHost fonctionnel | validé | auto | OFFICIAL | L'application doit disposer d'un script backup pour permettre aux utilisateurs de sauvegarder l'application, sa configuration et ses données. -#### YEP 4.4 - Fournir un script de restauration YunoHost fonctionnel | validé | auto | OFFICIAL | +#### YEP 4.4 +##### Fournir un script de restauration YunoHost fonctionnel | validé | auto | OFFICIAL | L'application doit disposer d'un script restore pour permettre aux utilisateurs de restaurer une application sauvegardée préalablement avec le script backup. -#### YEP 4.5 - Utiliser les hooks | validé | manuel | OPTIONAL | +#### YEP 4.5 +##### Utiliser les hooks | validé | manuel | OPTIONAL | YunoHost offre la possibilité de lancer des actions à chaque traitement effectué par la ligne de commande. Ceci peut être pratique dans de nombreux cas. Exemples : @@ -377,15 +426,18 @@ Liste des hooks : Ces scripts sont à placer dans un répertoire `hooks` comme dans ce paquet : https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks . -#### YEP 4.6 - Gèrer le multi-instance | validé | manuel | OPTIONAL | +#### YEP 4.6 +##### Gèrer le multi-instance | validé | manuel | OPTIONAL | Il est parfois pratique de pouvoir installer plusieurs fois une même app. Par exemple, pour plusieurs noms de domaine différents. Il faut toutefois faire attention à la façon de gérer les chemins de fichier, les dépendances, les ports utilisés etc. de sorte qu'il n'y ait pas de collision. -#### YEP 4.7 - Ajouter un module à la CLI | validé | manuel | OPTIONAL | +#### YEP 4.7 +##### Ajouter un module à la CLI | validé | manuel | OPTIONAL | Il est possible de créer un module afin d'ajouter des commandes à la ligne de commandes yunohost. Pour ce faire, il faut ajouter un actionmaps dans `/usr/share/moulinette/actionsmap/`. Cet actionmaps doit commencer par `ynh_`. Les paquets [menu_ynh](https://github.com/YunoHost-Apps/menu_ynh/) et [subscribe_ynh](https://github.com/YunoHost-Apps/subscribe_ynh/) bien qu’anciens (et non à jour) peuvent servir de base pour mettre en place ce genre de module. -#### YEP 4.8 - Ajouter un module à l'admin web | brouillon | manuel | OPTIONAL | +#### YEP 4.8 +##### Ajouter un module à l'admin web | brouillon | manuel | OPTIONAL | diff --git a/packaging_apps_hooks_fr.md b/packaging_apps_hooks_fr.md index 2ca12a7b..0ff4fd75 100644 --- a/packaging_apps_hooks_fr.md +++ b/packaging_apps_hooks_fr.md @@ -26,6 +26,14 @@ Après l'ajout d'un utilisateur autorisé sur une application. Après la suppression de l'autorisation d'un utilisateur sur une application. - `post_app_clearaccess` Après l'effacement de toute les règles d'accès sur une application. +- `post_app_install` +Après l'installation d'une application +- `post_app_upgrade` +Après l'upgrade d'une applications +- `post_app_remove` +Après la supression d'une applications +- `post_app_change_url` +Après avoir modifié le chemin et ou le nom de domaine d'une application - `conf_regen` Avant et après la régénération de la configuration d'un service. Services pris en charge par regen-conf: @@ -84,7 +92,6 @@ password=$3 # Clear password firstname=$4 lastname=$5 ``` - ##### `post_user_delete` ```bash @@ -105,6 +112,13 @@ ipv6=$2 # True/False Indique si l'IPV6 est activé ou non. backup_name=$1 ``` +##### `post_app_install`, `post_app_upgrade`, `post_app_remove` et `post_app_change_url` + +Les variables utilisables dans ces scripts sont les mêmes que celles disponibles dans [les scripts d'actions associés](/packaging_apps_scripts_fr). + + +Example: pour `post_app_install` les variables sont les mêmes que pour le script `install` + ##### `post_app_addaccess` et `post_app_removeaccess` ```bash diff --git a/packaging_apps_manifest.md b/packaging_apps_manifest.md index 62376fea..97b92b07 100644 --- a/packaging_apps_manifest.md +++ b/packaging_apps_manifest.md @@ -12,6 +12,7 @@ The `manifest.json` file defines the app's constants, a bunch of values that Yun "fr": "Webmail Open Source" }, "url": "http://roundcube.net/", + "version": "1.0-1", "license": "free", "maintainer": { "name": "kload", @@ -62,6 +63,8 @@ The `manifest.json` file defines the app's constants, a bunch of values that Yun * **url**: software website. +* **version**: version of the package builded from the upstream version number and an incremental number for each change in the package without upstream change. Example "1.0.0-7". Must be a string. + * **license**: application license: `free` or `non-free`. Be careful to not confuse with package license which must be put in `LICENSE` file. * **maintainer**: informations about the app maintainer for contact. diff --git a/packaging_apps_manifest_fr.md b/packaging_apps_manifest_fr.md index 98b07abf..d1a4a8e0 100644 --- a/packaging_apps_manifest_fr.md +++ b/packaging_apps_manifest_fr.md @@ -12,6 +12,7 @@ Le fichier `manifest.json` définit les constantes de l’application, un ensemb "fr": "Webmail Open Source" }, "url": "http://roundcube.net/", + "version": "1.0-1", "license": "free", "maintainer": { "name": "kload", @@ -58,9 +59,11 @@ Le fichier `manifest.json` définit les constantes de l’application, un ensemb - **packaging_format** : version de packaging du paquet. La version **1** est la version actuelle. Cette clé a été mise en place afin de faire évoluer les versions de packaging de manière décorrélée des versions de YunoHost. -* **description** : description complète de l’application. Vous pouvez la détailler comme bon vous semble. Uniquement le champs `en` (english) est requis, vous pouvez également ajouter la traduction en français :) +* **description** : description complète de l’application. Vous pouvez la détailler comme bon vous semble. Uniquement le champ `en` (english) est requis, vous pouvez également ajouter la traduction en français :) -* **url**: site de l’application. +* **url** : site web de l’application. + +* **version** : version du package construit à partir du numéro de version de l’application qui est installée et d'un incrément pour chaque changement du paquet sans changement de version de l'application. "Exemple: 1.0.0-7". Le champ doit être une chaîne de caractères. * **license** : licence avec laquelle l’application est distribuée : `free`, `non-free`. Attention à ne pas confondre avec la licence du paquet qui doit être mise dans le fichier `LICENSE`. @@ -68,7 +71,7 @@ Le fichier `manifest.json` définit les constantes de l’application, un ensemb - **requirements** : dépendance du paquet de l’application à la version d’un paquet Debian de YunoHost. Par exemple : "yunohost": ">> 2.3.12", le paquet `yunohost` doit être de version supérieur à `2.3.12`. -* [**multi_instance**](packaging_apps_multiinstance_fr) : capacité d’une application d’être installée plusieurs fois. +* [**multi_instance**](packaging_apps_multiinstance_fr) : capacité d’une application d’être installée plusieurs fois. * **services** : liste des services nécessaires au fonctionnement de l’application. `nginx`, `php5-fpm`, `mysql`, `uwsgi`, `metronome`, `postfix`, `dovecot`… @@ -77,7 +80,7 @@ Le fichier `manifest.json` définit les constantes de l’application, un ensemb * **name** : identifiant du paramètre * **type** : (optionnel) type de paramètre parmis `domain`, `path`, `user`, `app`, `boolean` et `password`. Le champ sera caché dans le cas d’un mot de passe. * **choices** : (optionnel) restreint les réponses possibles à plusieurs choix. - * **optional** : (optionnel) champs qui indique si ce paramètre est optionnel. Il peux avoir les valeurs `true` ou `false`. + * **optional** : (optionnel) champs qui indique si ce paramètre est optionnel. Il peut avoir les valeurs `true` ou `false`. * **ask** : question posée (au minimum en anglais – `en`) que vous pouvez traduire dans plusieurs langues. * **example** : (optionnel) valeur d’exemple pour aider l’administrateur à remplir le formulaire d’installation. * **default** : (optionnel) valeur par défaut. diff --git a/packaging_apps_scripts.md b/packaging_apps_scripts.md index 17ee5194..3db089a5 100644 --- a/packaging_apps_scripts.md +++ b/packaging_apps_scripts.md @@ -2,60 +2,65 @@ ## Scripts -For now, a YunoHost package must contain five Shell scripts: `install`, `remove`, `upgrade`, `backup` and `restore`. -These scripts will be executed as `admin` on the YunoHost instances. +For now, a YunoHost package must contain five Shell scripts: `install`, `remove`, `upgrade`, `backup` and `restore`. A 6th script `change_url` can also be added optionally. +These scripts will be executed as `root` on the YunoHost instances. -Here is an example: -```bash -# Retrieve arguments -domain=$1 -path=$2 - -# Check domain/path availability -sudo yunohost app checkurl $domain$path -a roundcube -if [[ ! $? -eq 0 ]]; then - exit 1 -fi - -# Generate random DES key & password -deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p') -db_pwd=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p') - -# Use 'roundcube' as database name and user -db_user=roundcube - -# Initialize database and store mysql password for upgrade -sudo yunohost app initdb $db_user -p $db_pwd -s $(readlink -e ../sources/SQL/mysql.initial.sql) -sudo yunohost app setting roundcube mysqlpwd -v $db_pwd - -# Copy files to the right place -final_path=/var/www/roundcube -sudo mkdir -p $final_path -sudo cp -a ../sources/* $final_path -sudo cp ../conf/main.inc.php $final_path/config/ -sudo cp ../conf/db.inc.php $final_path/config/ -sudo mv $final_path/plugins/managesieve/config.inc.php.dist $final_path/plugins/managesieve/config.inc.php - -# Change variables in Roundcube configuration -sudo sed -i "s/rcmail-ynhDESkeyTOchange/$deskey/g" $final_path/config/main.inc.php -sudo sed -i "s/yunouser/$db_user/g" $final_path/config/db.inc.php -sudo sed -i "s/yunopass/$db_pwd/g" $final_path/config/db.inc.php -sudo sed -i "s/yunobase/$db_user/g" $final_path/config/db.inc.php - -# Set permissions to roundcube directory -sudo chown -R www-data: $final_path - -# Modify Nginx configuration file and copy it to Nginx conf directory -sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf -sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf -sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/roundcube.conf - -# Reload nginx and regenerate SSOwat conf -sudo service nginx reload -sudo yunohost app ssowatconf -``` +Examples scripts are available in the [example app](https://github.com/YunoHost/example_ynh/tree/master/scripts) ### Usage You have to put everything in the `install` script in order to get the app to install without issue. It means that you have to install dependencies, create required repositories, initialize potential databases, copy sources and configure everything in the single `install` script (and of course do the reverse process in the `remove` script). -**Be careful**: for security reasons, the script is executed as the **admin** user in YunoHost. Be sure to test it as **admin** and prepend `sudo` to commands that require it. \ No newline at end of file +It's possible to use helpers and import function library by example from a `_common.sh` file. + +### Available variables for these scripts +#### YNH_CWD +This var contains the current working directory path of the executed script. It can be useful for find out the initial path if we have move of directory during the script execution. It is used by some helpers to be sure to use the good directory. + +#### YNH_APP_ID +It contains the application's identifier without the instance's number. + +Example: strut + +#### YNH_APP_INSTANCE_NAME +It contains the instance name which will is used in a lot of situation to manage multiple setup of the same app. + +Example: strut__3 +#### YNH_APP_INSTANCE_NUMBER +It contains the instance's number. Warning, it's not the number of running instances because an old app might be deleted. + +Example: 3 + +### Specific variables to use in `install` +#### YNH_APP_ARG_XXXXXXX +An environment variable is available for each question asked in the installation. + +For example, if in the manifest we have a question like this +``` +{ + "name": "domain", + "type": "domain", + "ask": { + "en": "Choose a domain for OpenSondage", + "fr": "Choisissez un nom de domaine pour OpenSondage", + "de": "Wählen Sie bitte einen Domain für OpenSondage" + }, + "example": "domain.org" +}, +``` + +The name of the question is `domain` so in the script we can access it with YNH_APP_ARG_DOMAIN. The usage is to create a shorter name in the script like this: + +``` +domain=$YNH_APP_ARG_DOMAIN +``` + +### Variables spécifiques pour `change_url` +#### YNH_APP_OLD_DOMAIN +The old domain where the app was installed. +#### YNH_APP_OLD_PATH +The old path where the app was installed. +#### YNH_APP_NEW_DOMAIN +The new domain where move the app. +#### YNH_APP_NEW_PATH +The new path where move the app. + diff --git a/packaging_apps_scripts_fr.md b/packaging_apps_scripts_fr.md index 5cb174e0..17658af1 100644 --- a/packaging_apps_scripts_fr.md +++ b/packaging_apps_scripts_fr.md @@ -2,60 +2,64 @@ ## Les scripts -Un paquet YunoHost doit contenir cinq scripts Shell : `install`, `remove`, `upgrade`, `backup` et `restore`. -Ces scripts seront exécutés en tant qu’`admin` sur les serveurs YunoHost. +Un paquet YunoHost doit contenir cinq scripts Shell : `install`, `remove`, `upgrade`, `backup` et `restore`. Un 6ème script `change_url` peut aussi être ajouté de façon optionnelle +Ces scripts seront exécutés en tant que `root` sur les serveurs YunoHost. -Voici un exemple de script d’`install` : -```bash -# Retrieve arguments -domain=$1 -path=$2 - -# Check domain/path availability -sudo yunohost app checkurl $domain$path -a roundcube -if [[ ! $? -eq 0 ]]; then - exit 1 -fi - -# Generate random DES key & password -deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p') -db_pwd=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p') - -# Use 'roundcube' as database name and user -db_user=roundcube - -# Initialize database and store mysql password for upgrade -sudo yunohost app initdb $db_user -p $db_pwd -s $(readlink -e ../sources/SQL/mysql.initial.sql) -sudo yunohost app setting roundcube mysqlpwd -v $db_pwd - -# Copy files to the right place -final_path=/var/www/roundcube -sudo mkdir -p $final_path -sudo cp -a ../sources/* $final_path -sudo cp ../conf/main.inc.php $final_path/config/ -sudo cp ../conf/db.inc.php $final_path/config/ -sudo mv $final_path/plugins/managesieve/config.inc.php.dist $final_path/plugins/managesieve/config.inc.php - -# Change variables in Roundcube configuration -sudo sed -i "s/rcmail-ynhDESkeyTOchange/$deskey/g" $final_path/config/main.inc.php -sudo sed -i "s/yunouser/$db_user/g" $final_path/config/db.inc.php -sudo sed -i "s/yunopass/$db_pwd/g" $final_path/config/db.inc.php -sudo sed -i "s/yunobase/$db_user/g" $final_path/config/db.inc.php - -# Set permissions to roundcube directory -sudo chown -R www-data: $final_path - -# Modify Nginx configuration file and copy it to Nginx conf directory -sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf -sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf -sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/roundcube.conf - -# Reload Nginx and regenerate SSOwat conf -sudo service nginx reload -sudo yunohost app ssowatconf -``` +Des exemples de ces scripts sont disponibles dans l'[application d'exemple](https://github.com/YunoHost/example_ynh/tree/master/scripts) ### Utilisation Vous devez tout mettre dans le script d’`install` pour que votre application soit entièrement installée. Cela signifie que vous devez installer les dépendances, créer les répertoires requis, initialiser les bases de données nécessaires, copier les sources et configurer tout dans l’unique script `install` (et bien sûr faire la procédure inverse dans le script `remove`). -**Attention** : pour des raisons de sécurité, le script est exécuté en tant qu’**admin** dans YunoHost. Assurez-vous de l’essayer en tant qu’**admin** et de préfixer `sudo` aux commandes requises. \ No newline at end of file +Il est possible d'utiliser des helpers et d'importer une librairie de fonction par exemple depuis un fichier `_common.sh`. + +### Variables disponibles pour tous ces scripts +#### YNH_CWD +Cette variable contient le chemin du répertoire de travail courant du contexte d'execution du script. Elle peut être utile pour retrouver le chemin initial si on s'est déplacé pendant l'execution du script. Elle est utilisée par certains helpers pour être sûr d'utiliser le bon. + +#### YNH_APP_ID +Contient l'identifiant de l'application sans le numéro d'instance + +Exemple: strut +#### YNH_APP_INSTANCE_NAME +Contient le nom d'instance qui sera utilisé dans de nombreuses situation pour pouvoir gérer l'installation multiple d'une même app. + +Exemple: strut__3 +#### YNH_APP_INSTANCE_NUMBER +Contient le numero de l'instance. Attention il ne s'agit pas forcément du nombre d'instance toujours installée, car une ancienne application peut avoir été désinstallée. + +Exemple: 3 + +### Variables spécifiques pour `install` +#### YNH_APP_ARG_XXXXXXX +Pour chaque question posée dans lors de l'installation une variable d'environnement est disponible. + +Par exemple, si dans le manifest nous avons une question de cette forme +``` +{ + "name": "domain", + "type": "domain", + "ask": { + "en": "Choose a domain for OpenSondage", + "fr": "Choisissez un nom de domaine pour OpenSondage", + "de": "Wählen Sie bitte einen Domain für OpenSondage" + }, + "example": "domain.org" +}, +``` + +Le nom de la question `domain` donc dans le script on peut accéder à cette variable via $YNH_APP_ARG_DOMAIN. L'usage est de créer une variable plus courte comme ceci: + +``` +domain=$YNH_APP_ARG_DOMAIN +``` + +### Variables spécifiques pour `change_url` +#### YNH_APP_OLD_DOMAIN +L'ancien domaine où était installée l'app. +#### YNH_APP_OLD_PATH +L'ancien chemin où était installée l'app; +#### YNH_APP_NEW_DOMAIN +Le nouveau domaine où doit être installée l'app. +#### YNH_APP_NEW_PATH +Le nouveau chemin où doit être installée l'app. + diff --git a/port_forwarding.md b/port_forwarding.md new file mode 100644 index 00000000..c24f5542 --- /dev/null +++ b/port_forwarding.md @@ -0,0 +1,6 @@ +# Port forwarding + +The sketch below tries to briefly summarize the role and necessity of port +forwarding when setting up a server at home. + + diff --git a/port_forwarding_fr.md b/port_forwarding_fr.md new file mode 100644 index 00000000..1793b27b --- /dev/null +++ b/port_forwarding_fr.md @@ -0,0 +1,6 @@ +# Redirection de ports + +Le schéma ci-dessous tente d'expliquer brièvement le rôle de la redirection des +ports lors de la mise en place d'un serveur à la maison. + + diff --git a/postinstall.md b/postinstall.md index cb8ddfb6..35246f63 100644 --- a/postinstall.md +++ b/postinstall.md @@ -4,7 +4,7 @@ The step called "**post-installation**" is actually the initial configuration of ## Access -You can access it graphically by entering your **server's local IP** address in a **web browser** (e.g. `http://192.168.1.7`). +You can access it graphically by entering your **server's local IP** address in a **web browser** (e.g. `http://192.168.1.7`; you'll get this from the client table on your router's admin page). @@ -26,7 +26,7 @@ Or by running `yunohost tools postinstall` in command-line. This is the first domain name linked to your YunoHost server, but also the one which will be used by your server's users to access the **authentication portal**. It will thus be **visible by everyone**, choose it wisely. -* If you do not have a domain name, or if you want to use the YunoHost's DynDNS service, choose a sub-domain of **.nohost.me** or **.noho.st** (i.e. `homersimpson.nohost.me`). The domain will be configured automatically and you won't need any further configuration step. +* If you do not have a domain name, or if you want to use the YunoHost's DynDNS service, choose a sub-domain of **.nohost.me** or **.noho.st** (e.g. `homersimpson.nohost.me`). The domain will be configured automatically and you won't need any further configuration step. * If you do know what **DNS** is, you probably want to configure your own domain name here. In this case, please refer to the [DNS page](/dns) page for more informations. @@ -40,16 +40,22 @@ This password will be used to access to your server's [administration interface] --- -## Troubleshooting +## Congratz! -### Secured connection fails after **post-installation** +If you got so far and saw 'YunoHost has been successfully installed' (web +postinstall) or 'YunoHost has been correctly configured', then congratulations! -If you're using your own domain and depending on your browser, you might be stuck out of your Yunohost installation until you deploy an appropriate certificate. Thanks to Yunohost and [Let's Encrypt](https://letsencrypt.org/), this proves to be quite easy: just run `yunohost domain cert-install` in command-line to issue and install your certificate and _Voilà_. Refresh your browser and you're good to go. +### What now ? ---- +- If you're self-hosting at home and without a VPN, you need to [make sure to + correctly forward ports on your router/Internet box](isp_box_config) ; +- If you're using your own domain name (i.e. not a .nohost.me / .noho.st), you + need to [configure it according to the recommended DNS + configuration](dns_config) ; +- If you cannot configure your domain name yet (because you didn't register it + yet, or because this is a test domain), see last paragraph + [here](dns_local_network) for a workaround ; +- Don't be too afraid of the [certificate warning](certificate), you'll probably + be able to install a Let's Encrypt certificate :). +- Have a look at [the available apps](apps) ! -## And after ? - -Once the post-installation finished, check if you can access to your server with your web-browser. If it is not the case, a few more configuration steps may be required. - -Do not hesitate to come on our [support chatroom](/support) if you need help. diff --git a/postinstall_fr.md b/postinstall_fr.md index 9709e4e2..e8532ad2 100644 --- a/postinstall_fr.md +++ b/postinstall_fr.md @@ -46,16 +46,24 @@ De manière générale, c’est la **clé d’entrée à votre système**, pense --- -## En cas de problème +## Félicitations ! -### Échec de la connection sécurisée après la **post-installation** +Si vous arrivez ici après avoir vu "YunoHost a été installé avec succès" depuis +votre navigateur ou la ligne de commande, alors félicitations ! -Si vous utilisez votre propre domaine et selon votre navigateur, vous pourriez vous retrouver bloqué à l'entrée de votre Yunohost tant que vous n'avez pas déployé un certificat valide. Grâce à Yunohost et [Let's Encrypt](https://letsencrypt.org/), c'est plutôt simple : exécutez simplement `yunohost domain cert-install` en ligne de commande pour émettre et installer votre certificat et _Voilà_. Rafraichissez votre navigateur et vous êtes paré. +### Et maintenant ? ---- +- Si vous vous auto-hébergez à la maison et sans VPN, il vous faut vous assurer + de bien [rediriger les ports de votre box internet](isp_box_config_fr) ; +- Si vous utilisez votre propre nom de domaine (i.e. pas un nohost.me / + noho.st), il vous faut [configurer le nom de domaine d'après la configuration + recommandée](dns_config_fr) ; +- Si vous ne pouvez pas configurer le nom de domaine pour le moment (parce qu'il + n'est pas encore acheté, ou parce que c'est un domaine de test), vous pouvez + contourner temporairement le problème avec les instructions du dernier + paragraphe [ici](dns_local_network_fr) ; +- Ne soyez pas trop effrayé par [l'avertissement à propos du + certificat](certificate_fr), vous aurez probablement la possibilité + d'installer un certificat Let's Encrypt :). +- Jetez un oeil aux [applications disponibles](apps_fr) ! -## Et après ? - -Une fois l’étape de post-installation exécutée, vérifiez que votre serveur est accessible en tapant le nom de domaine choisi précédemment dans votre navigateur web. Si celui-ci n’est pas accessible, quelques étapes de configurations supplémentaires sont sûrement nécessaires. - -Rendez-nous visite sur le [salon de support](/support_fr) si vous avez besoin d’aide. diff --git a/regenerate_certificate.md b/regenerate_certificate.md deleted file mode 100644 index 44577685..00000000 --- a/regenerate_certificate.md +++ /dev/null @@ -1,47 +0,0 @@ -# Regenerate certificate - -If you want to generate again -- not renewing -- a certificate for a domain, you can follow those steps: - -(replace **example.org** with your domain) - -```bash -# Save YunoHost's SSL directory location for readability -ssldir=/usr/share/yunohost/yunohost-config/ssl/yunoCA - -# Save the final SSL path (do not forget to change your domain) -finalpath=/etc/yunohost/certs/example.org - -# Save the serial number of the new certificate -serial=$(cat "$ssldir/serial") - -# Backup current certificates for your domain -cp -a $finalpath $finalpath.back - -# Remove certs and configuration file in it -rm $finalpath/{crt.pem,key.pem,openssl.cnf} - -# Copy openSSL's configuration file -cp $ssldir/openssl.cnf $finalpath/ - -# Change yunohost.org with your domain in the configuration -# DO NOT FORGET TO REPLACE example.org ! -sed -i "s/yunohost.org/example.org/g" $finalpath/openssl.cnf - -# Generate certificate and key -openssl req -new -config $finalpath/openssl.cnf -days 3650 -out $ssldir/certs/yunohost_csr.pem -keyout $ssldir/certs/yunohost_key.pem -nodes -batch - -# Sign certificate with your server's CA -openssl ca -config $finalpath/openssl.cnf -days 3650 -in $ssldir/certs/yunohost_csr.pem -out $ssldir/certs/yunohost_crt.pem -batch - -# Copy certificate and key to the right place -cp $ssldir/newcerts/$serial.pem $finalpath/crt.pem -cp $ssldir/certs/yunohost_key.pem $finalpath/key.pem - -# Fix permissions -chmod 755 $finalpath -chmod 640 $finalpath/key.pem $finalpath/crt.pem -chmod 600 $finalpath/openssl.cnf - -# Allow metronome to access those certificates -chown root:metronome $finalpath/key.pem $finalpath/crt.pem -``` \ No newline at end of file diff --git a/regenerate_certificate_fr.md b/regenerate_certificate_fr.md deleted file mode 100644 index 7243dec7..00000000 --- a/regenerate_certificate_fr.md +++ /dev/null @@ -1,47 +0,0 @@ -#Régénérer un certificat - -Si vous désirez générer à nouveau — et non renouveler — un certificat pour un domain, suivre les étapes suivantes : - -(remplacer **example.org** avec votre domaine) - -```bash -# Sauvegarde du répertoire SSL de YunoHost, pour la lisibilité -ssldir=/usr/share/yunohost/yunohost-config/ssl/yunoCA - -# Sauvegarde du chemin final SSL (ne pas oublier de modifier avec votre domaine) -finalpath=/etc/yunohost/certs/example.org - -# Sauvegarde du numéro de série du nouveau certificat -serial=$(cat "$ssldir/serial") - -# Sauvegarde du certificat actuel du domaine -cp -a $finalpath $finalpath.back - -# Suppression des certificats et des fichiers de configuration -rm $finalpath/{crt.pem,key.pem,openssl.cnf} - -# Copie du fichier de configuration d’openSSL -cp $ssldir/openssl.cnf $finalpath/ - -# Changement de la configuration yunohost.org avec votre domaine -# NE PAS OUBLIER DE REMPLACER example.org ! -sed -i "s/yunohost.org/example.org/g" $finalpath/openssl.cnf - -# Generation du certificat et de la clé -openssl req -new -config $finalpath/openssl.cnf -days 3650 -out $ssldir/certs/yunohost_csr.pem -keyout $ssldir/certs/yunohost_key.pem -nodes -batch - -# Signature du certificat avec le CA du serveur -openssl ca -config $finalpath/openssl.cnf -days 3650 -in $ssldir/certs/yunohost_csr.pem -out $ssldir/certs/yunohost_crt.pem -batch - -# Copie du certificat et de la clé au bon endroit -cp $ssldir/newcerts/$serial.pem $finalpath/crt.pem -cp $ssldir/certs/yunohost_key.pem $finalpath/key.pem - -# Réparation des permissions -chmod 755 $finalpath -chmod 640 $finalpath/key.pem $finalpath/crt.pem -chmod 600 $finalpath/openssl.cnf - -# Autoriser metronome à accéder aux certificats -chown root:metronome $finalpath/key.pem $finalpath/crt.pem -``` \ No newline at end of file diff --git a/roadmap.md b/roadmap.md deleted file mode 100644 index ec5f92df..00000000 --- a/roadmap.md +++ /dev/null @@ -1,26 +0,0 @@ -# Roadmap - -2.0 2.2 Roadmap - -## v2.4 -Core: -* ✔ Helpers for app maintainer *(ju, opi, jerome)* -* ✔ Install script refactored *(ju)* -* ✔ Use templates to (re)generate configurations instead of packages *(kload, beudbeud, jerome)* -* ✔ Complete and improve backup and restore system *(jerome, ljf)* -* Logging bug on SSOwat when no HTTP referer is sent -* Add tools in moulinette to manage certificate (add, remove, update), Let’s Encrypt *(ljf, Moul)* -* Run automatic tests on moulinette *(kload)* -* Add proper upgrade/remove scripts and comment Debian scripts in packages *(beudbeud)* -* Replace amavis by rspamd *(jerome)* - -Web interface: -* ✔ Use Gulp for administration and user web interfaces *(opi)* -* User avatar *(opi)* -* Plugin system for the admin panel *(ljf)* - -Applications: -* ✔ New way to [manage apps list](http://github.com/YunoHost/apps) - -Other: -* ✔ Add licenses on YunoHost repositories *(Moul)* \ No newline at end of file diff --git a/security.md b/security.md index f571914f..c11c7857 100644 --- a/security.md +++ b/security.md @@ -8,7 +8,7 @@ Two things remain important to note: * The fact that YunoHost is a well-spread software increase chances to face an attack. If a flaw is discovered, it could potentially affect all the YunoHost instances at once. Keep your system **up-to-date** to remain safe. -*If you need some advises, do not hesitate to [ask us](/support).* +*If you need some advices, do not hesitate to [ask us](/help).* *To talk about security flaws, contact the [YunoHost security team](/security_team).* diff --git a/security_fr.md b/security_fr.md index bc0d00da..91d0c980 100644 --- a/security_fr.md +++ b/security_fr.md @@ -5,13 +5,13 @@ YunoHost a été développé dans l’optique de fournir une sécurité maximale Tous les protocoles que YunoHost utilise sont **chiffrés**, les mots de passe ne sont pas stockés en clair, et par défaut chaque utilisateur n’accède qu’à son répertoire personnel. -Deux points sont néanmoins importants à noter : +Deux points sont néanmoins importants à noter : * L’installation d’applications supplémentaires **augmente le nombre de failles** potentielles. Il est donc conseillé de se renseigner sur chacune d’elle **avant l’installation**, d’en comprendre le fonctionnement et juger ainsi l’impact que provoquerait une potentielle attaque. N’installez **que** les applications qui semblent importantes pour votre usage. * Le fait que YunoHost soit un logiciel répandu augmente les chances de subir une attaque. Si une faille est découverte, elle peut potentiellement **toucher toutes les instances YunoHost** à un temps donné. Nous nous efforçons de corriger ces failles le plus rapidement possible, pensez donc à **mettre à jour régulièrement** votre système. -*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](/help_fr).* *Pour discuter d'une faille de securité, contactez l'[équipe securité de YunoHost](/security_team_fr).* @@ -21,7 +21,7 @@ Deux points sont néanmoins importants à noter : Si votre serveur YunoHost est dans un environnement de production critique ou que vous souhaitez améliorer sa sécurité, il est bon de suivre quelques bonnes pratiques. -**Attention :** *l’application des conseils suivants nécessite une connaissance avancée du fonctionnement et de l’administration d’un serveur. Pensez à vous renseigner avant de procéder à cette mise en place.* +**Attention :** *l’application des conseils suivants nécessite une connaissance avancée du fonctionnement et de l’administration d’un serveur. Pensez à vous renseigner avant de procéder à cette mise en place.* ### Authentification SSH par clé @@ -29,17 +29,19 @@ Voici un [tutoriel plus détaillé](http://doc.ubuntu-fr.org/ssh#authentificatio Par défaut, l’authentification SSH se fait avec le mot de passe d’administration. Il est conseillé de désactiver ce type d’authentification et de le remplacer par un mécanisme de clé de chiffrement. -**Sur votre ordinateur de bureau :** +**Sur votre ordinateur de bureau :** ```bash ssh-keygen ssh-copy-id -i ~/.ssh/id_rsa.pub ``` +
+Si vous êtes sur Ubuntu 16.04 vous devez faire `ssh-add` pour initialiser l'agent ssh +
Entrez le mot de passe d’administration et votre clé publique devrait être copiée sur votre serveur. **Sur votre serveur**, éditez le fichier de configuration SSH, pour désactiver l’authentification par mot de passe. - ```bash nano /etc/ssh/sshd_config @@ -60,7 +62,7 @@ Pour éviter des tentatives de connexion SSH par des robots qui scannent tout In ```bash nano /etc/ssh/sshd_config -# Recherchez la ligne « Port » et remplacez le numéro du port (par défaut 22) par un autre numéro non utilisé +# Recherchez la ligne « Port » et remplacez le numéro du port (par défaut 22) par un autre numéro non utilisé Port 22 # à remplacer par exemple par 9777 ``` @@ -70,13 +72,13 @@ Ensuite redémarrez le firewall iptables et fermez l’ancien port dans iptables ```bash yunohost firewall reload -yunohost firewall disallow # port par défaut 22 +yunohost firewall disallow TCP # port par défaut 22 yunohost firewall disallow --ipv6 TCP # pour ipv6 ``` **Pour les prochaines connexions SSH** il faudra ajouter l’option -p suivie du numéro de port SSH. -**Exemple** : +**Exemple** : ```bash ssh -p admin@ @@ -107,7 +109,7 @@ sudo adduser nom_utilisateur sudo ```bash sudo nano /etc/ssh/sshd_config -# Recherchez le paragraphe « Authentication » et ajoutez à la fin de celui-ci : +# Recherchez le paragraphe « Authentication » et ajoutez à la fin de celui-ci : AllowUsers nom_utilisateur ``` Seuls les utilisateurs mentionnés dans la directive AllowUsers seront alors autorisés à se connecter via SSH, ce qui exclut donc l’utilisateur admin. @@ -126,7 +128,7 @@ sudo service yunohost-api stop ### Tests d’intrusion de YunoHost -Des [pentests](https://fr.wikipedia.org/wiki/pentest) ont été effectués sur une instance de YunoHost 2.4 : +Des [pentests](https://fr.wikipedia.org/wiki/pentest) ont été effectués sur une instance de YunoHost 2.4 : - [1) Préparation](https://exadot.fr/2016/07/03/pentest-dune-instance-yunohost-1-preparation) - [2) Le fonctionnement](https://exadot.fr/2016/07/12/pentest-dune-instance-yunohost-2-le-fonctionnement) diff --git a/sitemap.md b/sitemap.md index 385788d4..8bedd325 100644 --- a/sitemap.md +++ b/sitemap.md @@ -42,8 +42,7 @@ * [Internet service provider](/isp) * [Generic configuration of the ISP router](/isp_box_config) * Applications - * [Official applications](/apps_en) - * [Non-official applications](/apps_in_progress_en) + * [Applications](/apps_en) * [Update applications](app_update_en) * Administration * Command-line @@ -70,17 +69,7 @@ * [User interface](user_interface) * [Configure email client](email_configure_client_en) * [Instant messaging usage](/XMPP) - * [Official applications](/apps) - * [Baikal](/app_baikal_en) - * [Firefox Sync](/app_ffsync_en) - * [Tiny Tiny RSS](/app_ttrss_en) - * [Transmission](/app_transmission_en) - * [Radicale](/app_radicale) - * [RoundCube](/app_roundcube_en) - * [Minidlna](app_minidlna_en) - * [Wallabag v2](/app_wallabag2) - * [Community applications](/apps_in_progress_en) - * [LimeSurvey](/app_limesurvey_en) + * [Applications](/apps) * [Contributor guide](/contribute) * Developement @@ -96,7 +85,6 @@ * [Trap usage](packaging_apps_trap_fr) * [Applications levels](packaging_apps_levels_fr) * [YEP - YunoHost Enhancement Proposals](packaging_apps_guidelines_fr) - * [Applications in progress](/apps_in_progress_en) * [Wishlist of applications](/apps_wishlist_en) * [Contributing to the YunoHost core](/dev) * [Creation of system packages](/build_system_en) @@ -114,10 +102,9 @@ * [Frequently asked questions](/faq_en) * [Contributors](contribs) - [Project organization](project_organization) - * [Support](/support_en) * [Art Works](artworks_en) * [Blog](https://forum.yunohost.org/c/announcement) - [Forum](https://forum.yunohost.org) - [Chat rooms](chat_rooms_en) * [Communication](communication_en) - * [Help](/help) + * [Support / Help](/help) diff --git a/sitemap_fr.md b/sitemap_fr.md index 165ca0c1..bc2f6b43 100644 --- a/sitemap_fr.md +++ b/sitemap_fr.md @@ -49,7 +49,6 @@ * [Orange](/isp_orange_fr) * Applications * [Applications officielles](/apps_fr) - * [Applications non officielles](/apps_in_progress_en) * [Mise à jour des applications](app_update_fr) * Administration * En ligne de commande @@ -78,19 +77,7 @@ * [Interface utilisateur](user_interface) * [Configurer un client email](email_configure_client_fr) * [Utiliser la messagerie instantanée XMPP](/XMPP_fr) - * [Applications officielles](/apps_fr) - * [Baïkal](/app_baikal_fr) - * [Firefox Sync](/app_ffsync_fr) - * [Jappix](/app_jappix_fr) - * [Nextcloud](app_nextcloud_fr) - * [Tiny Tiny RSS](/app_ttrss_fr) - * [Transmission](/app_transmission_fr) - * [Radicale](/app_radicale_fr) - * [RoundCube](/app_roundcube_fr) - * [Minidlna](app_minidlna_fr) - * [Wallabag v2](/app_wallabag2_fr) - * [Applications communautaires](/apps_in_progress_fr) - * [LimeSurvey](/app_limesurvey_fr) + * [Applications](/apps_fr) * [Guide du contributeur](/contribute_fr) * Développement @@ -110,7 +97,6 @@ * [Usage de trap](packaging_apps_trap_fr) * [Niveaux des applications](packaging_apps_levels_fr) * [YEP - YunoHost Enhancement Proposals](packaging_apps_guidelines_fr) - * [Packages d’applications en cours de développement](/apps_in_progress_fr) * [Liste de proposition d’applications](/apps_wishlist_fr) * [Contribuer au cœur de YunoHost](/dev_fr) * [Création de paquets système](/build_system_fr) @@ -128,11 +114,10 @@ * [Foire aux questions](/faq_fr) - [Organisation du projet](project_organization_fr) * [Contributeurs](contribs_fr) - * [Entraide - support](/support_fr) * [Blog](https://forum.yunohost.org/c/announcement) - [Forum](https://forum.yunohost.org) - [Salons de discussions](chat_rooms_fr) * [Conférences](/conf_fr) * [Communication extérieure](communication_fr) * [Travail artistique](artworks_fr) - * [Aide](/help_fr) + * [Support / Aide](/help_fr) diff --git a/ssh_fr.md b/ssh_fr.md index 122ec553..17e9d9b2 100644 --- a/ssh_fr.md +++ b/ssh_fr.md @@ -2,7 +2,7 @@ ## Qu’est-ce que SSH ? -**SSH** est un accronyme pour Secure Shell, et désigne un protocole qui permet de contrôler à distance une machine via la ligne de commande (CLI). C'est aussi une commande disponible de base sur Linux et Mac OS / OSX. Sous Windows, maleureusement il vous faudra utiliser le logiciel [PuTTy](http://www.fastcomet.com/tutorials/getting-started/putty). +**SSH** est un accronyme pour Secure Shell, et désigne un protocole qui permet de contrôler à distance une machine via la ligne de commande (CLI). C'est aussi une commande disponible de base sur Linux et Mac OS / OSX. Sous Windows, malheureusement il vous faudra utiliser le logiciel [PuTTy](http://www.fastcomet.com/tutorials/getting-started/putty). ## Pendant l’installation de YunoHost diff --git a/support.md b/support.md deleted file mode 100644 index 57a7003d..00000000 --- a/support.md +++ /dev/null @@ -1,19 +0,0 @@ -# Support - -The YunoHost support is provided by the community members. - -* The **best and fastest** way to get answers remains the community chatroom, accessible on the bottom-right corner of this page, or via an XMPP compatible instant messaging client (like [Pidgin](https://pidgin.im)), at the following address: - - **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)** - ---- - -* You may also want to visit the **discussion forum**: - - **[forum.yunohost.org](https://forum.yunohost.org/)** - ---- - -* However, if you want to write specificaly to the YunoHost team, do not hesitate to send us an email. Please note that **we do not provide any support by email**. - - **[yunohost@yunohost.org](mailto:yunohost@yunohost.org)** diff --git a/support_fr.md b/support_fr.md deleted file mode 100644 index ea1b6003..00000000 --- a/support_fr.md +++ /dev/null @@ -1,19 +0,0 @@ -# Support - Entraide - -L’entraide autour de YunoHost est assurée par la communauté. - -* Le moyen le plus **efficace et rapide** d’obtenir des réponses reste le salon de discussion instantané, accessible en bas à droite de cette page, ou via n’importe quel client de messagerie **compatible XMPP** (tel que [Pidgin](https://pidgin.im)) à l’adresse suivante : - - **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)** - ---- - -* Vous pouvez également vous renseigner et poser vos questions sur **le forum** (en anglais de préférence) : - - **[forum.yunohost.org](https://forum.yunohost.org/)** - ---- - -* Enfin, si vous souhaitez vous adresser spécifiquement à l’équipe YunoHost, n’hésitez pas à nous envoyer un mail. **Attention, nous n’assurons aucun support par email**. - - **[yunohost@yunohost.org](mailto:yunohost@yunohost.org)** diff --git a/troubleshooting_guide.md b/troubleshooting_guide.md index c6ada8fc..f3179ba4 100644 --- a/troubleshooting_guide.md +++ b/troubleshooting_guide.md @@ -15,15 +15,15 @@ Keep in mind that when you install an app, you execute code on your server with From my experience, some packaging are excellent and others can break some part of your YunoHost instance. Some packages are unmaintained. So before install check package issues, the [Forum](http://forum.yunohost.org/) and the [YunoHost support room](support_en) to see if other have problem with the app. ### Check the official documentation -Answer to your question may be already in [the documentatioon](https://yunohost.org/#/sitemap_en). +Answer to your question may be already in [the documentation](https://yunohost.org/#/sitemap_en). ### Check the command line help Learn how to use the [YunoHost commands](https://yunohost.org/#/moulinette_en) like a pro. ## Upgrade -Problems oftenly occurs after an upgrade. After a YunoHost upgrade you may want to [update your apps](https://yunohost.org/#/app_update_en). +Problems often occur after an upgrade. After a YunoHost upgrade you may want to [update your apps](https://yunohost.org/#/app_update_en). -**Check if some processes are using old librairies** +**Check if some processes are using old libraries** You are probably familiar with: ```bash diff --git a/troubleshooting_guide_fr.md b/troubleshooting_guide_fr.md index def18ea2..fcd7456d 100644 --- a/troubleshooting_guide_fr.md +++ b/troubleshooting_guide_fr.md @@ -232,7 +232,7 @@ Toutes les erreurs liées aux applications installées sur ce domaine, il se peu ## SSOwat [SSowat](https://github.com/Kloadut/SSOwat) -est le logiciel qui connecte le serveur web nginx au serveur LDAP. Son but est d’authentifier les utilisateurs au portail YunHost pour pouvoir simplement changer entre les applications. +est le logiciel qui connecte le serveur web nginx au serveur LDAP. Son but est d’authentifier les utilisateurs au portail YunoHost pour pouvoir simplement changer entre les applications. ### Configuration Vous pouvez regarder le fichier de configuration SSOwat dans le fichier : diff --git a/userdoc.md b/userdoc.md index a69a2602..06e3826b 100644 --- a/userdoc.md +++ b/userdoc.md @@ -4,13 +4,4 @@ * [User interface](user_interface) * [Configure an email client](/email) * [Instant messaging usage](/XMPP) -* [Official applications](/apps) - * [Baikal](/app_baikal_en) - * [Firefox Sync](/app_ffsync_en) - * [Tiny Tiny RSS](/app_ttrss_en) - * [Transmission](/app_transmission_en) - * [Radicale](/app_radicale) - * [RoundCube](/app_roundcube_en) - * [Wallabag v2](/app_wallabag2) -* [Community applications](/apps_in_progress_en) - * [LimeSurvey](/app_limesurvey_en) +* [Applications](/apps) diff --git a/userdoc_fr.md b/userdoc_fr.md index ab9546f9..469504c9 100644 --- a/userdoc_fr.md +++ b/userdoc_fr.md @@ -3,13 +3,4 @@ * [L’interface utilisateur](user_interface) * [La messagerie électronique (email)](/email_fr) * [La messagerie instantanée et les réseaux sociaux XMPP](/XMPP_fr) -* [Les applications officielles](/apps_fr) - * [Firefox Sync](/app_ffsync_fr) - * [Jappix](/app_jappix_fr) - * [Tiny Tiny RSS](/app_ttrss_fr) - * [Transmission](/app_transmission_fr) - * [Radicale](/app_radicale_fr) - * [RoundCube](/app_roundcube_fr) - * [Wallabag v2](/app_wallabag2_fr) -* [Applications communautaires](/apps_in_progress_fr) - * [LimeSurvey](/app_limesurvey_fr) +* [Les applications](/apps_fr) diff --git a/vagrant.md b/vagrant.md index 4d85d128..8e983cd1 100644 --- a/vagrant.md +++ b/vagrant.md @@ -47,7 +47,7 @@ vagrant ssh Upgrade the system ```bash -sudo apt-get update && sudo apt-get upgrade +sudo apt-get update && sudo apt-get dist-upgrade ``` You can access to your vm with the ip 192.168.33.10 diff --git a/vagrant_fr.md b/vagrant_fr.md index 2878e347..f93ac3b4 100644 --- a/vagrant_fr.md +++ b/vagrant_fr.md @@ -48,7 +48,7 @@ vagrant ssh Mettre à jour le système. ```bash -sudo apt-get update && sudo apt-get upgrade +sudo apt-get update && sudo apt-get dist-upgrade ``` Vous pouvez accéder à votre vm via l’ip 192.168.33.10. diff --git a/whatsyunohost_fr.md b/whatsyunohost_fr.md index 89dee539..e15d2430 100644 --- a/whatsyunohost_fr.md +++ b/whatsyunohost_fr.md @@ -13,7 +13,7 @@ Il est basé et reste totalement compatible avec [Debian GNU/Linux](https://debi - multi-domaines - un système d’emails - un serveur de messagerie instantanée -- un système d’authentifaction unique (SSO) +- un système d’authentification unique (SSO) - un système d’applications - un système de backup - un système de régénération de configuration des services