main_website/html/apropos.php
2021-11-17 23:36:49 +01:00

458 lines
24 KiB
PHP

<?php
$this_file = basename($_SERVER["SCRIPT_FILENAME"]);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>À propos</title>
<link rel="SHORTCUT ICON" HREF="ressources/logo.svg">
<style type="text/css"></style>
</head>
<body>
<center>
<?php include 'includes/titre.php'; ?>
<i>Cette page présente les principaux aspects de GNOUS.</i><br>
<br>
<?php include 'includes/menu.php'; ?>
</center>
<?php include 'includes/mtime.php'; ?>
<h2 id="sommaire">Sommaire</h2>
<ul>
<li> <a href="#gnous" title="https://www.gnous.fr/apropos.php#gnous">GNOUS's Not Only Ultra Symbolic</a></li>
<li> <a href="#gaou" title="https://www.gnous.fr/apropos.php#gaou">Gaou</a></li>
<li> <a href="#informations" title="https://www.gnous.fr/apropos.php#informations">Informations</a></li>
<ul>
<li> <a href="#general" title="https://www.gnous.fr/apropos.php#general">Général</a></li>
<li> <a href="#technique" title="https://www.gnous.fr/apropos.php#technique">Technique</a></li>
<li> <a href="#services" title="https://www.gnous.fr/apropos.php#services">Services</a></li>
<ul>
<li> <a href="#mattermost" title="https://www.gnous.fr/apropos.php#mattermost">Mattermost</a></li>
<li> <a href="#nextcloud" title="https://www.gnous.fr/apropos.php#nextcloud">Nextcloud</a></li>
<li> <a href="#mailcow" title="https://www.gnous.fr/apropos.php#mailcow">Mailcow</a></li>
<li> <a href="#gitea" title="https://www.gnous.fr/apropos.php#gitea">Gitea</a></li>
<li> <a href="#tails" title="https://www.gnous.fr/apropos.php#tails">Tails</a></li>
<li> <a href="#domainname" title="https://www.gnous.fr/apropos.php#domainname">Nom de domaine</a></li>
</ul>
</ul>
<li> <a href="#todo" title="https://www.gnous.fr/apropos.php#todo">Boîte à idées</a></li>
<li> <a href="#contribution" title="https://www.gnous.fr/apropos.php#contribution">Invitation à contribuer</a></li>
</ul>
<h2 id="gnous">GNOUS's Not Only Ultra Symbolic</h2>
<p>Évidemment inspiré de l'acronyme récursif <abbr title="GNU's Not Unix">GNU</abbr>,
le nom de ce projet évoque la volonté d'avoir une posture active dans la
compréhension, l'utilisation, l'appropriation, voire l'élaboration, des
outils du numérique. Plutôt que d'être dans une fascination passive du
Libre, GNOUS se propose de s'inscrire dans ce mouvement par le <em>faire</em>,
et revendique par la même occasion une approche productive dans les
mouvements sociaux.<br>
Ce projet a donc une visée avant tout <strong>didactique</strong>, tant
pour les internautes <a href="https://framablog.org/2018/08/13/ecriture-du-blog-nous-ne-transigerons-pas-sur-les-libertes/"
target="_blank" title="https://framablog.org/2018/08/13/ecriture-du-blog-nous-ne-transigerons-pas-sur-les-libertes/ (nouvel onglet)">
égaré·es</a> sur ce site ou utilisant ses services, que
pour celles et ceux l'administrant. Bien qu'il souhaite fournir des
services fiables et pérennes, sa vocation est davantage d'expérimenter et
de se noircir les mains dans le cambouis de l'informatique. Un cadre tant
que possible rigoureux permet donc de limiter les dégâts, tout en
accueillant avec le sourire les bourdes et autres gaffes qui pourront être
faites.<br>
Enfin, il est nécessaire de mettre l'accent sur une dernière dimension du
projet, à savoir une conviction certaine dans la force, et le sens, du <strong>collectif</strong>.
Ce projet aspire donc à être porté par une communauté toujours plus
grande, et ouvre grand ses portes à quiconque souhaitant s'y impliquer. </p>
<h2 id="gaou">Gaou</h2>
<p>Le projet est actuellement à l'état de gaou, nom désignant le petit du
gnou. Il s'est concrétisé sur un coup de tête, au milieu de la lecture
d'un <i>n</i>-ième article de blog sur la mise à mal de notre capacité de
communication par de gros acteurs d'Internet. Couplé à un désir ancien de
proposer une alternative aux discussions de groupe nommées "Famille" sur
WhatsApp, cet article a eu raison des derniers remparts érigés par la
flemme et a précipité la location d'un petit serveur au soir du 27 janvier
2019.<br>
GNOUS est donc encore informe et se réserve le droit d'évoluer
spontanément dans une direction ou une autre. Il peut cependant s'avérer
pertinent de préciser que ce projet subit fortement les influences des <abbr
title="Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires">CHATONS</abbr>
(notamment <a href="https://picasoft.net/" target="_blank" title="https://picasoft.net/ (nouvel onglet)">
Picasoft</a>), même s'il en est par nature très éloigné. </p>
<h2 id="informations">Informations</h2>
<h3 id="general">Général</h3>
<ul>
<li> Hébergeur : <a href="https://www.scaleway.com/fr/" target="_blank" title="https://www.scaleway.com/fr/ (nouvel onglet)">
Scaleway (Online)</a> </li>
<li> Emplacement du serveur : Paris, France </li>
<li> Date de création du projet : 27 janvier 2019 </li>
<!-- <li> Prochaine date d'expiration des services : 26 janvier 2021 </li> -->
<li> Coût mensuel de la location du serveur : 14,99€ + 20%TVA = 18€ </li>
<li> Membre actif du projet : 1 </li>
<li> Contributions financières :
<table border="1">
<tr>
<th></th><th>De</th><th>Date</th><th>Montant équivalent à</th>
</tr>
<tr>
<td>#4</td><td>Anonymes</td><td>23/07/2020</td><td>61 litres de jus de pommes du Verger de Rieux</td>
</tr>
<tr>
<td>#3</td><td>Anonyme</td><td>17/04/2020</td><td>50 beignets à la brousse chez Galeani</td>
</tr>
<tr>
<td>#2</td><td>Anonymes</td><td>25/06/2019</td><td>700 sopaipillas sur l'avenue Argentina</td>
</tr>
<tr>
<td>#1</td><td>Anonyme</td><td>18/02/2019</td><td>2 porrones et demi à la Guarida</td>
</tr>
</table> </li>
</ul>
<h3 id="technique">Technique</h3>
<p>L'équipement central du projet est un serveur dédié chez Scaleway,
localisé à Paris en France. Ses principales caractéristiques sont les suivantes:
<table border="1">
<tbody>
<tr>
<td>OS</td>
<td>Debian Buster (10)</td>
</tr>
<tr>
<td>Processeur</td>
<td>Intel® C2750 (Avoton)<br>8 cœurs - 8 threads - fréquence 2,4 GHz</td>
</tr>
<tr>
<td>Carte mère</td>
<td>Supermicro A1SA2-2750F</td>
</tr>
<tr>
<td>Mémoire vive</td>
<td>16 Go <abbr title="Double Data Rate">DDR</abbr>3</td>
</tr>
<tr>
<td>Stockage</td>
<td>250 Go <abbr title="Solid State Drive">SSD</abbr></td>
</tr>
</tbody>
</table></p>
<p>Depuis la fin de l'année 2019, GNOUS profite de l'aide d'un <a
href="https://fr.wikipedia.org/wiki/Raspberry_Pi" target="_blank" title="https://fr.wikipedia.org/wiki/Raspberry_Pi (nouvel onglet)">Raspberry Pi</a>
4B avec 4GB de RAM, localisé chez le membre
actuel du projet. Ce serveur personnel permet notamment d'externaliser
les sauvegardes de GNOUS, ainsi qu'un site de travaux.</p>
<p>Tous les services sont conteneurisés avec <a
href="https://www.docker.com/" target="_blank" title="https://www.docker.com/ (nouvel onglet)">Docker</a> et les fichiers de configuration sont <a href="https://git.gnous.fr/Gnous/docker" target="_blank" title="https://git.gnous.fr/Gnous/docker (nouvel onglet)">publiquement versionnés</a>. Les services web sont
accessibles depuis le proxy inverse <a
href="https://containo.us/traefik/" target="_blank" title="https://containo.us/traefik/ (nouvel onglet)">Træfik</a> qui se charge de générer
automatiquement les certificats X.509 de <a
href="https://letsencrypt.org/" target="_blank" title="https://letsencrypt.org/ (nouvel onglet)">Let's Encrypt</a> pour établir une
connexion sécurisée.
Notamment, aucun service web de GNOUS n'est accessible de manière non-sécurisée.</p>
<p>L'espace de stockage a été réorganisé pour dissocier la partie <em>système</em>
de la partie <em>données</em>. La partition dédiée aux données est chiffrée avec
<a href="https://fr.wikipedia.org/wiki/LUKS"
target="_blank" title="https://fr.wikipedia.org/wiki/LUKS (nouvel onglet)">LUKS</a>,
ce qui nécessite notamment l'entrée manuelle de la phrase secrète à chaque redémarrage (et donc une action humaine).
Cette partition est ensuite découpée en deux avec <a href="https://fr.wikipedia.org/wiki/Gestion_par_volumes_logiques"
target="_blank" title="https://fr.wikipedia.org/wiki/Gestion_par_volumes_logiques (nouvel onglet)">LVM</a> pour allouer
de l'espace aux données au repos et également aux composants Docker (particulièrement les volumes et les images).
<p>Une stratégie de sauvegardes quotidiennes permet d'assurer la persistence des données
des utilisateurices quelques temps après leur suppression (qu'elle soit volontaire ou non):
<ul>
<li>sauvegardes décrémentales sur une durée de 90 jours pour <a href="https://cloud.gnous.fr/"
target="_blank" title="https://cloud.gnous.fr/ (nouvel onglet)">Nextcloud</a> et <a
href="https://mattermost.gnous.fr/" target="_blank" title="https://mattermost.gnous.fr/ (nouvel onglet)">Mattermost</a> ;</li>
<li>sauvegardes complètes sur une durée de 90 jours pour <a href="https://git.gnous.fr/" target="_blank" title="https://git.gnous.fr/ (nouvel onglet)">g²</a> et le mail.</li>
</ul>
Ces sauvegardes sont conservées à distance, sur deux disques de 2To recyclés, configurés en <abbr title="Redundant Array of Independent Disks">RAID</abbr>1
et également chiffrés avec LUKS.<br>
Les configurations importantes du système sont versionnées et sauvegardées à distance avec <a
href="https://fr.wikipedia.org/wiki/Git" target="_blank" title="https://fr.wikipedia.org/wiki/Git (nouvel onglet)">Git</a>.</p>
<p><a href="https://www.elastic.co/fr/elastic-stack"
target="_blank" title="https://www.elastic.co/fr/elastic-stack (nouvel onglet)">La pile Elastic</a> a été mise en place
afin d'assurer de la supervision système et centraliser les journaux d'événements.
</p>
<p>Afin de faciliter la prévention des maintenances en tout genre, le site web <a href="https://travaux.gnous.fr/"
target="_blank" title="https://travaux.gnous.fr (nouvel onglet)">Travaux</a> a été mis en ligne.</p>
<h3 id="services">Services</h3>
<p>Depuis la création du projet, deux des services proposés ont démontré leur intérêt et sont dorénavant considérés pérennes : Nextcloud et Mattermost.
GNOUS cherche donc à assurer une bonne stabilité de ces outils ainsi qu'une disponibilité cohérente. De plus, il serait déraisonnable de procéder
à leur arrêt définitif de manière imprévue, sans organiser et faciliter au préalable la migration des utilisateurices vers une autre instance ou plateforme.<br>
Enfin, ce site web semble indispensable à la présentation de GNOUS, et n'est par conséquent pas non plus destiné à disparaître inopinément.</p>
<p>Tous les services proposés par GNOUS ne sont pas référencés sur ce site web, leur usage pouvant être personnel ou réservé à un public restreint.
Les utilisateurices sont cependant invité·es à <a href="contact.php"
title="contact.php">nous contacter</a> si ils ou elles ont besoin d'un service particulier (sans pour autant aucune garantie quant à leur déploiement).</p>
<h4 id="mattermost">Mattermost</h4>
<p>Le logiciel libre <a href="https://www.mattermost.org/" target="_blank" title="https://www.mattermost.org/ (nouvel onglet)">Mattermost</a> est
le premier service mis en place avec GNOUS. L'objectif initial est de se
réapproprier les conversations de type "famille" sur WhatsApp. Cependant,
cette instance de Mattermost n'est pas exclusive à la famille, mais
ouverte également à quelques proches puisque : </p>
<ul>
<li> il y a la possibilité d'avoir des équipes et des canaux totalement
privés, </li>
<li> malgré une estimation peu rigoureuse, il semble que la consommation des ressources de
Mattermost ne soit pas trop importante (du moins pour l'instant). </li>
</ul>
<?php
$url = "https://mon.gnous.fr:9200/stats-*/_search";
$headers = array(
"Content-Type: application/json",
"Authorization: Basic ".$_ENV["ES_TOKEN"],
);
$params = '
{
"sort": { "@timestamp": "desc"},
"size": 5,
"query": {
"bool": {
"filter": [
{
"match_phrase": {
"fields.stats": "mattermost"
}
},
{
"bool": {
"should": [
{
"match_phrase": {
"stats.name": "post_count"
}
},
{
"match_phrase": {
"stats.name": "channel_open_count"
}
},
{
"match_phrase": {
"stats.name": "channel_private_count"
}
},
{
"match_phrase": {
"stats.name": "unique_user_count"
}
},
{
"match_phrase": {
"stats.name": "team_count"
}
}
],
"minimum_should_match": 1
}
}
]
}
},
"fields": [
"stats.*"
],
"_source" :false
}';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CAINFO,'./ressources/elasticsearch-ca.pem');
curl_setopt($ch, CURLOPT_CAPATH,'./ressources/elasticsearch-ca.pem');
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$data_json = curl_exec($ch);
echo $data_json;
//var_dump(json_decode($data_json));
$status_code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($status_code==200) {
$data = json_decode($data_json, true);
$channel_count = $data[0]['value'] + $data[1]['value'];
$message_count = $data[2]['value'];
$user_count = $data[3]['value'];
$team_count = $data[4]['value'];
?>
Chiffres (mis à jour en temps réel) :
<table border="1">
<tbody>
<tr>
<td>Utilisateurices</td>
<td><?php echo $user_count;?></td>
</tr>
<tr>
<td>Équipes</td>
<td><?php echo $team_count;?></td>
</tr>
<tr>
<td>Canaux</td>
<td><?php echo $channel_count;?></td>
</tr>
<tr>
<td>Messages</td>
<td><?php echo $message_count;?></td>
</tr>
</tbody>
</table>
<?php
} else {
echo "<i>Statistiques momentanément indisponibles.</i>";
}
?>
<h4 id="nextcloud">Nextcloud</h4>
<p>Le logiciel libre <a href="https://nextcloud.com/" target="_blank" title="https://nextcloud.com/ (nouvel onglet)">Nextcloud</a> est le
troisième service (le second étant ce site) mis en place avec GNOUS.
Celui-ci est réservé à la famille et quelques proches pour des raisons évidentes de capacité
de stockage. Un des usages recherchés est de téléverser sur ce <em>cloud</em>
les fichiers qu'on envoie habituellement par mail, et alléger ainsi toute
l'infrastructure du mail.</p>
<?php
$url = "https://cloud.gnous.fr/ocs/v2.php/apps/serverinfo/api/v1/info?format=json";
$headers = array(
"Accept: application/json",
"OCS-APIRequest: true",
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERPWD, $_ENV["NEXTCLOUD_USER"].":".$_ENV["NEXTCLOUD_TOKEN"]);
$data_json = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($status_code==200) {
$data = json_decode($data_json, true);
$nextcloud_data = $data['ocs']['data']['nextcloud'];
$user_count = $nextcloud_data['storage']['num_users'];
$file_count = $nextcloud_data['storage']['num_files'];
$share_count = $nextcloud_data['shares']['num_shares'];
?>
Chiffres (mis à jour en temps réel) :
<table border="1">
<tbody>
<tr>
<td>Utilisateurices</td>
<td><?php echo $user_count;?></td>
</tr>
<tr>
<td>Fichiers</td>
<td><?php echo $file_count;?></td>
</tr>
<tr>
<td>Partages de fichiers</td>
<td><?php echo $share_count;?></td>
</tr>
</tbody>
</table>
<?php
} else {
echo "<i>Statistiques momentanément indisponibles.</i>";
}
?>
<h4 id="mailcow">Mailcow</h4>
<p>Depuis mars 2021 GNOUS dispose d'un serveur de mail basé sur la solution libre <a href="https://mailcow.email/" target="_blank" title="https://mailcow.email/ (nouvel onglet)">Mailcow</a>.
Ce service permet d'envoyer et de recevoir des mails avec une adresse en <code>@gnous.fr</code>, ou tout autre domaine administré par GNOUS. Les mails sont également consultables au moyen d'un <a href="https://webmail.gnous.fr/" target="_blank" title="https://webmail.gnous.fr/ (nouvel onglet)">webmail</a>.</p>
<p>Tant que les ressources le permettent, une boîte mail peut-être créée sur demande.</p>
<h5 id="spam">Le spam</h5>
<p>Il est à noter que les mails envoyés à une adresse Gmail (ou Hotmail, Yahoo, etc.) sont susceptibles d'arriver dans les spams.
Ceci n'est pas dû à un défaut de configuration du serveur de mail de GNOUS, mais à un abus de pouvoir de la part de ces gros acteurs du mail qui détiennent une grande masse d'utilisateurices
et cherchent à entraver l'émergence de petits serveurs de mail. De nombreux articles et coups de gueule existent à ce propos. Un point de départ pourrait être l'article «<a href="https://framablog.org/2017/02/17/etre-un-geant-du-mail-cest-faire-la-loi/" target="_blank" title="https://framablog.org/2017/02/17/etre-un-geant-du-mail-cest-faire-la-loi/ (nouvel onglet)">Être un géant du mail, c'est faire la loi...</a>».</p>
<h4 id="gitea">Gitea</h4>
<p>Également depuis mars 2021, la forge git <a href="https://git.gnous.fr/" target="_blank" title="https://git.gnous.fr/ (nouvel onglet)">g²</a> reposant sur le logiciel libre <a href="https://gitea.io/" target="_blank" title="https://gitea.io/ (nouvel onglet)">Gitea</a> a été mise en place
pour pouvoir exporter et publier du contenu versionné.</p>
<h4 id="tails">Tails</h4>
<p>Une clef <a href="https://tails.boum.org/" target="_blank" title="https://tails.boum.org/ (nouvel onglet)">Tails</a>, pour <em>The Amnesic Incognito Live System</em>, est
une clef <abbr title="Universal Serial Bus">USB</abbr> sur laquelle est installé un système d'exploitation extrêmement sécurisé.
Cet outil permet d'ouvrir une session sur n'importe quel ordinateur (ou presque). Il a été conçu pour garantir l'anonymat de l'utilisateurice et sa protection contre tout type de surveillance.
Il a notamment été utilisé par Edward Snowden et les journalistes ayant travaillé sur la révélation des programmes de surveillance de la NSA en 2013.
Tails continue d'être utilisé par différents profils (journalistes, lanceur·ses d'alerte, opposant·es politiques, etc.) mais ne leur est pas exclusif !
En particulier, certains de ses avantages pour une personne lambda sont :
<ul>
<li> la possibilité de se déplacer sans son ordinateur, tout en conservant l'accès à ses ressources numériques en empruntant l'ordinateur de n'importe qui ; </li>
<li> la possibilité de réaliser des opérations sensibles (banque, connexion à un site, etc.) sur un ordinateur inconnu, tout en ayant l'assurance de ne pas compromettre ses informations (historique, enregistrement des identifiants, présence de virus, etc.); </li>
<li> l'assurance de ne pas endommager l'ordinateur utilisé, son utilisation étant transparente et sans trace ; </li>
<li> et plein d'autres que l'on découvre avec le temps... </li>
</ul>
</p>
<p>Puisque l'installation de Tails sur une clef nécessite du temps et quelques connaissances informatiques (mais se réalise sans trop de difficulté pour qui s'y intéresse), il peut être plus facile de se faire aider.
GNOUS se propose donc pour distribuer des clefs Tails à qui le souhaite («juste pour voir» est une raison valable!). Il est cependant raisonnable d'avoir acquis une certaine confiance en GNOUS, ou en ses membres, avant de formuler une telle demande.
En effet, il semble impossible d'avoir confiance en cet outil sans avoir confiance en la personne qui le produit. Pour tout renseignement à ce sujet, <a href="contact.php" title="https://www.gnous.fr/contact.php">contactez-nous</a>.
</p>
<h4 id="domainname">Nom de domaine</h4>
<p>GNOUS ayant acquis le nom de domaine <code>gnous.fr</code>, il lui est possible de délivrer gratuitement des noms de domaines sous le format <code>mon-nom-de-domaine.gnous.fr</code>. <a href="contact.php" title="https://www.gnous.fr/contact.php">Contactez-nous</a>
pour en faire la demande, bien qu'une réponse favorable ne soit pas garantie.</p>
<h2 id="todo">Boîte à idées</h2>
<ul>
<li> Réalistes :
<ul>
<li> <input type="checkbox" disabled checked/> Implémenter une stratégie de sauvegardes distantes afin d'améliorer la résilience du système </li>
<li> <input type="checkbox" disabled checked/> Chiffrement des données serveur au repos avec Luks </li>
<li> <input type="checkbox" disabled checked/> Trouver et concevoir un logo tout mignon </li>
<li> <input type="checkbox" disabled/> Refonte du site web (fond et forme?)</li>
<li> <input type="checkbox" disabled/> Traductions du site web </li>
<li> <input type="checkbox" disabled/> Serveurs de noms </li>
<li> <input type="checkbox" disabled/> Micro-agenda : référencer ponctuellement un évènement mobilisant les valeurs de GNOUS </li>
</ul>
</li>
<li> Idéales :
<ul>
<li> <input type="checkbox" disabled/> Production de documentation utilisateurice et administrateurice </li>
<li> <input type="checkbox" disabled checked/> Service de mail </li>
<li> <input type="checkbox" disabled/> Auto-hébergement </li>
</ul>
</li>
<li> Démarches itératives :
<ul>
<li> Se renseigner et améliorer la situation juridique de GNOUS, notamment au regard
de la Loi Informatique et Libertés, de la Loi pour la Confiance en l'Économie
Numérique et du RGPD. </li>
<li> Tenter de parfaire le compromis fait par GNOUS entre ses activités informatiques et
un contrôle raisonné de sa consommation énergétique.</li>
</ul>
</li>
</ul>
<h2 id="contribution">Invitation à contribuer</h2>
<p>Toute personne se sentant concernée est libre d'offrir sa contribution en
connaissances, en temps, en moyens (financiers ou non) ou encore en bonne
humeur. Il y a toujours des petits travaux en attente (même pour les plus débutant·es!).<br>
Le don en Ğ1 est notamment possible avec cette clé : <code>9MUNUuE4uZ91JK2gZD4yMCz4MtqfTHBtPpJRWaGMwcuF</code><br>
GNOUS n'est pas sur PayPal mais sur <a href="https://liberapay.com/GNOUS/donate" title="https://liberapay.com/GNOUS/donate (nouvel onglet)" target="_blank">Liberapay</a>.</p>
<?php include 'includes/footer.php'; ?>
</body>
</html>