Merge branch 'master' into YEP_3.4

This commit is contained in:
Maniack Crudelis 2017-01-22 14:50:17 +01:00 committed by GitHub
commit 482b388aae
10 changed files with 337 additions and 59 deletions

View file

@ -71,6 +71,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
- [Koel](http://koel.phanan.net)
- [Kontalk](http://kontalk.org)
- [Koozip](http://koozic.net)
- [Kresus](https://framagit.org/bnjbvr/kresus)
- [KrISS feed](https://github.com/tontof/kriss_feed)
- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
- [LiquidSoap](http://savonet.sourceforge.net/)
@ -126,6 +127,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
- [SIP](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license)
- [Sonarr](https://sonarr.tv)
- [Stackedit](https://stackedit.io)
- [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)

View file

@ -8,6 +8,8 @@ This tutorial is based on [Yunocubian](https://github.com/M5oul/Yunocubian).
You could find [ARM image builder from Debian Jessie](https://github.com/YunoHost/install_script/pull/36).
**All these steps can be executed with variations of [this script](https://github.com/likeitneverwentaway/rpi_buildbot/blob/master/build_image.sh).**
### Download minimal Debian Jessie
Download a Debian Jessie image compatible with the hardware **without desktop environnement** installed:
@ -19,10 +21,24 @@ Download a Debian Jessie image compatible with the hardware **without desktop en
<a class="btn btn-lg btn-default" href="/plug_and_boot">Plug & boot</a>
* Connect via [SSH](ssh): **root@exemple.tld/ip_address** with the password which you could find on respectives documentations.
* Connect via [SSH](ssh): **pi@exemple.tld/ip_address** with the password **raspberry** (or any variations for other distros than Raspbian).
* Set a root password :
```bash
sudo passwd
```
and login as root:
```bash
su
```
* You should be **root** for next operations.
<a class="btn btn-lg btn-default" href="/install_manually">Install YunoHost</a>
<a class="btn btn-lg btn-default" href="/install_on_raspberry">Manually install YunoHost on a Raspberry Pi</a>
If you encounter problems during installation check out [this installation guide](http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie) for the Raspberry Pi, based on suggestion [from this thread](https://forum.yunohost.org/t/installation-de-yunohost-2-4-sur-raspbian-jessie-minimal-sur-un-raspberry-pi-3/1597).
<div class="alert alert-danger">Do not proceed to **post-installation**.</div>
@ -33,50 +49,54 @@ apt-get update && apt-get dist-upgrade && apt-get autoremove
```
* Change hostname:
```bash
hostname -v YunoHost
sed -i "s/$(hostname)/YunoHost/g" /etc/hosts
sed -i "s/$(hostname)/YunoHost/g" /etc/hostname
```
* Set new SSH key generation at first lauching:
* Allow SSH connection as root:
```bash
sed -i '0,/without-password/s/without-password/yes/g' /etc/ssh/sshd_config
```
* Delete the **pi** user (this step must be perform directly as root, not logged in as pi and then login as root):
```bash
deluser remove-all-files pi
```
* Set the first boot script:
```bash
# Delete SSH keys
rm -f /etc/ssh/ssh_host_*
# Add script to regenerate SSH keys at first boot
nano /etc/init.d/ssh_gen_host_keys
---
#!/bin/sh
### BEGIN INIT INFO
# Provides: Generates new ssh host keys on first boot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Generates new ssh host keys on first boot
# Description: Generatesapt-get --purge clean new ssh host keys on $
### END INIT INFO
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N ""
insserv -r /etc/init.d/ssh_gen_host_keys
rm -f \$0
---
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/yunohost-firstboot -P /etc/init.d/
# Give executable right
chmod a+x /etc/init.d/ssh_gen_host_keys
chmod a+x /etc/init.d/yunohost-firstboot
# Make it execute at next boot
insserv /etc/init.d/ssh_gen_host_keys
insserv /etc/init.d/yunohost-firstboot
```
* Set the boot promtp script:
```bash
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.service -P /etc/systemd/system/
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.sh -P /usr/bin/
chmod a+x /usr/bin/boot_prompt.sh
systemctl enable boot_prompt.service
```
* Delete logs:
* Tell the boot_prompt script that the next boot is the first boot:
```bash
find /var/log -type f -exec rm {} \;
```
touch /etc/yunohost/firstboot
```
* Turn off your board:
```bash
shutdown
```
Don't forget to reset **wpa-supplicant.conf** if you changed it. You could also delete the command history with
```bash
history -c
```
or by editing **/root/.bash_history**.
### Copy image
Plug your SD card on your desktop computer and copy it:
<div class="alert alert-danger">Be carefull to not erase your data.</div>
@ -84,6 +104,7 @@ Plug your SD card on your desktop computer and copy it:
```bash
sudo dd bs=1M if=/dev/sdd of=~/yunohost-jessie-board-year-month-day.img
```
You can also use the **Read** function of [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/).
### Verify image
<a class="btn btn-lg btn-default" href="/copy_image">Copy image to the SD card</a>

126
build_arm_image_fr.md Normal file
View file

@ -0,0 +1,126 @@
# Build ARM image
Le but de ce tutoriel est de créer une image YunoHost prête à l'emploi pour les cartes ARM.
Elle pourra être utilisée sur de nombreuses cartes (Rasberry Pi, Olimex, Cubieboard…).
Ce tutoriel est basé sur [Yunocubian](https://github.com/M5oul/Yunocubian).
Vous pouvez trouvez le script [ARM image builder from Debian Jessie](https://github.com/YunoHost/install_script/pull/36).
**Toutes ces étapes peuvent être executées en utilisant des variations de [ce script](https://github.com/likeitneverwentaway/rpi_buildbot/blob/master/build_image.sh).**
### Télechargez une version minimale de Debian Jessie
Télechargez une image Debian Jessie compatible avec la carte **sans environnement graphique** installé:
* [ARMbian](http://www.armbian.com/download/) (Olimex, Cubieboard, Banana Pi…)
* [Raspbian Jessie Lite](https://www.raspberrypi.org/downloads/raspbian/)
### Copiez l'image et installez YunoHost
<a class="btn btn-lg btn-default" href="/copy_image_fr">Copie de l'image sur la carte SD</a>
<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">Plug & boot</a>
* Connewion via [SSH](ssh): **pi@exemple.tld/ip_address** avec le mot de passe **raspberry** (ou toute autre variation pour des distros différentes de Raspbian).
* Mettez un mot de passe root :
```bash
sudo passwd
```
et se connecter en tant que root:
```bash
su
```
* Vous devriez être **root** pour les étapes suivantes.
<a class="btn btn-lg btn-default" href="/install_on_raspberry_fr">Installez manuellement YunoHost sur un Raspberry Pi</a>
Si vous rencontrez des problèmes durant l'installation regardez [ce guide d'installation](http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie) pour le Raspberry Pi, sur les suggestions [de ce thread](https://forum.yunohost.org/t/installation-de-yunohost-2-4-sur-raspbian-jessie-minimal-sur-un-raspberry-pi-3/1597).
<div class="alert alert-danger">Ne pas faire la **post-installation**.</div>
### Nettoyage de l'image
* Mise à jour de l'image:
```bash
apt-get update && apt-get dist-upgrade && apt-get autoremove
```
* Changez l'hostname:
```bash
sed -i "s/$(hostname)/YunoHost/g" /etc/hosts
sed -i "s/$(hostname)/YunoHost/g" /etc/hostname
```
* Permettre les connections SSH en tant que root:
```bash
sed -i '0,/without-password/s/without-password/yes/g' /etc/ssh/sshd_config
```
* Supprimer l'user pi (cette étape doit être effectuer directement en tant que root, pas connecté avec l'user pi puis root):
```bash
deluser remove-all-files pi
```
* Mise en place du script de premier boot:
```bash
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/yunohost-firstboot -P /etc/init.d/
# Droit d'execution au script
chmod a+x /etc/init.d/yunohost-firstboot
# Execute le script au prochain boot
insserv /etc/init.d/yunohost-firstboot
```
* Mise en place du script boot promtp:
```bash
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.service -P /etc/systemd/system/
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.sh -P /usr/bin/
chmod a+x /usr/bin/boot_prompt.sh
systemctl enable boot_prompt.service
```
* Dites au script boot_promt que le prochain boot est le premier boot:
```bash
touch /etc/yunohost/firstboot
```
* Éteindre la carte:
```bash
shutdown
```
Ne pas oublier de reset le fichier **wpa-supplicant.conf** si vous l'avez modifié. Vous pouvez aussi supprimer l'historique des commandes avec
```bash
history -c
```
ou en éditant **/root/.bash_history**.
### Copie de l'image
Branchez la carte SD à votre ordinateur et faites en une copie:
<div class="alert alert-danger">Faites attention de ne pas supprimer vos données.</div>
```bash
sudo dd bs=1M if=/dev/sdd of=~/yunohost-jessie-board-year-month-day.img
```
Vous pouvez aussi utiliser la fonction **Read** de [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/).
### Verifer l' image
<a class="btn btn-lg btn-default" href="/copy_image_fr">Copier l'image sur la carte SD</a>
<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">Plug & boot</a>
<a class="btn btn-lg btn-default" href="/postinstall_fr">Post-install</a>
<div class="alert alert-info">Si tous va bien, vous pouvez publiez votre image.</div>
### Publier l'image
* Reduire la taille en zippant l'image:
```bash
zip yunohost-jessie-board-year-month-day.img.zip yunohost-jessie-board-year-month-day.img
```
* Publication: vous pouvez publier l'image sur le [forum](https://forum.yunohost.org/).

View file

@ -1,7 +1,7 @@
# Conférences
* [PSES 2015 - La Brique Internet](http://www.youtube.com/watch?v=NCRn0yRfkIE)
* [THSF 2015](https://vimeo.com/128055751)
* [RMLL 2014 - Hébergez-vous !]()
* [Capitole du libre 2013 - Lauto-hébergement pour tous avec YunoHost - par Adrien Beudin](http://2013.capitoledulibre.org/conferences/internet-libre/lauto-hebergement-pour-tous-avec-yunohost.html)
* [FOSDEM 2013](https://www.youtube.com/watch?v=siN1OLAgGJk)
* [THSF 2015 beudbeud](https://vimeo.com/128055751)
* [RMLL 2014 - Hébergez-vous ! kload & beudbeud]()
* [Capitole du libre 2013 - Lauto-hébergement pour tous avec YunoHost - beudbeud](http://2013.capitoledulibre.org/conferences/internet-libre/lauto-hebergement-pour-tous-avec-yunohost.html)
* [FOSDEM 2013 — kload](https://www.youtube.com/watch?v=siN1OLAgGJk)

View file

@ -2,26 +2,24 @@
*Find other ways to install YunoHost **[here](/install)**.*
## Requirements
## Pre-requisite
<img src="/images/Raspberry_Pi_2_Model_B_v1.1_front_angle_new.jpg" width=350>
<img src="/images/micro-sd-card.jpg">
- A Raspberry Pi model 1, 2 or 3
- A SD card: **4GB** capacity (or more) and **class10** speed rate is highly recommended
- A different computer to read this guide and access your Raspberry Pi
- A screen and a keyboard, recommended if a problem occurs and you want to control your Raspberry Pi
- A [reasonable ISP](/isp), preferably with a good and unlimited upload bandwidth
- An SD card: **4GB** capacity (or more) and **class10** speed rate is highly recommended
- An other computer to read this guide and access to your Raspberry Pi
- A screen and a keyboard are recommended to control your Raspberry Pi if a problem occurs.
- A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth
- **YunoHost Raspberry Pi images**, available here:
- [Official Wheezy/YunoHost 2.2 created the 4th June 2015](https://build.yunohost.org/yunohost-rpi2_wheezy.7z)
- [Non-official Jessie/YunoHost 2.2 created the 5th December 2015](https://forum.yunohost.org/t/building-a-new-image-for-raspberry-debian-jessie-fr-en/1101/2)
build.yunohost.org
<div class="alert alert-info">**This two images are old**. YunoHost image for Raspberry Pi is not maintained, feel free to contribute and contact us if you would like to [maintain an image](build_arm_image_en) for YunoHost project.</div>
There are two ways of installing, depending on if you can start your server from scratch or not.
---
## Installation steps
## Installation using an image
<a class="btn btn-lg btn-default" href="/copy_image">1. Copy image to the SD card</a>
@ -29,17 +27,66 @@
<a class="btn btn-lg btn-default" href="/postinstall">3. Post-install</a>
## Manual installation
Follow these steps if you can't start from scratch and simply use an image. Note - Yunohost installation is different if you have a Raspberry Pi Zero, be careful!
1. Install git
```bash
sudo apt-get install git
```
2. Clone the Yunohost install script repository
```bash
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):
```bash
sudo passwd root
```
4. Update the Pi:
```bash
apt-get update ; apt-get dist-upgrade -y ; apt-get install rpi-update ; rpi-update ; reboot`
```
This will upgrade the Pi, then reboot.
<div class="alert alert-info">
<b>Raspberry Pi Zero users:</b> follow these specific steps for a successfull installation.
</div>
0.1 Install metronome manually:
```bash
apt-get install -y ssl-cert lua-event lua-expat lua-socket lua-sec lua-filesystem
wget https://github.com/YunoHost/metronome/archive/debian/3.7.9+33b7572-1.zip
unzip 3.7.9+33b7572-1.zip
cd metronome-debian-3.7.9-33b7572-1
dpkg-buildpackage -rfakeroot -uc -b -d
cd ..
dpkg -i metronome_3.7.9+33b7572-1_armhf.deb
apt-mark hold metronome
```
4. Execute the installation script
```bash
cd /tmp/install_script && sudo ./install_yunohost
```
---
### Recommended after running the post-installation
### Recommended after post-installation
* Connect via SSH: **root@IP.OF.RPI** (password: **yunohost**)
* Change root password: `passwd root`
* Upgrade system: `apt-get update && apt-get dist-upgrade && rpi-update`
* Configure the language, keyboard layout and timezone with the **raspi-config** tool
---
#### Build image
* [Create a Raspberry Pi image](/build_arm_image_en)
***Need help during one of these steps? [Get support!](/support)***
***If you need help during one of these steps, do not hesitate to use [our support tools](/support).***

View file

@ -16,11 +16,11 @@
- [Non officielle Jessie/YunoHost 2.2 créée le 5 décembre 2015](https://forum.yunohost.org/t/building-a-new-image-for-raspberry-debian-jessie-fr-en/1101/2)
- Un tutoriel d'installation basée sur YunoHost 2.4 a été écrit par AviGNU : http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie
<div class="alert alert-info">**Ces deux images ne sont plus à jour**. Personne ne maintiens dimage de YunoHost pour Raspberry Pi. Vous pouvez [maintenir une image](build_arm_image_en) pour le projet YunoHost.</div>
Il y a deux façon d'installer Yunohost, soit vous pouvez repartir de zéro avec une nouvelle image ou installer manuellement :
---
## Étapes dinstallation
## Installation avec une image
<a class="btn btn-lg btn-default" href="/copy_image_fr">1. Copier limage sur une carte SD</a>
@ -28,19 +28,68 @@
<a class="btn btn-lg btn-default" href="/postinstall_fr">3. Post-installation</a>
## Installation manuelle
Utilisez cette méthode si vous ne pouvez pas repartir de zéro et utiliser une image. Attention, ces étapes sont différentes si vous installez sur un Raspberry Pi Zero !
1. Installer git
```bash
sudo apt-get install git
```
2. Cloner le repo Yunohost install script
```bash
git clone https://github.com/YunoHost/install_script /tmp/install_script
```
3. L'user root doit avoir un mot de passe. Si ce n'est pas le cas l'installation ne marchera pas:
```bash
sudo passwd root
```
4. Mettre à jour le Pi:
```bash
apt-get update ; apt-get dist-upgrade -y ; apt-get install rpi-update ; rpi-update ; reboot`
```
Cela va mettre à jour le Pi, puis rebooter.
<div class="alert alert-info">
<b>Raspberry Pi Zero :</b> suivez ces étapes pour une installation réussie.
</div>
0.1 Installez metronome manuellement:
```bash
apt-get install -y ssl-cert lua-event lua-expat lua-socket lua-sec lua-filesystem
wget https://github.com/YunoHost/metronome/archive/debian/3.7.9+33b7572-1.zip
unzip 3.7.9+33b7572-1.zip
cd metronome-debian-3.7.9-33b7572-1
dpkg-buildpackage -rfakeroot -uc -b -d
cd ..
dpkg -i metronome_3.7.9+33b7572-1_armhf.deb
apt-mark hold metronome
```
4. Executer le script d' installation
```bash
cd /tmp/install_script && sudo ./install_yunohost
```
---
### Recommandé après la post-installation
* Se connecter en [ssh](ssh_fr) : **root@IP.DU.RPI** (mot de passe : **yunohost**)
* Changer le mot de passe root : ```passwd root```
* Mettre à jour le système dexploitation : ```apt-get update && apt-get dist-upgrade && rpi-update```
* Configurer la langue, le clavier et le fuseau horaire avec l'outil **raspi-config**
---
#### Créer une image
* [Créer une image pour Raspberry](/build_arm_image_en)
* [Créer une image pour Raspberry](/build_arm_image_fr)
---
***Si vous avez besoin daide lors de ces étapes, nhésitez pas à utiliser les différents [moyens de support](/support_fr).***

View file

@ -23,8 +23,8 @@ Chaque YEP est associée à :
| **YEP 1** | **Communiquer avec la communauté** | | | |
| YEP 1.1 | Nommer son app et son dépôt | validé | manuel | NOTWORKING |
| YEP 1.2 | Inscrire l'app sur un "répertoire" connu | validé | manuel | NOTWORKING |
| YEP 1.3 | Indiquer la licence associée au paquet | brouillon | AUTO | WORKING |
| YEP 1.4 | Informer sur l'intention de maintenir un paquet | brouillon | manuel | WORKING |
| YEP 1.3 | Indiquer la licence associée au paquet | validé | AUTO | WORKING |
| YEP 1.4 | Informer sur l'intention de maintenir un paquet | brouillon | 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 |
| YEP 1.7 | Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL |
@ -135,7 +135,10 @@ 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 | WORKING |
#### 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 |
Afin de suivre l'évolution du format de packaging ainsi que des bonnes pratiques, il est recommandé de:
@ -206,6 +209,14 @@ Cependant, il faudra porter une attention particulière à l'affichage correct d
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 |
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.
Au début des scripts, avant toutes modifications, il faut vérifier l'existence des utilisateurs mentionné à l'installation, ainsi que la disponibilité du path demandé, la disponibilité du dossier final de l'application et la taille des mots de passe le cas échéant.
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 |
Chaque script devrait vérifier que les valeurs d'entrées sont correctes.
@ -224,10 +235,16 @@ Certaines instructions nécessitent les droits sudo. Il faut dans ce cas ne pas
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 |
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 |
À lexception de dépendances (pax exemple : paquets Debian) utilisés par dautres services ou applications.
#### 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 |
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.
@ -261,7 +278,7 @@ Bien souvent une web app s'installe à partir de formulaires affichés sur une p
Il convient donc de vérifier si l'application ne propose pas une solution d'installation en ligne de commande.
Si ce n'est pas le cas, il convient d'utiliser l'option -H de curl. En effet, dans certains cas la redirection DNS pourrait ne pas être active au moment de l'installation.
```
```bash
curl -kL -H "Host: $domain" --data "&param1=Text1&param2=text2" https://localhost$path/install.php > /dev/null 2>&1
```
@ -282,7 +299,12 @@ Certains utilisateurs ont remplacé ce carré par un script ajoutant un menu en
### 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 |
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 |
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.
@ -296,6 +318,11 @@ En général, une application propose une documentation afin d'aider les adminis
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 |
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
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.
@ -313,7 +340,11 @@ Au besoin, SSOwat permet de sécuriser l'accès à une ou plusieurs parties de l
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 |
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 |
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 |
YunoHost offre la possibilité de lancer des actions à chaque traitement effectué par la ligne de commande. Ceci peut être pratique dans de nombreux cas.

View file

@ -1,3 +1,5 @@
# Introduction au packaging
Petite introduction au packaging d'application, pour comprendre de quoi nous parlons et comment ça marche.
Cette documentation s'adresse avant tout aux packageurs débutants qui ne sont pas à l'aise avec les concepts de shell, parsing et administration système de manière générale.

View file

@ -1,10 +1,10 @@
# Plug and boot your server up
* Plug your server in wired Ethernet **directly to your router**. Do not use a wireless connection or an intermediate router if you want the network configuration to be automatic.
* Plug your server in wired Ethernet, or configure the wifi connection as explained [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md). You can also mount the second partition of the SD card and edit the wpa-supplicant.conf file prior to boot the card for the first time - on Windows you can use [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), don't forget to unmount everytime for changes to take effect.
* Do not forget to **plug a screen** if you want to see how boot is going, and a keyboard if you want to have a **command-line access** to your server.
* Power up the server and wait until you see a big squared `Y` :
* Power up the server, wait for the first reboot to happen, and then wait until you see a big squared `Y` :
<br>
@ -14,4 +14,4 @@
*Write down the `IP address` field visible on the screen: It is your server's **local IP address**.*
</p>
</div>
</div>

View file

@ -1,10 +1,10 @@
# Brancher et démarrer votre serveur
* Branchez votre serveur avec un câble Ethernet (RJ-45) **directement sur votre routeur principal**. Nutilisez pas de connexion sans-fil ou un routeur intermédiaire si vous voulez que la connexion réseau soit automatique.
* Branchez votre serveur avec un câble Ethernet (RJ-45) **directement sur votre routeur principal**. Vous pouvez aussi configurer la connexion wifi comme expliqué [ici](http://raspbian-france.fr/connecter-wifi-raspberry-pi-3/). La configuration wifi peut aussi se faire sans avoir booté sur la carte, en "montant" la deuxième partition de la carte et enfin éditer le fichier wpa-supplicant.conf. Sur Windows vous pouvez utiliser [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), ne pas oublier de "unmount" pour que les changements soient pris en compte.
* Noubliez pas de **brancher un écran** si vous voulez observer comment se déroule le démarrage, et un clavier si vous souhaitez un accès en **ligne de commande** à votre serveur.
* Démarrez le serveur et attendez jusquà voir un gros `Y` carré :
* Démarrez le serveur, le Raspberry Pi va redémarrer tout seul une première fois, puis attendez jusquà voir un gros `Y` carré :
<br>