Initial commit

This commit is contained in:
tituspijean 2022-04-04 08:21:14 +02:00
commit 28e8ba742b
No known key found for this signature in database
GPG key ID: EF3B0D7CC0A94720
23 changed files with 418 additions and 0 deletions

13
LICENCE Normal file
View file

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

40
README.md Normal file
View file

@ -0,0 +1,40 @@
# JDLL 2022
Le projet YunoHost était présent aux JDLL 2022, représenté par tituspijean et ljf, avec
* un stand tenu sur les deux jours ;
* une conférence pour présenter le projet ;
* un atelier pour découvrir la simplicité de son installation et utilisation (avec lapineige en support).
## Conférence
La présentation est stockée dans le dossier `conference`
et utilise RevealJS pour convertir le fichier Markdown en diapositives.
Une app [Hedgedoc](https://github.com/YunoHost-Apps/hedgedoc_ynh) a été utilisée pour cela.
## Atelier
L'atelier est basé sur des serveurs VPS loués pour l'occasion,
et une petite [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh) contenant le fichier `index.html` décrivant les
étapes d'installation, stockée ici dans le dossier `atelier`.
Les serveurs VPS ont été pris chez Scaleway.
Au préalable un projet dédié a été créé, juste pour lister les serveurs facilement,
son identifiant est indiqué dans la commande de création.
Une clé SSH est générée avec la commande suivante, la clé publique ajoutée à Scaleway et la clé privée téléversée dans le dossier de la Custom Webapp.
```
ssh-keygen -b 4096 -C "JDLL" -f id_rsa_jdll
```
Les serveurs sont lancés avec la ligne de commande suivante, répétée autant de fois que nécessaire.
Ils peuvent aussi être créés à la main directement dans l'interface web.
```
scw instance server create type=DEV1-S zone=fr-par-1 image=debian_buster root-volume=l:20G ip=new [project-id=...]
```
La commande retourne un descriptif du serveur ainsi créé : relever l'adresse IP publique
et la partager à l'apprenti auto-hébergeur, ainsi que l'adresse de la webapp.

3
atelier/id_rsa_jdll Normal file
View file

@ -0,0 +1,3 @@
# Clé à générer avec la commande suivante
ssh-keygen -b 4096 -C "JDLL" -f id_rsa_jdll

88
atelier/index.html Normal file
View file

@ -0,0 +1,88 @@
<!DOCTYPE html>
<html>
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>
<head>
<title>Atelier YunoHost ~ JDLL 2022</title>
</head>
<body>
<h1>Bienvenue !</h1>
<p>Lors de cet atelier, vous allez découvrir comment vous connecter à un serveur privé virtuel neuf et comment installer et utiliser YunoHost.</p>
<h2>Se connecter au serveur</h2>
<p>
Ouvrez le Terminal. (oui, c'est la ligne de commande, n'ayez pas peur !)
Gardez à la fois le navigateur et le terminal à l'écran. Lancez les commandes une fois tapées dans le terminal avec la touche Entrée.
</p>
<p>
Vous allez télécharger une clé dite SSH, qui est une méthode d'authentification plus sécurisée qu'un simple mot de passe.
Copiez-collez le code ci-dessous dans le terminal.
</p>
<code>
mkdir -p ~/.ssh
<br />
curl https://&lt;LIEN VERS LA CLE PRIVEE&gt; -o ~/.ssh/jdll
</code>
<p>
Protégez votre clé :
</p>
<code>
chmod 600 ~/.ssh/jdll
</code>
<p>
Votre hôte vous a normalement donné l'adresse IP du serveur qui vous est alloué pour cet atelier.
Remplacez-la dans la commande ci-dessous, à la place de <code>ADR.ESS.EIP.DU.SRV</code>.
</p>
<code>
ssh root@ADR.ESS.EIP.DU.SRV -i ~/.ssh/jdll
</code>
<p>
&Agrave; la question <code>Are you sure you want to continue connecting (yes/no/[fingerprint])?"</code>, répondez <code>yes</code>.
</p>
<p>
Le terminal devrait se vider et vous montrer une nouvelle invite de commande.
</p>
<h2>Installer YunoHost sur une Linux Debian</h2>
<p>
Ouf ! Nous avons enfin rattaché nos wagons à ceux d'une installation classique de YunoHost.
</p>
<p>
Vous pouvez suivre <a target="_blank" href="https://yunohost.org/en/install/hardware:vps_debian">notre documentation</a> pour les serveurs distants jusqu'à l'étape de post-installation.
</p>
<p>
Sinon, pour faire simple, téléchargez et exécutez le script d'installation avec la commande ci-dessous.
</p>
<code>
curl https://install.yunohost.org | bash
</code>
<p>
Si le script d'installation vous pose des questions, répondez Oui.
</p>
<h2>Procéder à la post-installation</h2>
<p>
Une fois que vous récupérez l'accès au terminal, vous pouvez finaliser votre installation.
Au choix:
</p>
<ul>
<li>Restez dans le terminal et laissez-vous guider après avoir lancé la commande <code>yunohost tools postinstall</code></li>
<li>Entrez l'adresse IP du serveur dans la barre d'adresse du navigateur, ignorez l'avertissement de sécurité, et laissez-vous guider.</li>
</ul>
<p>
Lors du choix du nom de domaine, que vous n'avez pas, choisissez-en tel que <code>jdll2022a.ynh.fr</code>
</p>
<h2>Utilisez YunoHost!</h2>
<ol>
<li>Créez votre premier utilisateur</li>
<li>Installez votre première app (Nextcloud, Wordpress...)</li>
<li>Explorez l'interface d'administration et celle de vos comptes</li>
<li>...</li>
</ol>
<hr/>
<p>Bravo ! En récompense, voici une photo aléatoire de CHATONS:</p>
<img src="https://thecatapi.com/api/images/get?format=src&type=gif">
</body>
</html>

274
conference/diapositives.md Normal file
View file

@ -0,0 +1,274 @@
---
type: slide
title: YunoHost JDLL 2022
slideOptions:
theme: white
transition: slide
width: 1280
height: 1080
margin: 0.01
---
<img src="https://yunohost.org/_images/ynh_logo_black_300dpi.png" class="plain">
## De l'auto-hébergement<br />à l'élevage de CHATONS
### Journées du Logiciel Libre
### 2022-04-03
----
<img src="./uploads/772bfb484e4a105c48ba0f707.jpg" width="100px" class="plain">
`tituspijean`
---
## Sommaire
1. Introduction : reprenez le contrôle
2. YunoHost : une solution simple pour l'auto-hébergement
3. Côté administrateur <span class="fragment">($\hookleftarrow$ c'est vous !)</span>
4. Côté technique <span class="fragment">($\hookleftarrow$ promis, c'est accessible)</span>
5. Côté communauté
---
## Introduction
----
<img src="./uploads/772bfb484e4a105c48ba0f703.png" height="80%" class="plain" />
<small>Illustration par JimboJoe</small>
----
### Où stockez-vous vos données ?
* Sur papier ?
* Votre disque dur, clé USB, ...
* Fournisseurs de services (*drive, *box, *cloud)
----
<!-- .slide: data-background-image="./uploads/772bfb484e4a105c48ba0f702.jpg" data-background-size="contain" data-background-color="black" -->
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
### Envoi de données vers le nuage
<!-- .element style="color: white;" -->
*Incendie d'un centre de données d'OVH,
à Strasbourg, mars 2021*
<!-- .element style="color: white;" -->
----
![](https://doc.pijean.ovh/uploads/772bfb484e4a105c48ba0f714.jpg)
----
* (Re)possession des données
* Décentralisation
* Vie privée
* Liberté d'expression
* Auto-didactisme <!-- .element class="fragment" style="width: 100%" -->
## $\implies$ Motivations à l'auto-hébergement
<!-- .element class="fragment" style="width: 100%" -->
----
## Le matériel pour s'auto-héberger
<img src="https://yunohost.org/user/images/virtualbox.png
" height="200px" class="plain fragment" /> <img src="https://yunohost.org/user/images/raspberrypi.jpg
" height="200px" class="plain fragment" /> <img src="https://yunohost.org/user/images/computer.png
" height="200px" class="plain fragment" /> <img src="https://yunohost.org/user/images/vps.png
" height="200px" class="plain fragment" />
----
## Les logiciels à auto-héberger
| | Alternatives libres |
| ----------- | -------- |
| Twitter | <img src="./uploads/772bfb484e4a105c48ba0f70a.png" height="50px" class="plain" /> Mastodon |
| Dropbox, GDrive, iCloud... | <img src="./uploads/772bfb484e4a105c48ba0f70e.png" height="50px" class="plain" /> Nextcloud |
| Office 365 | <img src="./uploads/772bfb484e4a105c48ba0f70c.png" height="50px" class="plain" /> Cryptpad |
| Tout système de domotique | <img src="./uploads/772bfb484e4a105c48ba0f70b.png" height="50px" class="plain" /> Home Assistant |
| Messenger, Whatsapp, Wechat... | <img src="./uploads/772bfb484e4a105c48ba0f70f.png" height="50px" class="plain" /> |
<!-- .element style="width: 90%" -->
**... chacun avec ses propres prérequis
et instructions d'installation**
---
<!-- .slide: data-background-image="https://64.media.tumblr.com/4b3b0287ca43ce1021340cd692f65f9f/tumblr_mj7iufgKNi1qghl49o1_500.gifv" -->
<img src="./uploads/772bfb484e4a105c48ba0f710.png" class="fragment plain" />
----
## Il est *nécessaire* de rendre l'administration de serveurs __simple__
----
# <img src="./uploads/772bfb484e4a105c48ba0f701.png" alt="YunoHost" style="height:1.5em;" class="plain" />, c'est quoi ?
- <img src="https://www.debian.org/logos/openlogo-nd-100.png" alt="Debian" height="50px" class="plain" /> une distribution Debian
<!-- .element class="fragment" style="width: 100%" -->
- <span class="fa fa-wrench"></span> une interface d'administration simple
<!-- .element class="fragment" style="width: 100%" -->
- <span class="fa fa-envelope"></span><span class="fa fa-comments"></span> des services fonctionnels dès l'installation
<!-- .element class="fragment" style="width: 100%" -->
- <span class="fa fa-globe"></span> des noms de domaines gratuits et automatiquement configurés (`.ynh.fr`, `.nohost.me`, `.noho.st`)
- <span class="fa fa-globe"></span> vos propres noms de automatiquement configurés chez vos *registrars*.
<!-- .element class="fragment" style="width: 100%" -->
- <span class="fa fa-cubes"></span> un grand catalogue d'applications installables en quelques clics
<!-- .element class="fragment" style="width: 120%" -->
- <span class="fa fa-lock"></span> un portail de connexion pour les personnes inscrites
<!-- .element class="fragment" style="width: 100%" -->
- <span class="fa fa-key"></span> un système de permissions pour contrôler les accès aux apps
<!-- .element class="fragment" style="width: 100%" -->
- <span class="fa fa-stethoscope"></span> un système de diagnostic pour surveiller tout ça
<!-- .element class="fragment" style="width: 100%" -->
----
## YunoHost, côté utilisateur/administrateur
### Une petite démo ?
https://demo.yunohost.org
---
## YunoHost, côté technique
----
### Installable en moins d'une heure
<img src="https://yunohost.org/user/images/virtualbox.png
" height="200px" class="plain" /> <img src="https://yunohost.org/user/images/raspberrypi.jpg
" height="200px" class="plain" /> <img src="https://yunohost.org/user/images/computer.png
" height="20px" class="plain" /> <img src="https://yunohost.org/user/images/vps.png
" height="200px" class="plain" />
----
### Automatisation des tâches de sysadmin
Accessibles via l'interface web ou la ligne de commande
<div style="width: 100%;">
<img src="./uploads/772bfb484e4a105c48ba0f708.png" height="600px" class="" /> <img src="./uploads/772bfb484e4a105c48ba0f709.png" height="600px" class="plain" />
</div>
----
### Les applications
Des fichiers de description, de configuration,
et des scripts Bash pour laisser la magie opérer.
<img src="./uploads/772bfb484e4a105c48ba0f711.png" height="600px" class="" />
<img src="./uploads/772bfb484e4a105c48ba0f713.png" height="600px" class="" />
\+ un système de tests automatisés pour aider les *packagers*
----
### Feuille de route
- YunoHost version 11 (Debian Bullseye) : en version bêta :rocket:
- L'intégration de nom de domaines *wildcard*
- Des formulaires d'inscription et des liens d'inscription de comptes utilisateurs
- Une évolution du système de *packaging* pour encore plus facilement intégrer des applications au catalogue
- ...
---
## YunoHost, côté communauté
----
### Plus de 8000 instances YunoHost
*Source: Shodan*
----
# <img src="https://yunohost.org/_images/ynh_logo_black_300dpi.png" alt="YunoHost" class="plain" style="height:2em; width=auto;" /> $\times$ <!--<span class="fragment fade-out" >vs.?</span> <span class="fa fa-heart fragment" style="color: red;"></span>--> <img src="./uploads/772bfb484e4a105c48ba0f705.png" alt="CHATONS" class="plain" style="height:2.5em; width=auto;" />
> CHATONS est le **Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires**. Ce collectif vise à rassembler des structures proposant des services en ligne libres, éthiques et décentralisés.
`https://chatons.org/`
Une quinzaine de CHATONS tourne avec YunoHost. :rocket:
<!-- .element style="width: 90%" -->
----
### Un catalogue d'applications fourni
208 pleinement fonctionnelles sur 236 testées
<div class="fragment"> ... il y a un an ! Actuellement :
325 pleinement fonctionnelles sur 344 testées
512 dépôts de code dans notre organisation `YunoHost-Apps`
</div>
----
### Nous trouver
* Le site web de YunoHost : [yunohost.org](https://yunohost.org)
* Le forum pour les annonces et l'entraide : [forum.yunohost.org](https://forum.yunohost.org)
* Des salons sur Matrix/IRC de discussion et d'entraide pour le support, le *packaging* d'apps, le développement : [yunohost.org/chat_rooms](https://yunohost.org/fr/chat_rooms)
* La documentation : [yunohost.org/doc](https://yunohost.org/docs)
<span class="fa fa-heart" style="color: red; height=30px;"></span> contributeurs <br />(Python, UX, HTML, CSS, JS, Bash, doc ...)
----
# <span class="fa fa-heart" style="color: red; height=30px;"></span> Nos soutiens
![](https://doc.pijean.ovh/uploads/772bfb484e4a105c48ba0f700.png)
et donateurs !
----
## Dans les coulisses...
* Présentation faite avec [Reveal.js](https://revealjs.com/) sur [HedgeDoc](https://hedgedoc.org/)...
* ... que j'accède avec mon VPN avec [WireGuard](https://wireguard.com)...
* ... le tout auto-hébergé sur mon serveur [<img src="./uploads/772bfb484e4a105c48ba0f701.png" alt="YunoHost" style="height:3ex;" class="plain" />](https://yunohost.org)
---
# Avez-vous des questions ?
---
# Atelier
## Installation et découverte de <img src="./uploads/772bfb484e4a105c48ba0f701.png" alt="YunoHost" style="height:3ex;" class="plain" />
### Espace Public Numérique
*Dans un instant*

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View file