Installer une instance de Mastodon sous Debian 8

Depuis quelques jours, il y a comme une « hype » autour de Mastodon. Pour poser les bases, si vous ne savez pas du tout de quoi je parle, Mastodon est un réseau social à la Twitter, mais qui est open-source, libre et décentralisé. Il se construit autour d’instances qui communiquent entre elles.

Pour en savoir plus sur Mastodon, voici quelques ressources pour commencer.

En français :

En anglais :

Ça fait 2 mois que je suis inscrit sur l’instance principale, mastodon.social, alors j’avoue que je n’ai pas trop compris pourquoi depuis quelques jours il y a une énorme vague d’inscriptions.

User Count Mastodon

Cette instance a environ 40 000 membres. En une semaine, le nombre d’inscrits a doublé alors qu’elle existe depuis des mois ! Elle est gérée par Eugen, le créateur de Mastodon. Il a dû mettre en place plusieurs serveurs pour soutenir la charge. D’ailleurs, je vous encourage à lui faire un don pour qu’il continue son travail. 🙂

C’est là qu’est le problème : c’est un réseau social décentralisé, mais pour l’instant la majorité des utilisateurs se concentrent sur une instance.

La solution ? Créer tout plein d’instances ! J’ai donc décidé d’écrire un tutoriel pour faciliter la tâche à ceux qui voudraient se lancer.

Je me base sur le guide officiel, mais je vais essayer de rendre ça plus complet, et en français. 🙂

Installation d’une instance sous Debian 8

Sachez que la marche à suivre est probablement la même sous Ubuntu, mais je n’ai pas testé.

Je vous conseille vivement de partir d’un serveur vide.

Pour ceux qui sont à l’aise avec Docker, il est possible de faire tourner Mastodon avec.

Installation des dépendances

À faire en root ou avec sudo.

On ajoute les backports pour ffmpeg.

echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
apt update && apt full-upgrade -y
apt-get install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file curl git

Installation de Node.js

curl -sL https://deb.nodesource.com/setup_4.x | bash -
apt install nodejs
npm install -g yarn

Installation de Redis

apt install redis-server redis-tools

Installation de PostgreSQL

apt-get install postgresql postgresql-contrib

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

su - postgres
psql
CREATE USER mastodon CREATEDB;
\q
exit

Création de l’utilisateur Mastodon

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

adduser --disabled-password --disabled-login mastodon

Pour se login :

su - mastodon

Installation de Ruby

Installation des dépendances (en root) :

apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

Installation de rbenv

On se connecte avec l’utilisateur mastodon

su - mastodon
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

On se reconnecte pour prendre en compte le nouvel environnement

exit
su - mastodon

Installation de ruby-build

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

Installation de Ruby

rbenv install 2.4.1

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

Installation de Mastodon

cd ~
git clone https://github.com/tootsuite/mastodon.git live
cd live

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.

git checkout $(git tag | tail -n 1)

Ensuite on installe le reste :

gem install bundler
bundle install --deployment --without development test
yarn install

Configuration

Passons à la configuration. 🙂

Tout se situe dans le fichier .env.production :

cp .env.production.sample .env.production
nano .env.production

Voici quelques lignes à modifier :

REDIS_HOST=localhost
DB_HOST=/var/run/postgresql
DB_USER=mastodon
DB_NAME=mastodon_production
LOCAL_DOMAIN=domainedevotreinstance.tld

Pour les 3 lignes suivantes, il faut générer un secret avec bundle exec rake secret :

PAPERCLIP_SECRET=
SECRET_KEY_BASE=
OTP_SECRET=

Ça va vous donner quelque chose du genre :

d250201baf31243159865836db1826b8cf1d442ea5cc37119908cadde0d160b3f248b6e47a8035c62d7fd9538fb3a5bcec6bc808040bc4995426a5c27b230420

Il faut en générer 3, donc.

Pour les lignes concernant SMTP, elles servent à envoyer des mails pour activer les comptes. Vous pouvez utiliser votre serveur mail personnel, Mailgun, d’autres services SMTP ou encore la boite mail de votre registrar associée à votre nom de domaine.

Profitez-en pour vérifier que votre hébergeur ne bloque pas SMTP… (vous sentez l’heure de perdue pour rien ? :D)

Enfin, choisissez la langue par défaut :

DEFAULT_LOCALE=fr

Mise en place de la base de données

RAILS_ENV=production bundle exec rails db:setup

Pré-compilation des fichiers CSS et JS

RAILS_ENV=production bundle exec rails assets:precompile

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.

Processus web

nano /etc/systemd/system/mastodon-web.service

Collez :

[Unit]
 Description=mastodon-web
 After=network.target

[Service]
 Type=simple
 User=mastodon
 WorkingDirectory=/home/mastodon/live
 Environment="RAILS_ENV=production"
 Environment="PORT=3000"
 ExecStart=/home/mastodon/.rbenv/shims/bundle exec puma -C config/puma.rb
 TimeoutSec=15
 Restart=always

[Install]
 WantedBy=multi-user.target

Processus en arrière-plan

nano /etc/systemd/system/mastodon-sidekiq.service

Collez :

[Unit]
 Description=mastodon-sidekiq
 After=network.target

[Service]
 Type=simple
 User=mastodon
 WorkingDirectory=/home/mastodon/live
 Environment="RAILS_ENV=production"
 Environment="DB_POOL=20"
 ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 20 -q default -q mailers -q pull -q push
 TimeoutSec=15
 Restart=always

[Install]
 WantedBy=multi-user.target

Processus pour l’API

nano /etc/systemd/system/mastodon-streaming.service

Collez :

[Unit]
 Description=mastodon-streaming
 After=network.target

[Service]
 Type=simple
 User=mastodon
 WorkingDirectory=/home/mastodon/live
 Environment="NODE_ENV=production"
 Environment="PORT=4000"
 ExecStart=/usr/bin/npm run start
 TimeoutSec=15
 Restart=always

[Install]
 WantedBy=multi-user.target

On active les services :

systemctl enable /etc/systemd/system/mastodon-*.service

Et on démarre le bazar :

systemctl start mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service

Si vous modifiez la configuration :

systemctl restart mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service

Pour vérifier que tout est en route :

systemctl status mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service

Tout doit être au vert :

Services systemd Mastodon

Si vous avez une erreur et que vous voulez voir les logs :

journalctl -u mastodon-<nomduservice>

Mise à jour de Ruby

Il est possible qu’une mise à jour de Mastodon demande une nouvelle version de Ruby. Lisez bien les notes de mise à jour. 😉

Dans ce cas là, pour installer la version de Ruby en question (remplacez X.X.X par la version de ruby) :

su - mastodon
rbenv install X.X.X
rbenv global X.X.X
gem install bundler --no-ri

Et procéder ensuite à la mise à jour de Mastodon.

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 :

apt update && apt full-upgrade

On arrête tout :

systemctl stop mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service

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.

su - mastodon
cd live
git fetch
git checkout $(git tag | tail -n 1)
bundle install
npm upgrade yarn
yarn install
RAILS_ENV=production bundle exec rails assets:clean
RAILS_ENV=production bundle exec rails assets:precompile
RAILS_ENV=production bundle exec rails db:migrate
exit

Et on redémarre tout :

systemctl start mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service

Mise en place des crons

On édite le crontab :

crontab -e -u mastodon

Et on y ajoute :

@daily cd /home/mastodon/live && RAILS_ENV=production /home/mastodon/.rbenv/shims/bundle exec rake mastodon:daily

Installation du reverse proxy Nginx

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

wget -O - https://nginx.org/keys/nginx_signing.key | apt-key add -
echo "deb http://nginx.org/packages/debian/ $(lsb_release -sc) nginx" > /etc/apt/sources.list.d/nginx.list
apt update
apt install nginx

On ajoute la configuration :

nano /etc/nginx/conf.d/mastodon.conf

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

map $http_upgrade $connection_upgrade {
 default upgrade;
 '' close;
}
server {
 listen 80;
 listen [::]:80;
 server_name www.mstdn.io mstdn.io;
 # On redirige tout en HTTPS
 return 301 https://mstdn.io$request_uri;

 access_log /dev/null;
 error_log /dev/null;
}

server {
 listen 443 ssl http2;
 listen [::]:443 ssl http2;
 server_name www.mstdn.io mstdn.io;

 # Ne s'applique pas si vous utilisez un sous-domaine
 if ($host = www.mstdn.io) {
  return 301 https://mstdn.io$request_uri;
 }

 access_log /var/log/nginx/mstdn-access.log;
 error_log /var/log/nginx/mstdn-error.log;

 # HTTPS
 ssl_certificate /etc/letsencrypt/live/www.mstdn.io/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/www.mstdn.io/privkey.pem;
 ssl_trusted_certificate /etc/letsencrypt/live/www.mstdn.io/chain.pem;
 ssl_protocols TLSv1.2;
 ssl_ecdh_curve prime256v1;
 ssl_ciphers EECDH+AESGCM:EECDH+AES;
 ssl_prefer_server_ciphers on;
 resolver 80.67.169.12 80.67.169.40 valid=300s;
 resolver_timeout 5s;
 ssl_session_cache shared:SSL:10m;
 add_header Strict-Transport-Security "max-age=15768000";
 
 add_header Referrer-Policy "strict-origin-when-cross-origin";
 #Domaine à apdater à la fin
 add_header Content-Security-Policy "default-src 'none'; font-src 'self'; media-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self'; img-src 'self' data:; connect-src 'self' wss://mstdn.io; frame-ancestors 'none';";

 root /home/mastodon/live/public;

 location / {
  try_files $uri @proxy;
 }

 location @proxy {
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto https;
  proxy_pass_header Server;
  proxy_pass http://127.0.0.1:3000;
  proxy_buffering off;
  proxy_redirect off;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection $connection_upgrade;
 }

 location /api/v1/streaming {
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto https;
  proxy_pass http://127.0.0.1:4000;
  proxy_buffering off;
  proxy_redirect off;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection $connection_upgrade;
 }

 error_page 500 501 502 503 504 /500.html;
}

Avec une belle configuration HTTPS inclue. 🙂

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

Génération des certificats Let’s Encrypt

On installe le client depuis les backports :

apt install -t jessie-backports letsencrypt

On arrête Nginx pour libérer le port 80 :

service nginx stop

On génère le certificat :

letsencrypt certonly -d www.domaine.tld -d domaine.tld --agree-tos -m [email protected] --rsa-key-size 4096 --standalone

N’oubliez pas de faire pointer le/les sous domaine(s) correspondant(s) sur l’IPv4/v6 de votre serveur.

Et on démarre Nginx :

service nginx start

Et voilà, votre instance de Mastodon devrait être accessible via votre nom de domaine ! 😀

Création du compte administrateur

Vous arrivez donc sur cette page :

Landing Page Mastodon

Créez-vous un compte, et si tout se passe bien, vous allez recevoir votre mail.

Petit conseil en passant, essayez de créer des comptes avec une adresse de mail-tester.com, et suivez ses conseils pour améliorer votre note, ça évitera que vous alliez dans les spams.

Une fois votre compte créé, devenez administrateur (dans le dossier live, en tant que mastodon) :

RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=angristan

Et… vous êtes prêts à découvrir le fediverse ! 😀

Votre administration se trouve sur https://votreinstance.tld/admin/

Administration Mastodon

Mon instance

Comme dit précédemment, l’instance principale, mastodon.social, est surchargée. D’ailleurs, au moment ou je finis mon article, Eugen vient de fermer les inscriptions.

D’ailleurs, je vous encourage à le soutenir sur Patreon, pour d’une part lui permettre de travailler à plein temps sur Mastodon et d’autre part de lui permettre de scaler son instance.

Ceci étant dit, vous pouvez vous inscrire sur tout un tas d’autres instances. Des listes sont disponibles ici et .

Moi je fais tourner ma propre instance : mstdn.io 😀

Voici les stats au moment de la publication de cet article :

Stats mstdn.io

Donc bien sûr, du bon chiffrement des familles, de l’IPv6, et un serveur plutôt costaud derrière (Xeon, SSD). Pour l’instant, les inscriptions sont ouvertes, je verrai en fonction de la charge, je ne sais pas encore combien ça consomme en fonction du nombre d’utilisateurs. Je vais ajouter quelques informations sur la page about, avec les règles, des petits graphiques, et puis combien ça coute.

Edit : C’est fait !

Je vous invite à aller dessus, bien sûr, mais le principe de Mastodon c’est que y’a tout plein d’instances disponibles. Faites votre choix, ou montez la votre ! 😀

Aussi, je n’ai pas encore vu de tutoriel de ce genre passer, donc n’hésitez pas à vous en inspirez et à parler de Mastodon un peu partout autour de vous. C’est comme ça que ça va marcher !

Allez, on se retrouve sur Mastodon : [email protected] 😀

PS : Boostez mon pouet !


Image de une : b_cavello sur Mastodon

Dernière modification le 18 avril 2017.

Angristan

Stanislas - 17 ans - Lycéen passionné d'informatique, de technologie et de high-tech. Sysadmin junior, adepte des logiciels libres, de GNU/Linux et d'Android. Music addict.

Poster un Commentaire

191 Commentaires sur "Installer une instance de Mastodon sous Debian 8"

avatar
colorfield
Visiteur

Excellent tuto, merci d’avoir partagé !

Denis
Visiteur

Whaa ! parfait tuto merci beaucoup !

bobdinar
Visiteur
bobdinar

Trop daubesque mastodon, un repère d’extrême gauche et de lobbies LGBT…

Torrone
Visiteur
Torrone

Merci pour ce tutoriel très complet.

Je n’ai jamais utilisé nginx, j’ai utilisé la configuration en exemple en remplaçant le nom de domaine par le mien mais « nginx -t » me revoie ne nombreuse erreurs :

[emerg] invalid parameter « http2 » in /etc/nginx/conf.d/mastodon.conf:17
[warn] duplicate value « TLSv1.2 » in /etc/nginx/conf.d/mastodon.conf:33
« ssl_prefer_server_ciphers » directive is duplicate in /etc/nginx/conf.d/mastodon.conf:36
[emerg] « location » directive is not allowed here in /etc/nginx/conf.d/mastodon.conf:48

etc…

Je n’arrive pas à m’en sortir avec les indications d’ici https://angristan.fr/configurer-https-nginx/ ou trouvées ailleurs.

Quelles sont exactement les portions de la configuration qui ne peuvent être réutilisés telles quelles ?

Torrone
Visiteur
Torrone

Après suppression des arguments HTTP2 (ça ne fonctionne pas sur ARM apparemment) et redémarrage de la machine, ça semble fonctionner.
Au tour des mails maintenant !

Pierre-Yves Merle
Visiteur

Bonjour,

J’aimerais configurer mon instance Mastodon avec Apache (j’ai plusieurs autres sites web et je ne peux pas me permettre pour l’instant de migrer sur Nginx) j’ai donc tenté d’adapter la configuration Nginx du tuto sur Apache :

DocumentRoot /home/mastodon/live/public
ServerAdmin [email protected]
ServerName social.mytechir.fr
ProxyPreserveHost On
ProxyRequests On

ProxyPass http://127.0.0.1:3000/
ProxyPassReverse http://127.0.0.1:3000/

ProxyPass http://127.0.0.1:4000/
ProxyPassReverse http://127.0.0.1:4000/

SSLCertificateFile /etc/letsencrypt/live/social.mytechir.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/social.mytechir.fr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
CustomLog /var/log/apache2/mastodon/access.log combined
ErrorLog /var/log/apache2/mastodon/error.log

(J’ai bien mis LOCAL_HTTPS = false sans le .env.production)

Au début je n’avais pas mis le Proxy pour le port 4000 et l’adresse /api/v1/streaming ne répondais pas. Après l’avoir configuré j’accédais bien au proxy de l’API sur le port 4000 avec cet url.

Cependant je ne vois toujours pas le fil global sur mon instance et les personnes que je mentionne sur d’autres instances ne me voient pas non plus.
De plus quand on essaye de me mentionner depuis une autre instance avec mon @ complet une erreur 500 apparaît en bas à gauche de la page.
Des idées ?

Merci 🙂

Pierre-Yves Merle
Visiteur

Problème résolu ! 😀

Solution:
Activer les mods apache:
– headers (pour le local HTTPS)
– proxy_wstunnel (pour utiliser les websockets au lieu du HTTP pour l’API)

Et enfin pour le vhost :

DocumentRoot /home/mastodon/live/public
ServerAdmin [email protected]
ServerName social.mytechir.fr
ProxyPreserveHost On
ProxyRequests Off
RequestHeader set X_FORWARDED_PROTO ‘https’

ProxyPass http://127.0.0.1:3000/
ProxyPassReverse http://127.0.0.1:3000/

ProxyPass ws://127.0.0.1:4000
ProxyPassReverse ws://127.0.0.1:4000

SSLCertificateFile /etc/letsencrypt/live/social.mytechir.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/social.mytechir.fr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
CustomLog /var/log/apache2/mastodon/access.log combined
ErrorLog /var/log/apache2/mastodon/error.log

Bon courage pour votre install 🙂

citizenz7
Visiteur

Le dernier add-header (#Domaine à apdater à la fin etc.) de la conf nginx me provoque un écran « blanc ». Plus rien d’afficher sur Mastodon, juste le fond gris… Si je désactive dans la conf nginx, tout est OK.
Quelle est l’importance de cette ligne ?

Samuel
Visiteur
Samuel

Bonjour. Me again :-[

En suivant la procédure publiée le 12/04 et permettant de sélectionner la version v1.1.1, je bloque à « bundle install –deployment –without development test » parce que je reçois des erreurs. Faut-il s’en inquiéter ? En effet, j’ai une instance qui n’upload pas du tout. Peut-être serait-ce la raison ?

warning [email protected]: The engine « browser » appears to be invalid.
warning [email protected]: The platform « linux » is incompatible with this module.
info « [email protected] » is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies…
warning « [email protected] » has incorrect peer dependency « [email protected] ».
warning « [email protected] » has incorrect peer dependency « @kadira/storybook@^1.35.1 ».

bruno
Visiteur
bruno

bonsoir à tous,
plus de questions, plus de problèmes.
je voulais par ce commentaire juste remercier Angristan pour ce tuto juste parfait.
après un test sur virtualbox ( pas complet pour les tests )
achat d’un vps chez OVH et un nom de domaine
installation du bazar
tout cela en 48 heures sans être un pro de linux

un grand merci à toi
bruno

bruno
Visiteur
bruno

Une de plus sur le réseau !

au fait on bloque comment les inscrisptions ( pendant les tests ) merci

bruno
Visiteur
bruno

bonjour,

j’ai une erreur à la fin lors du lancement de ngnix :

[email protected]:/etc/nginx# service nginx start
Job for nginx.service failed. See ‘systemctl status nginx.service’ and ‘journalctl -xn’ for details.

si quelqun peux m’aider, merci

citizenz
Visiteur

Pour la mise à jour de Ruby en 2.4.1, la méthode proposée ici n’a pas suffit. J’avais encore une erreur à propos de la version 2.3.1…

Il m’a fallu faire quelques étapes en plus :
cd .rbenv/plugins/
rm -rf ruby-build/
rbenv install 2.4.1
gem install rails
bundle install

sedryk
Visiteur
sedryk

Suite à la mise a jour de ruby j’ai une erreur sur la commande « bundle install »
the bundle command exists in these ruby versions : 2.3.1

citizenz
Visiteur
sedryk
Visiteur
sedryk

Ca passe merci de ton aide 🙂

Bruno
Visiteur
Bruno

Bonjour,
Très bon tuto, fait en test au virtualbox
Demain je passe en prod.

Pas tout compris pour choisir la version stable ( numéro de versions ), c.est automatique lors du téléchargement ?

Merci par avance

jellium
Visiteur
jellium

Comment avez-vous configuré nginx pour éviter le passage avec letsencrypt et parvenir à accéder à l’instance dans votre VM ?

Blog-de- Michel
Visiteur

Pour la mise à jour de Mastodon il faut installer rbenv install 2.4.1

Samuel
Visiteur
Samuel

Bonjour,
Je suis ennuyé car je ne connais pas bien Git et me demandais si ce tuto récupérait bien une version stable de Mastodon lors de sa première installation.
En effet, j’ai tenté par deux fois l’installation en suivant scrupuleusement le déroulé mais j’ai notamment eu des erreurs de compilations la première fois (ai dû installer Ruby 2.4.1 au lieu de 2.3.1) puis la seconde fois, n’ai pas pu valider l’utilisateur en tant qu’administrateur (erreur dans la base de données).
Merci d’avance

Nicolas Vergnes
Visiteur

La nouvelle version de mastodon offre les propriétés
SMTP_AUTH_METHOD
SMTP_OPENSSL_VERIFY_MODE
SMTP_ENABLE_STARTTLS_AUTO
ton serveur SMTP a probablement un certificat non trusté par ton instance mastodon qui envoie les emails ?

sedryk
Visiteur
sedryk

J’ai pas trouver de doc sur les nouvelles proprietes. Il y en à sur le git ?

Ayredfr
Visiteur
Ayredfr

Je vais devenir fou… J’ai réussi toutes les étapes, sauf celle de l’envoi de mails… Pourtant je pensais que mes réglages étaient bon…

Quelqu’un pourrait me filer un coup de main svp ? 🙁

SMTP_SERVER=ns0.ovh.net
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=**********
[email protected]

Pasta Gringo
Visiteur
Pasta Gringo

Je vais aussi devenir fou avec les paramètres OVH …

J’ai plus ou moins tout essayé mais rien ne fonctionne, j’ai une erreur :
« WARN: Net::ReadTimeout: Net::ReadTimeout »

Mes paramètres SMTP du .env.production :

SMTP_SERVER=ssl0.ovh.net
SMTP_PORT=465
[email protected]
SMTP_PASSWORD=mypassword
[email protected]
SMTP_DELIVERY_METHOD=smtp
SMTP_AUTH_METHOD=login
#SMTP_OPENSSL_VERIFY_MODE=peer
SMTP_ENABLE_STARTTLS_AUTO=true

Quelqu’un a t’il pu faire fonctionner les mails avec OVH ?

bschalck
Visiteur

tip top tuto.
J’ai pu créer mon instance @home.
Mais elle est seule. JE ne vois pas les flux publics, c’est assez bizarre.
Ils trouvent bien les utilisateurs Mastodon distant , je les suis, mais je ne vois rien de leur flux distant.

Une idée ????

digi
Visiteur
digi

Intéressant ce petit tuto 🙂 Comment as-tu réussi à avoir autant d’inscription ?

sedryk
Visiteur

Merci pour le tuto 😉
Il me reste juste un probleme pour l’envoi des mails rien n’arrive chez mes utilisateurs (donc pas d’inscription possible 🙁 ). Les erreurs d’envoi de mail son logué ou ? j’ai rien trouver.
Sinon tous roule 😉

Jeff
Visiteur
Jeff

pour les erreurs fait un :
tail -f /var/log/syslog
moi j’ai des problèmes SSL…

Jeff
Visiteur

Merci pour ce tuto. Il y a des erreur de simple quote dans les lignes :
echo ‘export PATH= »$HOME/.rbenv/bin:$PATH »
eval « $(rbenv init -) »‘ >> ~/.bash_profile

Blog-de- Michel
Visiteur

Donc j’ai fait plusieurs essai et mon incidence n’est pas connecter aux autre. Quand je fait des recherche de compte j’ai rien et quand je cherche mon compte sur une autre instance je ne me trouve pas !
J’ai pas trouvé d’erreur dans les log. Je ne vois pas trop ou chercher…
Si vous avez une idée
merci

zaclys
Visiteur

bonjour,

encore moi 🙂

sauf erreur la config ssl est trop stricte : on a des pb de compatibilité tls et cipher avec l’app android

cf https://mozilla.github.io/server-side-tls/ssl-config-generator/ en cochant nginx, intermediate, et les bonnes versions pour avoir une config plus « compatible » (tout en gardant le niveau A+ au test Qualys ssl)

modifier la config nginx en conséquence puis (sous root) :

mkdir /etc/nginx/ssl
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

test de config :
nginx -t

puis :
nginx -s reload

Blog-de- Michel
Visiteur

Et voilà mastodon.blog-de-michel.fr
Et ça marche !!! connexion avec mon serveur de mail OK. Plus qu’a utiliser 🙂
Merci

Blog-de- Michel
Visiteur

Bon je me suis réjouit trop vite sauf que dans la recherche il ne trouve jamais rien à par moi …
Je ne dois pas être connecté au reste du mode 🙂

korean
Visiteur
korean

Lors de l’utilisation de cette commande RAILS_ENV=production bundle exec rails assets:precompile j’ai cette erreur qui s’affiche :
BrowserifyRails::BrowserifyError: Unable to run node_modules/.bin/browserify. Ensure you have installed it with npm.

Je ne comprends pas pourquoi, quelqu’un a une idée siouplait?

Toujours bloqué après 3 reinstall 🙁

Francine
Visiteur
Francine

Pour les gros débutants comme moi, le tuto à l’air complet à un détail prés: as tu un lien vers un serveur à louer? Parce que c’est la seule chose qui me chiffonne, j’ai peur de louer un serveur qui sera au final pas adapté :/

Blog-de- Michel
Visiteur

Bonjour,
A l’installation de ruby j’ai cette erreur :
/home/mastodon/.rbenv/libexec/rbenv-init: ligne 131: impossible de créer un fichier temporaire pour le « here-document » : Aucun espace disponible sur le périphérique
Après cette commande : cd ~/.rbenv && src/configure && make -C src

Une idée ?
Merci

bleh
Visiteur
bleh

Tu devrais update la partie mise à jour pour les cas où les dépendances ruby changent, c’est déjà arrivé. 🙂

gwenlune
Visiteur
gwenlune

euh… c’est à dire ???

gwenlune
Visiteur
gwenlune

Je suis presque au bout, mais j’ai une erreur dans la création de base dans postgresql : ActiveRecord::StatementInvalid: PG::UndefinedObject: ERREUR: le type « json » n’existe pas

je suis en debian Jessie et tout semble installé comme il faut… Une idée ?

gwenlune
Visiteur
gwenlune

Je me réponds à moi même : solution trouvée, j’avais en fait un serveur 9.1 de postgres qui tournait en même temps qu’un serveur 9.4 (issu d’une ancienne migration debian) et bien sûr ça allait sur la version 9.1

citizenz
Visiteur

Un p’tit tuto sur Mastodon user count bot ? Ca serait bien utile …

afrobot
Visiteur
afrobot

Hello,
Merci beaucoup pour ce tuto.
Moi qui suis une bille j’ai réussi du premier coup, enfin sauf pour l’envoi du mail, et les images qui ne s’affichent pas.

Colin
Visiteur

Savez-vous si des discussions sont déjà lancés concernant des transferts/migrations d’instance ?
On va pas se leurrer, on va vite être dépassé par l’espace disque avec toutes les synchronisations et follow d’autres instances ? (personnellement je suis encore large de chez large mais je préfére anticiper).
J’imagine que la chose a déjà été prévue ? (genre export zip des datas, réinstallation propre sur un nouveau serveur et import du zip ?).

f4b1
Visiteur

Merci pour ce tuto, cela m’a permis d’installer mon instance sans soucis !

citizenz7
Visiteur

Depuis quelques heures, sur mon instance https://spacejerk.fr, j’ai de plus en plus de « 500 – Internal server error » qui s’affichent lorsque je veux Follow quelqu’un… ???

citizenz
Visiteur

Cela semble résolu avec un update de Mastodon réalisé ce matin…

korean
Visiteur
korean

Lors de l’utilisation de cette commande RAILS_ENV=production bundle exec rails assets:precompile j’ai cette erreur qui s’affiche :
BrowserifyRails::BrowserifyError: Unable to run node_modules/.bin/browserify. Ensure you have installed it with npm.

Je ne comprends pas pourquoi, quelqu’un a une idée siouplait?

toto
Visiteur

Pour ceux qui ont une erreur sur Gemfile lors de la commande bundle install –deployment –without development test il faut editer le fichier Gemfile et remplacer tous les replace: par :replace =>

Nekrofage
Visiteur

Hello,
En complément avec ton tuto, voici mon petit guide sur l’installation de Mastodon, en espérant que cela puisse aider du monde 😉
http://rockstarninja.info/installation-dune-instance-mastodon/

Boyatzon
Visiteur
Boyatzon

Merci mille fois pour ce tuto parfait ! 🙂
J’ai juste un petit souci : j’ai interagi avec des comptes provenant d’autres instances, mais la federated timeline affiche seulement les toots locaux… Pourtant, sur l’about de mon instance, ça me dit qu’elle en est connectée à 4 autres… Quelqu’un saurait comment résoudre ce problème ? Merci 🙂

Colin
Visiteur

je me pose aussi cette question, tout se joue au niveau du cron qui concerne l’api streaming ? (lancé toutes les heures dans ce tuto)

Boyatzon
Visiteur
Boyatzon

c’est ce que je me disais, mais elles ont l’air de fonctionner…

Colin
Visiteur
Colin

Bravo et encore merci pour ce tuto. (un petit soucis de Postgresql, mais retaper les commandes a suffit pour faire disparaître le message d’erreur).

Et comme dirait l’autre, en voilà un de plus : https://mastodonfrance.com
@+ dans vos toots.

AxelTerizaki
Visiteur

Excellent tutorial; Je me suis débrouillé avec le guide de production en fait, avant de tomber ici ce qui m’a renseigné sur le service de streaming.

Par contre j’ai une question tu vas peut-être pouvoir m’aider : mon instance fonctionne très bien mais j’ai l’impression de ne pas pouvoir envoyer de messages aux autres instances, pareil on voit pas les avatars des gens quand on les cherche sur d’autres instances. Y’a un truc qui m’échappe.

Après je suis pas en direct, j’ai mis mastodon dans une VM pour pas saloper mon dédié mais normalement ça fonctionne très bien pour tout le reste…

jeanjazz
Visiteur
jeanjazz

Bonjour, J’ai tout suivi à la lettre mais quand je tape la commande : [email protected]:~/live$ bundle install –deployment –without development test

tout un tas de trucs s’installent mais tout d’un coup j’ai cette erreur :

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /home/mastodon/live/vendor/bundle/ruby/2.3.0/gems/pg-0.18.4/ext
/home/mastodon/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20170406-7657-1385qvw.rb extconf.rb
checking for pg_config… yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
checking for libpq-fe.h… no
Can’t find the ‘libpq-fe.h header
*** extconf.rb failed ***

est-ce dû à un conflit de versions ruby ?

Chipie678
Visiteur

Hello j’ai eu le même soucis que toi après quelque recherche j’ai du installer « libpq-dev » en root et relancer le bundle install et tout fonctionne

jeanjazz
Visiteur
jeanjazz

en effet ça a marché merci !

Chipie678
Visiteur

🙂 Aucun soucis !

Olivier
Visiteur

Super doc pour installer Mastodon ! Je coince cependant sur la config du mail. Je suis en local (127.0.0.1) sur port 25 et impossible que le mail parte. Une idée ? Comment as-tu configuré ton mail ?

Olivier
Visiteur

Problème résolu en suivant : https://github.com/tootsuite/mastodon/issues/772
et en passant de :smtp à :sendmail dans ~/live/config/environments/production.rb ligne 107.

Ça mériterait de mettre à jour ton tuto pour ceux qui, comme moi, ont un mail local qui relaie vers un autre serveur.

Erreur32
Visiteur

config.action_mailer.delivery_method = :sendmail
A la place de
config.action_mailer.delivery_method = :smtp
dans config/environments/production.rb

Olivier
Visiteur

As-tu suivi le tuto d’Angristant de bout en bout ? Si oui, cela devrait fonctionner avec un serveur type postfix en relay local.

citizenz
Visiteur

Une fois l’instance ouverte, comment elle se « connecte » avec les autres instances ?
Notamment, comment se « remplit » le fil public ?

Pinkilla
Visiteur

« Connections between instances are established by users following each other. Via such followings all these instances can (at least in principle) be joined into one compound structure or network of self-contained instances. This is called the Federation. GNU social/StatusNet is structured in such a way that there needs to be only one following of a user a from instance A to a user b from instance to B to make b visible to everybody in instance A via The Whole Known Network. (See below on the Three Timelines.) The Whole Known Network is the wider network of instances as seen by GNUsocial.de. It looks different on, say, loadaverage, because on loadaverage there are different followings to remote instances. »

Extrait de https://gnusocial.de/doc/faq#faq-2

Comme je le comprends, ça ne fédère pas les instances mais les «gens dans les instances». J’ai bon ? 

Nyro
Visiteur
Nyro

Très bonne question… j’ai le même probleme

Nyro
Visiteur
Nyro

Hello

J’ai des problèmes avec le SMTP, y’a un truc a faire pour appliquer la nouvelle config ?

Hixe
Visiteur
Hixe

Nickel, mon instance tourne au poil !
Maintenant va falloir que je comprenne pourquoi j’arrive pas à charger de média (avatars, etc) 😀

Daniel Fages
Visiteur

Tuto parfait !
Merci

inc002
Visiteur
inc002

Je suis à bout touchant sur Debian 7 avec quasiment l’ensemble des problèmes des commentaires : pour ruby il manque rbenv global 2.3.1 && rbenv rehash après l’install et pour le problème de connexion à postgresql il faut passer à trust le param de pg_hba.conf (ici : http://stackoverflow.com/questions/33951528/fatal-peer-authentication-failed-for-user-rails) et service postgresql restart

J’ai réussi à m’enregistrer et j’ai ceci dans les logs « PG::UndefinedTable: ERROR: relation « web_settings » does not exist » je vais tenter un update

citizenz
Visiteur

Tout fonctionne… sauf l’envoi du mail de confirmation.
Je deviens chèvre ! 😉
J’ai essayé (presque) tout, différents serveurs, etc. Mais le mail de confirmation n’est jamais envoyé.
Quelqu’un aurait une piste ?

Nekrofage
Visiteur

Pour une boite mail chez Gandi, j’utilise ca :
SMTP_SERVER=mail.gandi.net
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=Mot2P@$$e
[email protected]

Nekrofage
Visiteur

Salut,
Dans la section « On se reconnecte pour prendre en compte le nouvel environnement », il est possible de faire : source ~/.bash_profile

xhark
Visiteur

Super tuto, bravo ! inscris aussi depuis la semaine dernière sur mastodon.social 🙂 L’interface est sympa mais c’est un énième twitter like… donc une fois la nouveauté passée pas sûr que ça dure dans le temps

wpDiscuz