Installation de Mastodon

Après avoir joué un peu avec le Mastodon et docker, j’ai eu envie de le déployer correctement. Je reprends l’article d’Agristan : https://angristan.fr/installer-instance-mastodon-debian-8/

1. Installation de Node.js

J’ai déjà ma propre installation, j’installe Yarn.

2. Installation de Redis

3. Installation de PostgreSQL

On crée un utilisateur et une base de données :

4. Création de l’utilisateur Mastodon

On va mettre en place l’environnement de Mastodon avec cet utilisateur.

Pour se loger :

5. Installation de Ruby
5.1. Installation des dépendances (en root) :

5.2. Installation de rbenv

On se connecte avec l’utilisateur mastodon

On se reconnecte pour prendre en compte le nouvel environnement

5.3. Installation de ruby-build

5.4. Installation de Ruby

Cela peut prendre quelques minutes ou quelques dizaines de minutes suivant la puissance de votre serveur.

6. Installation de Mastodon

Ensuite, on va utiliser la dernière version stable plutôt que le dépôt de développement continuellement mis à jour.

Note : $(git tag | tail -n 1) est une commande qui récupère automatiquement le dernier tag, c’est à dire le numéro de la dernière version.

Ensuite on installe le reste :

7. Configuration

Pour la configuration voir plus bas.

7.1. Mise en place de la base de données

7.2. Pré-compilation des fichiers CSS et JS

8. Mise en place des scripts Systemd

Pour fonctionner, Mastodon a besoin de 3 services. Pour pouvoir les gérer facilement, on va utiliser des scripts systemd.

À faire en root.

8.1. Processus web

Collez :

8.2. Processus en arrière-plan

Collez :

8.3. Processus pour l’API

Collez :

On active les services :

Et on démarre le bazar :

Si vous modifiez la configuration :

Pour vérifier que tout est en route :

9. Mise à jour de Mastodon

Il y a souvent des mises à jour de Mastodon, surtout en ce moment. Pour mettre à jour votre instance, c’est très simple.

Sauvegarder les fichiers et la base de données avant de mettre à jour.

Déjà, une petite mise à jour des paquets ne fait pas de mal :

On arrête tout :

On récupère les sources, et on met à jour Mastodon, les dépendances Ruby et npm, on régénère les assets et on met à jour la BDD.

Note : $(git tag | tail -n 1) est une commande qui récupère automatiquement le dernier tag, c’est à dire le numéro de la dernière version.

Aussi, toutes ces commandes ne sont pas forcément nécessaires à chaque fois, mais les exécuter ne vous fera pas de mal 😉 . Je vous recommande de lire les notes de versions avant de mettre à jour.

Et on redémarre tout :

10. Mise en place des crons

On édite le crontab :

Et on y ajoute :

11. Installation du reverse proxy Nginx

On installe Nginx stable depuis les dépôts officiels :

On ajoute la configuration :

Et on y met (à adapter, ici c’est pour mstdn.io) :

Avec une belle configuration HTTPS inclue. 🙂

Pour que tout ça soit fonctionnel on va générer les certificats correspondants au domaine.

 

 

Déployer une instance Mastodon sur Docker

Mastodon est un réseau social de micro-blogging libre et décentralisé. Il est une bonne alternative à Twitter. Voici comment tester un peu ses possibilités.

1. Prérequis

Avoir installé Docker.

2. Installation

Pour faire simple (bien que brutal) cloner le dépôt Github du projet.

Ensuite copier et éditer le fichier de configuration.

L’éditer et remplir les champs suivants :

Pour la configuration SMTP utiliser Mailgun ou tout autre serveur SMTP.

Ajouter l’option SMTP_DOMAIN ce qui vous évitera des heures de recherches.

Lancer ensuite un build

Puis générer la clé secrète

Si tout ce passe bien recopier la clé dans le fichier .env.production

Créer la base de données

Et compiler les assets

Vous pouver lancer le monstre :

Ou en mode démon :

Connectez vous sur le port 3000 : http://localhost:3000

3. Exemple Configuration

4. Administration

Créer un utilisateur avec l’interface de création de compte et le définir comme administrateur.

 

5. Sources

https://angristan.fr/installer-instance-mastodon-debian-8/

https://blog.lertsenem.com/creer-son-instance-mastodon-perso-vite-fait-mal-fait-fr.html

https://github.com/tootsuite/mastodon

https://korben.info/synchroniser-mastodon-twitter.html

Limiter l’accès de certains pays avec Nginx

Je suis récemment tombé sur un article décrivant comment bloquer l’accès de certains pays avec Nginx. J’ai donc décidé de bloquer les pays responsables de spams (commentaires indésirables). Je vais ici décrire la procédure sur Debian Jessie.

Tout d’abord vérifier que le module GOIP est  activé :

nginx -V

Si c’est le cas, la commande vous retournera quelque chose comme cela. C’est normalement la configuration par défaut sur Debian :

Installer GEOIP :

apt-get install geoip-database libgeoip1

Puis créer le fichier /etc/nginx/conf.d/geo.conf

Via cette configuration, la France et la Belgique (désolé amis frontaliés) sont bloquées. Je vous laisse le soin d’ajouter d’autres pays…

Dans la le fichier de configuration du site web concerné, ajouter :

Redémarrer le serveur :

Au besoin, il possible de mettre à jour la base de données GEOIP

A surveiller dans la durée dans vos logs. La manipulation fonctionne, je l’ai tester depuis un poste extérieur.

Source : JBNet.fr

Documentation Nginx : HttpGeoipModule

Liste des codes pays : ICI

 

Serveur Gigabyte BRIX

Mon Seagate Dockstar venant de rendre l’âme j’avais besoin d’une machine de remplacement.

Critères :

  • Basse consomation
  • Silencieux
  • Petit
  • Prix inférieur à 250€

Moi choix s’est porté sur le Gigabyte Brix GB-BXBT-J1900GB-XM33. Vendu 145€ chez LDLC, je lui ai ajouté un SSD Sandisk de 120Go et une barrette de 8Go (DDR3 lowvoltage) de mémoire (pour voir large). Un disque dur mécanique de 500Go (celui du Dockstar) vient conserver les données.

Gigabyte Brix J1900
Gigabyte Brix J1900

L’installation de Debian Jessie ne pose aucun problème. Niveau puissance c’est le jour et la nuit par rapport au Dockstar.

Pour le moment les services installés sont :

  • Serveur DNS
  • Serveur NGINX
  • MariaDb SQL
  • Subversion
  • Git
  • VPN

Celui-ci servira peut-être à terme de média center. Je dois encore faire quelques tests.