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

Installation et configuration de MongoDB sous Debian

MongoDB est une base de type NoSQL très en vogue. Cette dernière est orientée document, c’est à dire que vos données ne sont plus des tables relationnelles mais des documents.

1. Installation

J’ai directement installé la version disponible dans les paquets de Debian (v2.4.10).

Mais vous pouvez installer la dernière version en suivant ce lien.

2. Configuration

Ici la configuration peut changer avec votre version. Je détaillerai la configuration YAML plus tard.

Important

Changed in version 2.6: MongoDB 2.6 introduces a YAML-based configuration file format. The 2.4 configuration file format remains for backward compatibility.

bind_ip – L’adresse IP d’écoute. Par défaut 127.0.0.1  ce qui signifie que l’on ne peut se connecter que localement. Pour autoriser toutes les connexions, choisir 0.0.0.0 .

port – Le port d’écoute de mongod 27017  par défaut.

quiet – Indique à mongod de ne logger que les erreurs critiques.

logpath – Chemin vers le fichier de log ou mongod va écrire son journal.

logappend – A positionner à true pour indiquer à mongod de ne pas rincer le fichier log à chaque démarrage.

journal – A positionner à true pour être sur que mongod garantisse la consistance des données qu’il stocke.

auth – Authentification, voir le chapitre suivant sur la sécurité.

1. Sécurité

EN cours

Installation et quelques tricks autour de Docker sur Debian

1. Installation

En fonction des plateformes il existe plusieurs méthodes, j’ai choisi celle conseillée par la documentation.

Installer les dépendances :

Ajouter la clé GPG

Ajouter le dépot en fonction de votre configuration dans le fichier /etc/apt/sources.list.d/docker.list

Pour Jessie : deb https://apt.dockerproject.org/repo debian-jessie main

Pour les autres distributions, se fier à la documentation.

Enfin installer les paquets…

Pour permettre à un utilisateur autre que root de contrôler Docker

2. Configuration

Modifier les serveurs DNS

Installation de Docker Compose

Télécharger la version depuis GitHub

Et donner les droits d’éxécution :

Ajouter l’auto-completion pour le bash

3. Commandes

Lister les images disponibles

Stopper un conteneur détaché (docker run -d nom_conteneur)

Lister les conteneurs

 

 

Suite à venir

4. Sources

Installation

Nicolargo

https://docs.docker.com/engine/reference/run/

Let’s Encrypt et nginx

Afin de sécuriser mes différents sites j’utilisais un certificat standard non certifié. Puis est venu Let’s Encrypt qui permet d’avoir un certification toujours à jour et valide.

1. Installation

J’ai choisi une installation depuis GitHub :

git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt --depth=1

Pour mettre à jour l’outil un git pull est suffisant.

2. Configuration

J’ai utilisé un fichier de configuration pour lister mes domaines.

Ajouter la configuration pour vos sites Nginx

Génération des clés

Ajout du block serveur sécurisé dans vos sites Nginx

Génération des clefs utilisées pour les sessions et le Diffie-Helman

Ajouter la ligne suivante dans votre crontab -e

30 3 * * 0 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/letsencrypt/renewal.log

 

3. Sources

Grafikart

 

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.