+
+ 'plume',
+'peertube' => 'peertube',
+'gitea' => 'gitea',
+'libreqr' => 'libreqr',
+'vaultwarden' => 'vaultwarden',
+'nextcloud' => 'nextcloud',
+'synapse' => 'matrix',
+'element' => 'element',
+'privatebin' => 'privatebin',
+'jirafeau' => 'jirafeau',
+'rssbridge' => 'rssbridge',
+'searx' => 'searx',
+'etherpad' => 'etherpad',
+'diagrams' => 'diagrams',
+'opensondage' => 'opensondage',
+'iprefua' => NULL,
+);
+
+$logoServiceDimensions = array(
+'plume' => array(100, 100),
+'peertube' => array(75, 100),
+'gitea' => array(100, 100),
+'libreqr' => array(100, 100),
+'vaultwarden' => array(100, 100),
+'nextcloud' => array(150, 68),
+'synapse' => array(95, 100),
+'element' => array(100, 100),
+'privatebin' => array(94, 100),
+'jirafeau' => array(100, 100),
+'rssbridge' => array(150, 31),
+'searx' => array(109, 100),
+'etherpad' => array(59, 100),
+'diagrams' => array(80, 80),
+'opensondage' => array(64, 64),
+'iprefua' => NULL,
+);
+
+$urlService = array(
+'plume' => clearnetOrOnion('https://blog.antopie.org', 'http://antblogn2vnc4hncjiow4jn7yidxe64l2o2qhj2tyla33jjhrrf5v2ad.onion'),
+'peertube' => 'https://video.antopie.org',
+'gitea' => clearnetOrOnion('https://code.antopie.org', 'http://antcode5h4tntfei362x7eydifyxdjskjisv5pezk2othlh7oho2zhyd.onion'),
+'libreqr' => clearnetOrOnion('https://qr.antopie.org', 'http://libreqrh5gsyzaaexx4vwyp6k2sd5keg5svyj2gpbkhg7zzyjvswiiyd.onion'),
+'vaultwarden' => clearnetOrOnion('https://mdp.antopie.org', 'http://antmdpizuaquzfz5kzv3tz3k2funlcgma5gxtujxs5sl6z7wyk76x3qd.onion'),
+'nextcloud' => 'https://nuage.antopie.org',
+'synapse' => 'https://matrix.antopie.org',
+'element' => 'https://riot.antopie.org',
+'privatebin' => clearnetOrOnion('https://texte.antopie.org', 'http://anttxt2u75lbrpl23szr6qtgzx5kkcz7larjmg24udwypceuslzel5qd.onion'),
+'jirafeau' => clearnetOrOnion('https://up.antopie.org', 'http://antuplo4vcln7ftoatr5iualwb3py7ccii6t32gemzannhu4blj2xqid.onion'),
+'rssbridge' => clearnetOrOnion('https://rss.antopie.org', 'http://antrssv5553pjemejxyszija6ceii4soc5ozk6pdj7y3vauzioavdkid.onion'),
+'searx' => clearnetOrOnion('https://searx.antopie.org', 'http://antsrxhuvxylfgvu6c33m6gzlp3dsrxfnil7z3ppfya2vqvs4hkuy7qd.onion'),
+'etherpad' => 'https://pad.antopie.org',
+'diagrams' => 'https://draw.antopie.org',
+'opensondage' => clearnetOrOnion('https://sondage.antopie.org', 'http://antaskuzziqjodxfighsptanvhrwmb7h5nsgjwei2dvvtsuqgjsaxvad.onion'),
+'iprefua' => clearnetOrOnion('https://ip.antopie.org', 'http://antipr353qn3siq2ttnlk43fye4uhd5lc4cxubv5umfglzxqy37cmmyd.onion'),
+);
+
+$domService = array(
+'plume' => clearnetOrOnion('
blog.antopie.org
', '
antblogn2vnc4hncjiow4jn7yidxe64l2o2qhj2tyla33jjhrrf5v2ad.onion'),
+'peertube' => '
video.antopie.org
',
+'gitea' => clearnetOrOnion('
code.antopie.org
', '
antcode5h4tntfei362x7eydifyxdjskjisv5pezk2othlh7oho2zhyd.onion'),
+'libreqr' => clearnetOrOnion('
qr.antopie.org
', '
libreqrh5gsyzaaexx4vwyp6k2sd5keg5svyj2gpbkhg7zzyjvswiiyd.onion'),
+'vaultwarden' => clearnetOrOnion('
mdp.antopie.org
', '
antmdpizuaquzfz5kzv3tz3k2funlcgma5gxtujxs5sl6z7wyk76x3qd.onion'),
+'nextcloud' => '
nuage.antopie.org
',
+'synapse' => '
matrix.antopie.org
',
+'element' => '
riot.antopie.org
',
+'privatebin' => clearnetOrOnion('
texte.antopie.org
', '
anttxt2u75lbrpl23szr6qtgzx5kkcz7larjmg24udwypceuslzel5qd.onion'),
+'jirafeau' => clearnetOrOnion('
up.antopie.org
', '
antuplo4vcln7ftoatr5iualwb3py7ccii6t32gemzannhu4blj2xqid.onion'),
+'rssbridge' => clearnetOrOnion('
rss.antopie.org
', '
antrssv5553pjemejxyszija6ceii4soc5ozk6pdj7y3vauzioavdkid.onion'),
+'searx' => clearnetOrOnion('
searx.antopie.org
', '
antsrxhuvxylfgvu6c33m6gzlp3dsrxfnil7z3ppfya2vqvs4hkuy7qd.onion'),
+'etherpad' => '
pad.antopie.org
',
+'diagrams' => '
draw.antopie.org
',
+'opensondage' => clearnetOrOnion('
sondage.antopie.org
', '
antaskuzziqjodxfighsptanvhrwmb7h5nsgjwei2dvvtsuqgjsaxvad.onion'),
+'iprefua' => clearnetOrOnion('
ip.antopie.org
', '
antipr353qn3siq2ttnlk43fye4uhd5lc4cxubv5umfglzxqy37cmmyd.onion'),
+);
+
+$nomService = array(
+'plume' => 'Plume',
+'peertube' => 'PeerTube',
+'gitea' => 'Gitea',
+'libreqr' => 'LibreQR',
+'vaultwarden' => 'Vaultwarden',
+'nextcloud' => 'Nextcloud',
+'synapse' => 'Synapse',
+'element' => 'Element',
+'privatebin' => 'PrivateBin',
+'jirafeau' => 'Jirafeau',
+'rssbridge' => 'RSS Bridge',
+'searx' => 'Searx',
+'etherpad' => 'Etherpad',
+'diagrams' => 'Diagrammes',
+'opensondage' => 'OpenSondage',
+'iprefua' => 'Iprefua',
+);
+
+$descService = array(
+'plume' => 'Créez simplement un blog qui sera accessible via le Web, le
Fédiverse et un flux
Atom.',
+'peertube' => 'Regardez ou publiez des vidéos sur le
Fédiverse.',
+'gitea' => '
Forge logicielle simple basée sur
Git.',
+'libreqr' => 'Un générateur de
codes QR fait maison.',
+'vaultwarden' => 'Générez, enregistrez et synchronisez des mots ou phrases de passe fortes.',
+'nextcloud' => 'Synchronisation de fichiers, de contacts (
CardDAV), d’agenda (
CalDAV),
Carnet , et plein d’autres fonctionnalités grâce à des extensions.',
+'synapse' => 'Un serveur
Matrix, qui est un protocole internet moderne pour la communication écrite, audio ou vidéo.',
+'element' => 'Client Web pour
Matrix.',
+'privatebin' => 'Partagez des textes, codes sources ou
Markdown rapidement.',
+'jirafeau' => 'Partagez rapidement n’importe quel fichier avec n’importe qui.',
+'rssbridge' => 'Exportez les données de centaines de sites aux formats
Atom,
JSON,
HTML, Mrss ou texte.',
+'searx' => '
Métamoteur anonymé : combine plusieurs moteurs de recherche sur une seule page.',
+'etherpad' => 'Éditez un texte sur plusieurs appareils en même temps. Utilisable avec
MyPads.',
+'diagrams' => 'Créez des diagrammes.',
+'opensondage' => 'Planifiez un rendez-vous ou prenez des décisions.',
+'iprefua' => 'Afficher adresse IP, agent utilisateur, référent HTTP et langues demandées.',
+);
+
+$siteOfficielService = array(
+'plume' => 'joinplu.me',
+'peertube' => 'joinpeertube.org',
+'gitea' => 'gitea.io',
+'libreqr' => NULL,
+'vaultwarden' => NULL,
+'nextcloud' => 'nextcloud.com/fr_FR',
+'synapse' => NULL,
+'element' => 'element.io',
+'privatebin' => 'privatebin.info',
+'jirafeau' => NULL,
+'rssbridge' => NULL,
+'searx' => 'asciimoo.github.io/searx',
+'etherpad' => 'etherpad.org',
+'diagrams' => 'www.diagrams.net',
+'opensondage' => NULL,
+'iprefua' => NULL,
+);
+
+$gitService = array(
+'plume' => 'git.joinplu.me/plume/plume',
+'peertube' => 'github.com/Chocobozzz/PeerTube',
+'gitea' => 'github.com/go-gitea/gitea',
+'libreqr' => 'code.antopie.org/miraty/libreqr',
+'vaultwarden' => 'github.com/dani-garcia/vaultwarden',
+'nextcloud' => 'github.com/nextcloud/server',
+'synapse' => 'github.com/matrix-org/synapse',
+'element' => 'github.com/vector-im/element-web',
+'privatebin' => 'github.com/PrivateBin/PrivateBin',
+'jirafeau' => 'gitlab.com/mojo42/Jirafeau',
+'rssbridge' => 'github.com/rss-bridge/rss-bridge',
+'searx' => 'github.com/searx/searx',
+'etherpad' => 'github.com/ether/etherpad-lite',
+'diagrams' => 'github.com/jgraph/drawio',
+'opensondage' => 'framagit.org/framasoft/framadate/framadate',
+'iprefua' => 'code.antopie.org/miraty/iprefua',
+);
+
+$paquetYnhService = array(
+'plume' => 'github.com/YunoHost-Apps/plume_ynh',
+'peertube' => 'github.com/YunoHost-Apps/peertube_ynh',
+'gitea' => 'github.com/YunoHost-Apps/gitea_ynh',
+'libreqr' => 'code.antopie.org/miraty/qr_ynh',
+'vaultwarden' => 'github.com/YunoHost-Apps/vaultwarden_ynh',
+'nextcloud' => 'github.com/YunoHost-Apps/nextcloud_ynh',
+'synapse' => 'github.com/YunoHost-Apps/synapse_ynh',
+'element' => 'github.com/YunoHost-Apps/element_ynh',
+'privatebin' => 'github.com/YunoHost-Apps/zerobin_ynh',
+'jirafeau' => 'github.com/YunoHost-Apps/jirafeau_ynh',
+'rssbridge' => 'github.com/YunoHost-Apps/rss-bridge_ynh',
+'searx' => 'github.com/YunoHost-Apps/searx_ynh',
+'etherpad' => 'github.com/YunoHost-Apps/etherpad_mypads_ynh',
+'diagrams' => 'github.com/YunoHost-Apps/diagramsnet_ynh',
+'opensondage' => 'github.com/YunoHost-Apps/opensondage_ynh',
+'iprefua' => 'github.com/YunoHost-Apps/multi_webapp_ynh',
+);
+
+$actionService = array(
+'plume' => 'Bloguer',
+'peertube' => 'Accéder au service',
+'gitea' => 'Coder',
+'libreqr' => 'Générer un code QR',
+'vaultwarden' => 'Accéder au service',
+'nextcloud' => 'Accéder au service',
+'synapse' => "Plus d'infos",
+'element' => 'Clavarder',
+'privatebin' => 'Téléverser du texte',
+'jirafeau' => 'Téléverser un fichier',
+'rssbridge' => 'Bridger',
+'searx' => 'Rechercher',
+'etherpad' => 'Créer un bloc-notes',
+'diagrams' => 'Accéder au service',
+'opensondage' => 'Créer un sondage',
+'iprefua' => 'Accéder au service',
+);
+
+$aboutService = array(
+'plume' => NULL,
+'peertube' => NULL,
+'gitea' => NULL,
+'libreqr' => NULL,
+'vaultwarden' => NULL,
+'nextcloud' => 'nextcloud',
+'synapse' => NULL,
+'element' => NULL,
+'privatebin' => NULL,
+'jirafeau' => NULL,
+'rssbridge' => NULL,
+'searx' => NULL,
+'etherpad' => NULL,
+'diagrams' => NULL,
+'opensondage' => NULL,
+'iprefua' => NULL,
+);
+
+foreach($descService as $codeService => $descService) { ?>
+
+
+
+
+
= $nomService[$codeService]; ?>
+
+
+ Site
+
+ Source
+ Paquet
+
+
= $descService; ?>
+
= $domService[$codeService]; ?>
+
+
+
+
+
+
+
+
+
diff --git a/src/manifeste-sur-le-contenu.md b/src/manifeste-sur-le-contenu.md
new file mode 100755
index 0000000..c41eef1
--- /dev/null
+++ b/src/manifeste-sur-le-contenu.md
@@ -0,0 +1,9 @@
+# Manifeste sur le contenu
+
+Antopie est hostile à la propagation de contenus droitistes, et est susceptible d'appliquer une modération en conséquence.
+
+Le terme droitiste peut par exemple comprendre *essentialiste*, *spéciste*, *socionormativiste*, *genriste*, *masculiniste*, *hétérosexualiste*, *raciste*, *nationaliste*, *autoritariste*, *capitaliste*, *propriétariste*, *productiviste*, *théiste*, *spiritualiste* ou *conspirationniste*.
+
+Ceci a été exprimé plus dans le but de guider les personnes dans leur choix de service avant leur établissement sur Antopie que de limiter l'expression des personnes qui sont déjà dessus. Aussi, si vous êtes d'accord avec ce qui est dit dans ce manifeste, vous ne devriez pas avoir besoin de vérifier la compatibilité de tout ce que vous dites avec. La modération sur Antopie est faite avec bienveillance et est ouverte à discussion. L'immense majorité des contenus retirés d'Antopie sont du spam ou sont publiés par des personnes n'ayant pas lu ce manifeste.
+
+**Ce n'est pas une atteinte à la liberté d'expression.** Ce manifeste ne vous interdit pas de vous exprimer. Il vous demande simplement de ne pas utiliser un service Antopie pour cela si vous avez des idées trop différentes, auquel cas vous pourrez trouvez un service qui vous convient mieux.
diff --git a/src/matrix.md b/src/matrix.md
new file mode 100755
index 0000000..5c09fd1
--- /dev/null
+++ b/src/matrix.md
@@ -0,0 +1,56 @@
+# Utiliser Matrix
+
+Matrix est un protocole de communication permettant les communications instantanées sur Internet.
+
+Antopie propose un serveur Matrix à l'adresse `matrix.antopie.org` et le client Web Riot à l'adresse [https://riot.antopie.org](https://riot.antopie.org).
+Ce tutoriel se propose de vous apprendre à utiliser ces services.
+
+## Client / serveur
+
+Tout comme les courriels, Matrix fonctionne sur le modèle client/serveur.
+
+Le serveur est un logiciel qui tourne sur un ordinateur laissé allumé en permanence.
+
+Le client, c'est votre appareil qui se connecte au serveur pour vérifier si il a reçu de nouveaux messages ou pour en envoyer.
+
+## La pratique
+
+Rendez-vous sur [https://riot.antopie.org/#/register](https://riot.antopie.org/#/register).
+Renseignez votre pseudo ou nom et définissez un nouveau mot de passe, puis validez. Vous pouvez aussi spécifier une adresse mail pour changer de mot de passe si vous l'avez oublié.
+Vous arriverez sur l'interface de Riot, et rejoindrez automatiquement le salon de discussion publique `#antopie:matrix.antopie.org`.
+
+Si vous souhaitez que d'autres personnes vous contactent, votre identifiant Matrix est `@pseudo:matrix.antopie.org`.
+
+Pour commencer une autre discussion, cliquez sur le plus à côté de la section messages directs, à gauche, et cherchez l'identifiant Matrix.
+
+Mon identifiant Matrix est `@miraty:matrix.antopie.org`.
+
+## Les clients
+
+### Linux
+
+#### [Riot](https://riot.im/download/desktop/)
+
+#### Fractal
+
+#### Nhecko
+
+#### Quaternion
+
+### Windows et MacOS
+
+#### [Riot](https://riot.im/download/desktop/)
+
+### Android
+
+#### Riot
+
+[Sur F-Droid](https://f-droid.org/fr/packages/im.vector.alpha/) et le Google Play Store
+
+#### RiotX
+
+Une version destinée à terme à remplacer la version actuelle de Riot.
+
+### iOS
+
+Il y a aussi une version de Riot sur l'App Store d'iOS
diff --git a/src/nextcloud.md b/src/nextcloud.md
new file mode 100755
index 0000000..0c09ed0
--- /dev/null
+++ b/src/nextcloud.md
@@ -0,0 +1,62 @@
+# Nextcloud
+
+Antopie propose une instance Nextcloud sur [https://nuage.antopie.org](https://nuage.antopie.org).
+L'instance utilise un thème sombre, basé sur breeze dark de KDE.
+
+ {.imgArticle .border}
+
+La limite de stockage par défaut est de 3 Gio.
+Les données de Nextcloud ne sont pas sauvegardées ; n'en gardez pas d'importantes uniquement dessus.
+
+## Créer un compte
+
+Pour commencer à utiliser l'instance Nextcloud d'Antopie :
+
+1. Accéder à [https://nuage.antopie.org/apps/registration](https://nuage.antopie.org/apps/registration).
+2. Indiquer son adresse courriel
+3. Cliquer sur le lien envoyé par courriel
+4. Indiquer son pseudo et un mot de passe
+5. Accepter les [conditions d'utilisation]()
+
+## Applications disponibles
+
+Les applications listées ici sont celle qui semblent les plus stables ou officielles, ou qui ont été plus testées. D'autres sont disponibles mais utilisez-les avec plus de précautions.
+
+Fichiers
+: Sauvegarder et synchroniser des fichiers
+ Fonctionnalité principale de Nextcloud
+ [Télécharger les clients](https://nextcloud.com/install/#install-clients)
+
+Carnet
+: Prise de notes
+ Peut se syncroniser avec les autres clients Carnet
+ [Télécharger les clients](https://getcarnet.app/)
+
+Mail
+: Webmail
+ Permet d'ajouter n'importe quel compte IMAP/SMTP
+
+Contacts
+: Gestion de contacts
+ Syncronisation CardDAV possible
+
+Agenda
+: Gestion d'agendas
+ Syncronisation CalDAV possible
+
+Nextcloud Notes
+: Prise de notes
+
+Sondage
+: Équivalent Nextcloud à [OpenSondage](= clearnetOrOnion('https://sondage.antopie.org', 'http://antaskuzziqjodxfighsptanvhrwmb7h5nsgjwei2dvvtsuqgjsaxvad.onion') ?>)
+
+Favoris
+: Gestion de marques-pages
+ Peut se syncroniser avec les marques-pages du navigateur Web via [Floccus](https://addons.mozilla.org/firefox/addon/floccus)
+
+Talk
+: Permet de chatter et de faire des appels audio/vidéo
+
+*[SMTP]: Simple Mail Transfer Protocol
+*[IMAP]: Internet Message Access Protocol
+*[Gio]: gibioctet
diff --git a/style.less b/style.less
new file mode 100644
index 0000000..593dbb6
--- /dev/null
+++ b/style.less
@@ -0,0 +1,106 @@
+.grid {
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr 1fr;
+ grid-gap: 30px;
+
+ @media (min-width: 2500px) {
+ grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
+ }
+
+ @media (min-width: 3000px) {
+ grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
+ }
+
+ @media (max-width: 1500px) {
+ grid-template-columns: 1fr 1fr 1fr;
+ }
+
+ @media (max-width: 1000px) {
+ grid-template-columns: 1fr 1fr;
+ }
+
+ @media (max-width: 600px) {
+ grid-template-columns: 1fr;
+ }
+
+}
+
+.action::before {
+ content: "➡ ";
+}
+
+.metaService {
+ margin: 6px;
+ margin-bottom: 0px;
+}
+
+.descService {
+ text-align: left;
+}
+
+.domService {
+ font-size: 0.8em;
+}
+
+.domService code, .domService em {
+ font-size: inherit;
+}
+
+.domService, .domService code {
+ overflow-wrap: anywhere;
+ @media @light {
+ color: @darkerColor;
+ }
+ @media @dark {
+ color: @lightlessColor;
+ }
+}
+
+footer.antopie {
+ display: flex;
+ flex-direction: column;
+}
+
+.interlude {
+ display: flex;
+ justify-content: center;
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+
+.interlude > hr {
+ border: 0;
+ border-top: 2px gray dashed;
+ width: 520px;
+}
+
+.row {
+ .centered();
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+}
+
+.row > a.button {
+ margin: 10px;
+}
+
+.padRow {
+ padding: 10px;
+}
+
+small.row a {
+ font-size: 0.8em;
+}
+
+h1.titreService {
+ font-size: 1.3em;
+ text-align: center;
+ margin: 0px;
+ padding-bottom: 0px;
+ padding-top: 0px;
+}
+
+.red {
+ color: red;
+}