Jekyll2023-01-19T19:56:10+01:00http://allella.fr/feed.xmlallella.frALLELLACompte Liberapay2021-05-31T00:00:00+02:002021-05-31T00:00:00+02:00http://allella.fr/g%C3%A9n%C3%A9ralit%C3%A9s/2021/05/31/liberapay<p>On nous demande souvent comment participer financièrement, c’est maintenant possible via <a href="https://liberapay.com/allella">notre compte Liberapay</a>.
<!--more--></p>
<p>Cette plate-forme permet de faire des dons récurrents « aux personnes dont vous appréciez le travail ». Vous trouverez un peu plus de détails sur <a href="https://liberapay.com/about">cette page</a>.</p>
<p>Ce n’est pas parfait, puisque même si Liberapay est open source, le traitement des paiements est effectué via Paypal.</p>On nous demande souvent comment participer financièrement, c’est maintenant possible via notre compte Liberapay.Nitter2021-01-28T00:00:00+01:002021-01-28T00:00:00+01:00http://allella.fr/g%C3%A9n%C3%A9ralit%C3%A9s/2021/01/28/nitter<p>Nous venons d’ajouter un nouveau service, Nitter, disponible depuis l’adresse <a href="https://nitter.allella.fr/">nitter.allella.fr</a>.<br />
Mais nitter, c’est quoi ?
<!--more--></p>
<p>Nitter est une alternative libre au frontal (“site web”) de Twitter.
Nitter vous propose de suivre vos comptes Twitter préférés sans le pistage ni la publicité de Twitter, en optimisant ainsi la vitesse de navigation.
Il vous est ainsi possible de profiter de l’expérience de Twitter en passant par notre serveur, sans vous connecter directement à Twitter.</p>
<p>Dans le futur, le service devrait évoluer avec la gestion de compte, ce qui vous permettra d’avoir une timeline comme Twitter mais toujours sans compte Twitter.</p>
<p>Chez Allella, le service est déployé dans un container Docker.</p>
<p>Code source du projet : <a href="https://github.com/zedeus/nitter">https://github.com/zedeus/nitter</a></p>
<p>Image Docker : <a href="https://hub.docker.com/r/zedeus/nitter">https://hub.docker.com/r/zedeus/nitter</a></p>Nous venons d’ajouter un nouveau service, Nitter, disponible depuis l’adresse nitter.allella.fr. Mais nitter, c’est quoi ?Combien ça coûte ?2020-11-23T00:00:00+01:002020-11-23T00:00:00+01:00http://allella.fr/g%C3%A9n%C3%A9ralit%C3%A9s/2020/11/23/tarif<p>Si vous souhaitez participer à l’entretien du service, vous pouvez contribuer de manière libre et consciente, hum… c’est à dire ?
<!--more--></p>
<p>Vous désirez contribuer financièrement, mais vous n’avez aucune idée de la somme à verser ? Pour vous aiguiller un peu, il y a 2 éléments principaux à prendre en considération :</p>
<ul>
<li>les frais fixes</li>
<li>le temps passé</li>
</ul>
<h2 id="les-frais-fixes">Les frais fixes</h2>
<ul>
<li>Location du serveur : 38,39 € TTC / mois</li>
<li>Le nom de domaine <em>allella.fr</em> : 0,70 € / mois</li>
<li>Alimentation électrique du serveur de sauvegarde : 1 euro / mois</li>
</ul>
<h2 id="le-temps-passé">Le temps passé</h2>
<p>Entre la veille, l’application des mises à jour des services, l’alimentation du site web ainsi que les tests & diverses améliorations – nous y passons en moyenne 2h chacun par semaine, soit un total à nous deux d’une bonne quinzaine d’heures par mois.</p>Si vous souhaitez participer à l’entretien du service, vous pouvez contribuer de manière libre et consciente, hum… c’est à dire ?Candidature CHATONS2020-11-05T00:00:00+01:002020-11-05T00:00:00+01:00http://allella.fr/g%C3%A9n%C3%A9ralit%C3%A9s/2020/11/05/chatonisation<p>Nous retrouvant pleinement dans les valeurs promues par le collectif CHATONS, nous avons décider d’ouvrir un peu plus nos services et de candidater à la prochaine portée, onzième du nom.
<!--more--></p>
<p>CHATONS est le <strong>C</strong>ollectif des <strong>H</strong>ébergeurs <strong>A</strong>lternatifs, <strong>T</strong>ransparents, <strong>O</strong>uverts, <strong>N</strong>eutres et <strong>S</strong>olidaires. Ce collectif vise à rassembler des structures proposant des services en ligne libres, éthiques et décentralisés afin de permettre aux utilisateur⋅ices de trouver rapidement des alternatives respectueuses de leurs données et de leur vie privée aux services proposés par les GAFAM (Google, Apple, Facebook, Amazon, Microsoft). CHATONS est un collectif initié par l’association Framasoft en 2016 suite au succès de sa campagne Dégooglisons Internet.</p>
<p>Même si notre candidature n’est pas retenue, elle a au moins le mérite de nous amener à tendre vers des services de meilleure qualité. Nous pensions initialement bien faire les choses,
mais force est de constater qu’à la lecture des différents points de cette <a href="https://framagit.org/chatons/CHATONS/-/blob/master/docs/Liste_de_conformit%C3%A9_%C3%A0_la_Charte_CHATONS.pdf" target="_blank">liste de conformité</a> nous pouvions faire encore mieux.
En rentrant dans le cadre défini par cette charte, nous nous assurons de proposer des services fiables, sécurisés, ouverts, neutres & transparents.</p>
<p>La <a href="https://framagit.org/chatons/CHATONS/-/issues/161" target="_blank">candidature</a> est lancée, à suivre …</p>Nous retrouvant pleinement dans les valeurs promues par le collectif CHATONS, nous avons décider d’ouvrir un peu plus nos services et de candidater à la prochaine portée, onzième du nom.La sauvegarde chez Allella2020-10-06T00:00:00+02:002020-10-06T00:00:00+02:00http://allella.fr/technique/outils/2020/10/06/sauvegarde<p>Quand on met à disposition des services sur un serveur, une des autres étapes importantes c’est la sauvegarde ; souvent un point oublié mais qu’on regrette le jour d’un crash serveur !</p>
<!--more-->
<p>Chez Allella, chaque service est sauvegardé localement puis poussé toutes les nuits vers un serveur de stockage externe hébergé directement chez Julien (merci la fibre !). Nous n’avons pas cependant des terras de stockage, la rétention est donc assez faible (1j concernant le service de stockage des fichierss, 60j pour la sauvegardes des emails, des configurations serveur ou encore des sites hébergés).</p>
<p>Le serveur est un mini-pc basse consommation afin de limiter l’impact de la sauvegarde sur la planète. Petite particularité pour externaliser la sauvegarde, nous nous servons d’un bon vieux <a href="https://fr.wikipedia.org/wiki/Wake-on-LAN">Wake-on-LAN</a> afin de “réveiller” le serveur chez Julien. Celui-ci s’éteint une fois la sauvegarde synchronisée (~15min).</p>
<p>L’ensemble des scripts de sauvegarde utilisés sont disponibles en public sur <a href="https://git.allella.fr/allella/server-tools/src/branch/master/backup">notre forge</a>.</p>Quand on met à disposition des services sur un serveur, une des autres étapes importantes c’est la sauvegarde ; souvent un point oublié mais qu’on regrette le jour d’un crash serveur !Personnalisation de l’interface d’un Gitea Dockerisé2020-08-04T00:00:00+02:002020-08-04T00:00:00+02:00http://allella.fr/graphisme/outils/2020/08/04/customize_gitea<p>Parce que c’est toujours mieux de pouvoir adapter l’apparence d’un service selon son identité graphique, on regarde ici comment procéder sur une instance <strong>Gitea</strong> Dockerisée.
<!--more-->
Pour ceux qui souhaiteraient en faire de même sur une instance <em>classique</em>, cette <a href="https://docs.gitea.io/en-us/customizing-gitea/">documentation</a> devrait suffire.</p>
<h2 id="contexte">Contexte</h2>
<p>Nous prenons ici à titre d’exemple un container <strong>Docker Gitea</strong> dont le mappage des ports et le volume à utiliser pour la persistance des données sont définis, est lancé comme suit :</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ docker run -d --name=gitea -p 10022:22 -p 10080:3000 -v /var/lib/gitea:/data gitea/gitea:latest
</code></pre></div></div>
<h2 id="création-et-éditions-des-fichiers-de-surcharge">Création et éditions des fichiers de surcharge</h2>
<p>Il est nécessaire de créer 2 arborescences afin d’y stocker les modifications CSS d’une part, et de template d’autre part.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd /var/lib/gitea/gitea
$ mkdir -p public/css && touch public/css/custom.css
$ mkdir -p templates/custom && touch templates/custom/header.tmpl
</code></pre></div></div>
<h3 id="surcharge-css">Surcharge CSS</h3>
<ol>
<li>On ajoute nos règles CSS dans <code class="highlighter-rouge">public/css/custom.css</code> :</li>
</ol>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>body{
color: red;
}
footer {
display: none;
}
</code></pre></div></div>
<ol>
<li>On inclut la nouvelle CSS dans le template de header <code class="highlighter-rouge">templates/custom/header.tmpl</code> :</li>
</ol>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><link rel="stylesheet" href="/css/custom.css" media="all" />
</code></pre></div></div>
<h3 id="surchage-de-template">Surchage de template</h3>
<p>Prenons l’exemple de la page d’accueil :</p>
<ol>
<li>Récupération du template de la distribution <a href="https://github.com/go-gitea/gitea/raw/master/templates/home.tmpl">Gitea de base</a> dans <code class="highlighter-rouge">templates/home.tmpl</code> :</li>
</ol>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd /var/lib/gitea/gitea/templates
$ wget https://github.com/go-gitea/gitea/raw/master/templates/home.tmpl
</code></pre></div></div>
<ol>
<li>Modification du template :</li>
</ol>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<div class="home">
<div class="ui stackable middle very relaxed page grid">
<div class="sixteen wide center aligned centered column">
<div>
<img class="logo" src="/img/gitea-lg.png" />
</div>
<div class="hero">
<h1 class="ui icon header title">
This is a title
</h1>
<h2>And this is a subtitle...</h2>
</div>
</div>
</div>
</div>
</code></pre></div></div>
<p>Afin de mieux comprendre l’organisation des fichiers de template de Gitea, c’est par <a href="https://github.com/go-gitea/gitea/tree/master/templates">ici</a>.</p>
<h2 id="redémarrage-du-container">Redémarrage du container</h2>
<p>Un redémarrage est nécessaire pour la prise en compte des modifications apportées :</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ docker container restart <container_id>
</code></pre></div></div>Parce que c’est toujours mieux de pouvoir adapter l’apparence d’un service selon son identité graphique, on regarde ici comment procéder sur une instance Gitea Dockerisée.La sécurité @ allella2020-04-26T00:00:00+02:002020-04-26T00:00:00+02:00http://allella.fr/technique/s%C3%A9curit%C3%A9/web/outils/2020/04/26/security<p>Quand on met à disposition des services sur un serveur, une des étapes importantes c’est la sécurité ; ça passe par plusieurs points :<!--more--></p>
<ul>
<li>un serveur stable et à jour : on a fait le choix d’utiliser un système d’exploitation Linux, en l’occurrence Debian Buster (10),
en appliquant régulièrement <a href="https://lists.debian.org/debian-security-announce/">les mises-à-jour proposées</a></li>
<li>un système anti-ddos : OVH fait le taff pour nous :)</li>
<li>un système anti-bruteforce : fail2ban est notre ami pour plusieurs services internes (SSH, postfix, …)</li>
<li>une réflexion sur chaque service interne : installation depuis un paquet Debian, via Docker ou via les sources ? exposition sur Internet ?
communications internes sécurisées ?</li>
<li>de la veille régulière</li>
</ul>
<p>On utilise aussi des outils externes qui fonctionnent comme des mini-audits comme par exemple <a href="https://observatory.mozilla.org">Observatory de Mozilla</a>.</p>Quand on met à disposition des services sur un serveur, une des étapes importantes c’est la sécurité ; ça passe par plusieurs points :Email - autodiscover / autoconfig2020-04-26T00:00:00+02:002020-04-26T00:00:00+02:00http://allella.fr/technique/outils/2020/04/26/email_autoconfig<p>Je n’avais pas <del>eu</del> pris le temps de mettre en place les configurations nécessaires permettant aux différents clients
de messagerie (bureau / mobile) de récupérer automatiquement l’adresse du serveur, les ports, les protocoles, …
<!--more--></p>
<h2 id="ca-marche-comment-">Ca marche comment ?</h2>
<p>Lorsqu’on souhaite lire ses emails ailleurs que sur son navigateur Internet, on ouvre son client de messagerie préféré et
on suit les différentes étapes ; il y a alors 2 solutions, soit le client arrive à “récupérer” la configuration liée au
domaine de messagerie, soit vous êtes obligé de le faire manuellement ..</p>
<p>L’idée est bien de se faciliter la vie :) Mais comme tout n’est pas simple, chaque client utilise un des mécanismes suivants :</p>
<ul>
<li>une base de données ISPB gérée par Mozilla ;</li>
<li>deux fichiers de configuration mis à disposition en HTTPs ;</li>
<li>des entrées DNS sur la zone du domaine ;</li>
<li>la devinette, le client essaye de combiner smtp ou imap avec le nom de domaine de votre messagerie ;</li>
</ul>
<h2 id="on-met-quoi-en-place-">On met quoi en place ?</h2>
<p>Du coup pour pouvoir répondre aux demandes de tous les clients de messagerie, on va commencer par rajouter les entrées DNS suivantes :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@ IN MX 10 mail.allella.io.
autoconfig IN CNAME www
autodiscover IN CNAME www
_imaps._tcp SRV 0 1 993 mail.allella.io.
_submission._tcp SRV 0 1 465 mail.allella.io.
_autodiscover._tcp SRV 0 0 443 autodiscover.allella.fr.
</code></pre></div></div>
<p>On met à disposition aussi les fichiers de configuration en se basant sur <a href="https://github.com/gronke/email-autodiscover">cette proposition</a>.
On clone le repo dans un répertoire local sur le serveur, on adapte les fichiers pour sa configuration et on inclut ce bloc pour chaque domaine.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/etc/nginx/conf.d/local<span class="nv">$ </span><span class="nb">cat </span>autodiscover.conf
location ~ /<span class="o">(</span>?:a|A<span class="o">)</span>utodiscover/<span class="o">(</span>?:a|A<span class="o">)</span>utodiscover.xml <span class="o">{</span>
root /var/www<span class="p">;</span>
try_files /autodiscover/autodiscover.php <span class="o">=</span>404<span class="p">;</span>
fastcgi_pass unix:/run/php/php7.3-fpm.sock<span class="p">;</span>
fastcgi_param PATH_INFO <span class="nv">$path_info</span><span class="p">;</span>
fastcgi_param SCRIPT_FILENAME <span class="nv">$document_root$fastcgi_script_name</span><span class="p">;</span>
fastcgi_param SERVER_ADDR <span class="s2">""</span><span class="p">;</span>
fastcgi_param REMOTE_ADDR <span class="nv">$http_x_real_ip</span><span class="p">;</span>
<span class="o">}</span>
location ~ /mail/config-v1.1.xml <span class="o">{</span>
root /var/www<span class="p">;</span>
try_files /autodiscover/config-v1.1.xml <span class="o">=</span>404<span class="p">;</span>
<span class="o">}</span>
/etc/nginx/sites-enabled<span class="nv">$ </span><span class="nb">cat </span>allella.fr
server <span class="o">{</span>
listen 443<span class="p">;</span>
server_name allella.fr www.allella.fr<span class="p">;</span>
include /etc/nginx/conf.d/local/autodiscover.conf<span class="p">;</span>
<span class="o">[</span>...]
<span class="o">}</span>
</code></pre></div></div>
<p>Et voilà, une fois l’adresse ajoutée, Thunderbird trouve tout seul sa configuration :</p>
<p><img src="/assets/images/thunderbird_autoconfig.png" alt="thunderbird_autoconfig" /></p>Je n’avais pas eu pris le temps de mettre en place les configurations nécessaires permettant aux différents clients de messagerie (bureau / mobile) de récupérer automatiquement l’adresse du serveur, les ports, les protocoles, …Le logo Allella : « Tout est design »2020-04-08T00:00:00+02:002020-04-08T00:00:00+02:00http://allella.fr/graphisme/2020/04/08/logo<p>« Tout est design », ou encore « L’art est ce qui rend la vie plus intéressante que l’art ». <!--more-->Deux maximes
souvent prononcées par notre ami Cdrc Lchrz que nous souhaitons grandement remercier pour la création du logotype d’Allella.</p>
<p><img src="/assets/images/logo-2.svg" alt="logo" /></p>
<p>La description du projet autour d’une bière en terrasse en compagnie de cet adepte du « nécessaire et suffisant »,
et quelques secondes plus tard…le logo était né !</p>
<p><img src="/assets/images/logo-croquis.png" alt="logo" /></p>« Tout est design », ou encore « L’art est ce qui rend la vie plus intéressante que l’art ».L’outil Jekyll2020-04-03T00:00:00+02:002020-04-03T00:00:00+02:00http://allella.fr/outils/web/2020/04/03/jekyll<p>Dans la jungle des outils de gestion de blog, nous avons opté pour <a href="https://jekyllrb.com/">Jekyll</a>.
<!--more-->
C’est un générateur de site web statique. L’intérêt d’un tel outil est multiple :</p>
<ul>
<li>c’est <em>léger</em> : pas de base données à gérer ;</li>
<li>c’est <em>sécurisé</em> : pas de base données à gérer, on ne fait que lire et renvoyer des documents texte ;</li>
<li>c’est <em>simple</em> / <em>logique</em> / <em>écologique</em> : pourquoi regénérer une page à chaque fois que celle-ci est consultée si son contenu reste inchangé ?</li>
<li>la documentation est aux petits oignons, et même sans connaître ni <a href="https://www.ruby-lang.org">Ruby</a> ni le langage de templating <a href="https://shopify.github.io/liquid/">Liquid</a>, la prise en main est très rapide.</li>
</ul>
<h2 id="mise-à-jour-du-site">Mise à jour du site</h2>
<p>Pour le moment, le contenu généré grâce à la commande de build disponible est ensuite poussé sur notre serveur web avec un bon vieux <code class="highlighter-rouge">scp -r</code>.</p>
<p>Un jour bientôt nous ferons de l’intégration continue avec notre dépôt <del>GitLab</del> Gitea, l’occasion de faire un nouveau billet !</p>Dans la jungle des outils de gestion de blog, nous avons opté pour Jekyll.