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 :
- Mastodon, qu’est-ce que c’est ?
- Mastodon : mais en fait, comment ça marche ?
- Mastodon : tabula rasa sur le microblogging
- Welcome to Mastodon
- Découvrez Mastodon, un clone de Twitter libre, open source et décentralisé
- Mastodon Social
- tvn – Mastodon
- Le réseau social Mastodon, un « Twitter plus proche de l’esprit originel »
- Ce que Mastodon nous dit de Twitter
- Débuter sur Mastodon : 9 questions pour tout comprendre au réseau social décentralisé
En anglais :
- Le site officiel
- The power to build communities, a response to Mark Zuckerberg
- Learning from Twitter’s mistakes
- Two reasons why organizations should switch to self-hosting social media
- Welcome to Mastodon
- Le GitHub du projet
- La liste des instances
- Des statistiques sur les instances à partir du lien ci-dessus
- User guide
- Mastodon.social is an open-source Twitter competitor that’s growing like crazy
Ç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.
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. 🙂
Edit 2018: La documentation est désormais complète et bien foutue, et est potentiellement plus à jour que ce tutoriel, que je ne maintiens plus. Si vous parlez anglais, merci de préférer le lien au dessus.
Sommaire
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 pkg-config libprotobuf-dev protobuf-compiler
Installation de Node.js
curl -sL https://deb.nodesource.com/setup_6.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.5.0 rbenv global 2.5.0
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.
Pour cela regardez sur cette page quelle est la dernière version stable.
git checkout vX.x.x
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 RAILS_ENV=production
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.
Ensuite générer les clé pour les notifications Push avec RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key
Vous devriez obtenir quelque chose comme ceci, copiez-le dans .env.production
VAPID_PRIVATE_KEY=arSiUfz1Gj7c6itsvGWQ-P6owXGOynsBgZ8phEveaTk= VAPID_PUBLIC_KEY=BEX6bhfung_oXFV6WBEiKs7-LheNmEIAIkf-gLP7x40Vrh8fise6-XduD-EclCqHnULfXeFjtSXZ0rAeAIaQDPE=
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 :
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 cd /home/mastodon/.rbenv/plugins/ruby-build && git pull && cd - 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.
Aussi, toutes ces commandes ne sont pas forcément nécessaires à chaque fois, mais les exécuter ne vous fera pas de mal 😉 .
Lisez absolument les notes de versions avant de mettre à jour.
su - mastodon cd live git fetch git checkout vX.x.x gem install bundler 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
Si vous avez une erreur avec la version de Yarn, exécutez ceci en root :
npm i -g yarn
Et on redémarre tout :
systemctl start mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service
Mise en place du cron
Depuis fin mai 2017, une mise à jour fait que tous les travaux effectués par le cron sont déportés dans Sidekiq, un des 3 services de Mastodon, ce qui permet d’étaler le boulot et de fonctionner sur des installations sans crontab disponible.
Néanmoins voici une petite astuce pour libérer énormément d’espace sur votre instance. En effet les médias (images et vidéos, le pièces jointes)des autres instances sont mis en cache sur votre serveur et ne sont jamais effacés. Cela consomme beaucoup d’espace et Mastodon étant tourné vers l’instantanéité, il y a peu de chance que de vieux médias servent. Ainsi, on peut mettre en place un cron journalier qui va supprimer les medias externes en cache, vieux de plus de X jours.
On édite le crontab :
crontab -e -u mastodon
Et on y ajoute :
@daily cd /home/mastodon/live && RAILS_ENV=production NUM_DAYS=30 /home/mastodon/.rbenv/shims/bundle exec rails mastodon:media:remove_remote
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_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"; 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; location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) { add_header Cache-Control "public, max-age=604800, immutable"; try_files $uri @proxy; # On doit ajouter de nouveaux les headers add_header Referrer-Policy "strict-origin-when-cross-origin"; add_header Strict-Transport-Security "max-age=15768000"; access_log off; log_not_found off; }
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 :
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/
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 là.
Moi je fais tourner ma propre instance : mstdn.io 😀
Voici les stats au moment de la publication de cet article :
Edit : 1 mois plus tard ! 😀
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 5 novembre 2018.
Je n’ai plus besoin de réponse à mon commentaire précédent… ; mais je ne peux plus l’effacer !
Sinon, est-ce qu’il existe a un forum français (ou anglais), ou une instance dédié aux questions des administrateurs d’instances ?
Bravo pour ce blog très utile !
Hello,
Je viens d’installer une instance Mastodon sur un VPS / Ubuntu 18.04 LTS !
J’en suis maintenant à la partie : Post-installation steps / Using the command-line interface
Je souhaite utiliser l’exécutable “tootctl“ (l’interface pour la saisie de lignes de commande), mais le tuto anglais ne dit pas si la commande echo « export RAILS_ENV=production » >> ~/.bashrc qui permet d’activer cette fonctionnalité doit être exécuter en tant qu’utilisateur “root“ ou “non-root“ (mastodon) ?
Est-ce que maintenant que mon instance est installée, tous les paramétrages (comme le prochain “Creating an admin account“) doivent être réalisé uniquement par l’utilisateur « non-root“ (mastodon)… ?
Keoz
Bonjour,
Tout d’abord merci Angristan pour cet excellent tuto !
Il me semble qu’il manque un crochet dans ta config nginx a la fin, moi j’ai du en rajouter un.
Sinon l’installation est terminée, mais mon gros problème est le suivant à l’exécution de la commande pour devenir administrateur:
RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=angristan
Voilà l’erreur que j’ai …
mastodon@Travelpandas:~/live$ RAILS_ENV=production bundle exec rails --trace mastodon:make_admin USERNAME=oufmilo
[]’rails aborted!
Don't know how to build task 'mastodon:make_admin' (see --tasks)
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/lib/rake/task_manager.rb:59:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:159:in
invoke_task'
block (2 levels) in top_level’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in
each'
block in top_level’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:125:in
run_with_threads'
top_level’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:110:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/railties-5.2.1/lib/rails/commands/rake/rake_command.rb:23:in
block in perform'
standard_exception_handling’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:186:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/railties-5.2.1/lib/rails/commands/rake/rake_command.rb:20:in
perform'
invoke’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/railties-5.2.1/lib/rails/command.rb:48:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/railties-5.2.1/lib/rails/commands.rb:18:in
<top (required)>'
require’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in
block in require_with_bootsnap_lfi'
register’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in
require_with_bootsnap_lfi'
require’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in
block in require'
load_dependency’/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:253:in
/home/mastodon/live/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in
require'
‘`bin/rails:4:in
Je ne sais pas quoi faire …
Si quelqu’un a une poste je suis preneur .. merci
Salut,
Comme dit en début d’article ce tutoriel n’est plus à jour, il faut suivre la doc officielle. En l’occurence, voici la page qui t’intéresse : https://docs.joinmastodon.org/administration/post-installation/#creating-an-admin-account
Salut, merci pour le tuto.
Je viens d’installer mon instance mais j’ai un problème :
C’est la première fois que je tente de me connecté a mon interface web.
Mon serveur est un Debian 8 et j’ai auto-signé mon certificat parce que notre infra est un peu particulière donc je n’ai pas pu faire avec lets encrypt.
Sait-tu où je peux avoir des infos sur mon erreurs ? Ou as tu une idée de la provenance de l’erreur ?
ah oui au fait, je n’ai pas réussi à utiliser le smtp sans TLS/SSL, je voulais utiliser un serveur smtp tout vieux et tout pourri, mais visiblement il faut absolument qu’il fasse au moins du tlsv1 (ce dont il est bien incapable avec son sslv3 des familles)
Du coup j’ai basculé sur un autre serveur, mais j’aimerais savoir si on peux désactiver le SSL
Ces variables
#SMTP_ENABLE_STARTTLS_AUTO=false
#SMTP_TLS=false
#SMTP_OPENSSL_VERIFY_MODE=none
Ne m’ont pas aidé
Il y a quelques erreurs dans ton tuto… notemment une accolade mal placé dans la conf nginx, 2-3 paquets manquants (libicu-dev libidn11-dev systemd => ma debian 8 avait sysV par défaut), le template postgresql n’est pas unicode par défaut (nécessite une transfo de template1) pour générer les 3 clés il faut mettre la Var d’env RAILS_ENV=Production avant la commande,
Sinon c’est le meilleur Howto French … 🙂
Merci de corriger ces petites erreurs.
Merci pour ton commentaire, c’est corrigé pour Nginx et pour RAILS_ENV=production.
Debian 8 utilise systemd par défaut, donc je vais pas modifier un tuto pour ceux qui ont choisi de changer de système d’init.
Et pour PostegreSQL, je n’ai rien eu besoin de changer et je ne sais pas comment faire donc… 🙂
Mais merci !
Sur mon nouveau serveur au démarcge de Ngnix j’ai cette erreur dans les logs. Cela dis qq’chose à qq’un ?
nginx: [emerg] « location » directive is not allowed here in /etc/nginx/conf.d/mastodon.conf:81
Tu as de toute évidence une erreur sur la ligne 81 🙂
J’ai bouger un crochet et c’est repartie. Celui après la ligne :
error_page 500 501 502 503 504 /500.html;
Je l’ai remis à la fin du fichier de conf et c’est repartie.
BOnsoir
sur une install propre j’ai se message d’erreurs à Pré-compilation des fichiers CSS et JS.
yarn run v0.27.5
$ « /home/mastodon/live/node_modules/.bin/webpack » « –config » « /home/mastodon/live/config/webpack/production.js »
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
(node:18728) DeprecationWarning: Chunk.modules is deprecated. Use Chunk.getNumberOfModules/mapModules/forEachModule/containsModule instead.
Killed
error Command failed with exit code 137.
Je suis perdu est j’ai rien trouvé qui m’expliquerai comment résoudre ça. Du coup un coup de mains serai le bienvenu
Merci
Je m’auto répond c’était un PB du serveur pas assez de RAM pour compiler, j’ai update mon hardware et c’est passé.
Merci pour cet excellent tuto. Même pour moi qui n’aime pas les techno-web, j’ai pu suivre.
J’utilise APACHE avec la config proposée par jpfox. Attention le caractère » est le double-quote anglo-saxon et pas les guillemets français comme dans le commentaire.
En version 1.4.7 de ce jour, il m’a fallu rajouter
RAILS_SERVE_STATIC_FILES=true dans .env.production car sinon les assets n’étaient pas servis.
Pour les mise à jour:
Sur https://github.com/tootsuite/mastodon/releases, il est indiqué qu’il faut aussi faire : RAILS_ENV=production bundle exec rails mastodon:maintenance:prepare_for_foreign_keys
Pour la mise à jour. Ca ne concerne que la 1.4.2, c’est pour cela que je dis de regarder les notes de version à chaque fois 🙂
$(git tag | tail -n 1)
renvoie v1.4rc6 alors que la v1.4.1 est plus récente.
En effet
Bonjour,
Je suis ligne par ligne le tuto pour installer Mastodon sur un raspberry mais je bloque sur bundle exec rake secret. Cela me renvoie :
« rake aborted!
NameError: uninitialized constant Annotate
…
»
Malgré une recherche sur internet, je ne trouve pas la raison de ce problème.
A propos, sur Raspberry, il est nécessaire d’ajouter les clefs pgp pour le dépots deb http://httpredir.debian.org/debian jessie-backports main
Jess
Hello jess,
j’ai eu le même souci que toi, résolu en tapant la commande :
RAILS_ENV=production bundle exec rake secret
Merci. Ca marche!
🙂
Je suis presque arrivé mais maintenant j’ai cette erreur:
W: Impossible de récupérer http://nginx.org/packages/debian/dists/jessie/InRelease Impossible de trouver l’entrée « nginx/binary-armhf/Packages » attendue dans le fichier « Release » : ligne non valable dans sources.list ou fichier corrompu
juste après le:
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
Y a t-il quelqu’un qui a eu ce problème?
Je me répond, je vois qu’il y a une autre personne qui a eu ce problème. J’aurai du lire plus assidument tous les postes…Désolé…
Mais cette personne n’a pas posté sa solution….
Supprime
/etc/apt/sources.list.d/nginx.list
, fait unapt update
etapt install -t jessie-backports nginx
🙂Merci. J’allais mettre cette réponse trouvé sur le web… 🙂
Au sujet du backup de Mastodon, j’utilise un ssh pour backuper la base SQL et rsync pour la partie « fichiers ».
Pour rsync, je rencontre des problèmes de droits. J’ai ce type d’erreur (dans mes logs) pour plusieurs fichiers :
rsync: readlink_stat(« /home/mastodon/live/node_modules/backoff/lib/strategy/fibonacci.js ») failed: Permission denied (13)
Je vois bien que c’est un problème de droits… mais ceux-ci semblent bons (chmod 644)
Une idée ? MERCI.
Bonsoir,
Pour moi le passage à ruby 2.4.1 n a pas fonctionner, obligé d installé en 1 la version 2.3.1 puis la 2.4.1
Si non impossible d installer la suite
Sur une installe neuve je précise
Bonjour, chez moi toute la configuration à l’air de fonctionner hormis au moment de passer à « letsencrypt » où un message d’erreur s’affiche et me dit : » Incorrect validation certificate for tls-sni-01 challenge » et me propose de regarder si mon nom de domaine (fraîchement acheté => peut-être lié ? ) est correctement écrit (je pense) et si mon DNS record A contient la bonne adresse IP.
J’ai acheté hier un VPS chez OVH avec un nom de domaine, y a t-il des manipulations nécéssaire, comme pointer son DNS à son nom de domaine ? Je pense qu’il l’a fait automatiquement.
J’ai un DNS de type A qui pointe vers une adresse IP, mais inconnue, dois-je mettre l’ip de mon VPS ?
Je te remercie pour le boulot que tu as fais, c’est génial !
Oui tu doit faire pointer don domaine en A sur l’IPv4 de ton VPS et si possible en AAAA sur l’IPv6 de ton VPS.
J’en suis au lancement de nginx a la fin mais il me fait une erreur
« Job for nginx.service failed. See ‘systemctl status nginx.service’ and ‘journalctl -xn’ for details. »
Alors je lance la commande : systemctl status nginx.service
Et la j’ai cela qui s’affiche :
» ● nginx.service – LSB: Stop/start nginx
Loaded: loaded (/etc/init.d/nginx)
Active: failed (Result: exit-code) since Mon 2017-04-24 11:07:45 EDT; 1s ago
Process: 19684 ExecStart=/etc/init.d/nginx start (code=exited, status=1/FAILURE)
Apr 24 11:07:45 wrestlingsocial nginx[19684]: nginx: [emerg] BIO_new_file(« /etc/letsencrypt/live/www.mstdn.io/fullchain.pem ») failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/etc/lets…ile:no such file)
Apr 24 11:07:45 wrestlingsocial systemd[1]: nginx.service: control process exited, code=exited status=1
Apr 24 11:07:45 wrestlingsocial systemd[1]: Failed to start LSB: Stop/start nginx.
Apr 24 11:07:45 wrestlingsocial systemd[1]: Unit nginx.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full. »
Du coup je dois faire quoi s’il vous plait ? :/
Il suffit de lire : l’emplacement de ton certificat n’est pas le bon, il faut adapter ta conf Nginx.
Excellent tuto, merci d’avoir partagé !
Whaa ! parfait tuto merci beaucoup !
Trop daubesque mastodon, un repère d’extrême gauche et de lobbies LGBT…
Oui oui, c’est ça. 🙂 Tu es libre de rejoindre une instance pour diversifier les 375 000 LGBT communistes 🙂
Lol : c’est grandiose ça ! Je note et je fais tourner, ça va plaire ! 😀
Pas de soucis, tu ne viens plus ici
Je me demande si tu serais pas finalement sur ce réseau
Comme un troll quoi
Ton post n’apporte rien, donc tu n’est rien
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 ?
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 !
Désolé je n’ai pas eu le temps de te répondre 😛
En effet, HTTP/2 n’est supporté que depuis la 1.9.5, je suppose que tu utilises une version antérieure.
C’est tout de même une réponse rapide, merci !
J’ai la version 1.10.3 mais j’ai cette erreur lorsque je fais un « apt update » :
W: Failed to fetch http://nginx.org/packages/debian/dists/jessie/InRelease Unable to find expected entry ‘nginx/binary-armhf/Packages’ in Release file (Wrong sources.list entry or malformed file)
Je vois sur le site officiel que la dernière version stable est la 1.12.0.
Je laisse ça de côté pour l’instant, j’approfondirais la question plus tard.
En effet, le dépôt officiel de Nginx ne contient pas de paquets pour ARM. :/
Il faut chercher où le paquet ARM alors ?
Dans les dépôts Debian ? Je suppose que tu peux utiliser les backports pour avoir une version plus récente
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 🙂
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 🙂
Ca ne marche pas pour moi 🙁
Output of config test was:
apache2[8114]: AH00526: Syntax error on line 8 of /etc/apache2/sites-enabled/mastodon.conf:
apache2[8114]: ProxyPass|ProxyPassMatch needs a path when not defined in a location
apache2[8114]: Action ‘configtest’ failed.
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 ?
Tu es en 1.2 ?
Oui
Alors il faut regarder ce que dis la console de ton navigateur. 🙂
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 ».
Si je me souviens bien, tu avais installé Ruby 2.4.1 non ? La version 1.1.1 est sortie avant le commit qui requiert Ruby 2.4.1, donc Ruby 2.3.1, d’où tes problèmes je suppose
Oui, oui, j’ai bien installé Ruby 2.4.1. Je vais te dire que j’ai même tout réinstallé sur une image propre mais j’ai toujours le même souci d’upload qui ne se fait pas comme décrit ici https://hostux.social/@cletois/276427
Là je tourne complètement en rond sans trouver une seule erreur dans les logs. J’ai déjà créé un nouvel utilisateur pour tester la nouvelle mise à jour. Rien à faire. Il faut quand même pas que je réinstalle tout le serveur qui héberge l’instance quand même….
Bref, encore merci mais là je suis complètement paumé
Bah attends la 1.1.2 qui utilisera ta version de Ruby 🙂
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
Super !
Une de plus sur le réseau !
au fait on bloque comment les inscrisptions ( pendant les tests ) merci
Tu as une option dans l’admin.
merci, je viens de te suivre pour test !
bonjour,
j’ai une erreur à la fin lors du lancement de ngnix :
root@vps397706:/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
Comme indiqué dans ton message…
systemctl status nginx.service
ounginx -t
pour afficher l’erreurousp merci
j’avais laissé une ligne avec ton nom de domaine
merci à toi
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
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
sedryk : regarde ici –> https://www.citizenz.info/mastodon-mettre-a-jour-son-instance-passer-en-ruby-2-4-1
Ca passe merci de ton aide 🙂
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
Non, avec un git clone tu télécharge la branche master. Si tu veux une version spécifique tu télécharge le .zip sur Github
Comment avez-vous configuré nginx pour éviter le passage avec letsencrypt et parvenir à accéder à l’instance dans votre VM ?
Pour la mise à jour de Mastodon il faut installer rbenv install 2.4.1
Déjà ajouté 🙂
Ah oui j’avais pas vu juste après. 🙂
Tu est parfait !
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
Il n’y a pas de version « stable » pour le moment.
Si tu nous disais quelles erreurs tu as ça pourrait peut-être aider 🙂
Merci pour ta réponse rapide. On dit jamais deux sans trois : la troisième fut la bonne. En fait, je n’avais pas supprimé la base de données après ma première installation ce qui a fait planter la seconde (faut être persévérant… ou patient).
Mais s’il n’y a pas de version stable, comment peut-on savoir quand il faut mettre à jour ? Tu nous donnes la manip mais sur Git, sachant que c’est le travail en fluide du développeur…
Pardon pour toutes ces questions
Le dev a mis en place des numéros de version : https://github.com/tootsuite/mastodon/releases, tu peux surveiller ça et update version par version, logiquement chacune d’entre elle est testée
Merci beaucoup. Donc je vais refaire une installation propre avec la 1.1 dite stable (parce que celle que j’ai récupérée en suivant le tuto présente pas mal de bizarreries : impossibilité de remote follow fréquente, erreur lorsque l’on recherche un terme ou un user par son adresse si pas encore suivi, etc).
Merci encore pour ce tuto
Ah et effectivement il faut une nouvelle version de Ruby : https://github.com/tootsuite/mastodon/commit/64dbde0dbf8c5d3ce820f780644d46a6b18e6743
J’ai maj l’article.
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 ?
J’ai pas trouver de doc sur les nouvelles proprietes. Il y en à sur le git ?
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]
Ça fonctionne avec le port 25 ?
Oui mais ça ne marche pas non plus…
Regarde les logs de mastodon-web 🙂
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 ?
Je viens de galérer comme il faut dessus donc pour les prochains qui tomberont sur ce post, voilà une conf’ qui fonctionne :
SMTP_SERVER=ssl0.ovh.net
SMTP_PORT=465
[email protected]
SMTP_PASSWORD=**********
SMTP_AUTH_METHOD=plain
SMTP_ENABLE_STARTTLS_AUTO=true
SMTP_TLS=true
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 ????
Ce n’est pas rétrospectif, il faut que tu attendes qu’ils toot.
Intéressant ce petit tuto 🙂 Comment as-tu réussi à avoir autant d’inscription ?
J’ai ouvert mon instance tôt et puis beaucoup de monde a vu l’article 🙂
ah d’accord 🙂 donc ça ne sert plus à grand chose d’ouvrir ça propre instance du coup ? 🙁
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 😉
pour les erreurs fait un :
tail -f /var/log/syslog
moi j’ai des problèmes SSL…
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
Comment ça ?
Non c’est bon. En fait il faut copier-coller les 2 lignes en même temps, sinon ça marche pas.
Sinon, un détail, on peut remplacer :
On se reconnecte pour prendre en compte le nouvel environnement
exit
su – mastodon
par
exec $SHELL
Ah oui, tout à fait 🙂
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
Tu cherches pseudo@instance ? Cherche [email protected] par exemple.
Merci super ! comme tu as pu le lire ça marche
Merci pour le tuto
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
Pour android 7.0, ceci suffit : https://github.com/Vavassor/Tusky/issues/46#issuecomment-292485432
Pour Android 4, il faut upgrade, pas réduire la sécurité.
Mais bon, si tu génère un DH, autant en faire un de 4096 bits, et il faut activer les suites DH après.
Et voilà mastodon.blog-de-michel.fr
Et ça marche !!! connexion avec mon serveur de mail OK. Plus qu’a utiliser 🙂
Merci
Bravo 🙂
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 🙂
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 🙁
Essaye
npm install -g browserify
?j’ai exactement le meme problème
idem après npm install -g browserify
une autre idée ?
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é :/
Entre 1 et 100 utilisateurs, un VPS avec 2 coeurs et 2 GO de RAM fera l’affaire. Tu peux en trouver chez Scaleway ou PulseHeberg
Après avoir suivi ton guide, sur un vps ovh à 2Go de Ram, tout seul, j’était à 100% d’utilisation RAM, je viens de basculer sur l’offre à 8Go et c’est nettement mieux.
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
df -h
? Tu semble avoir un problème d’espaceEt oui c’était ça mais le dossier /tmp !
Comme le serveur était neuf j’ai pas pensé à cela. Donc j’ai agrandi le dossier et je relance.
Merci
Bonjour,
Comme j’ai augmenté mon /tmp de ce coté là c’est OK.
Par contre je fais l’essai de l’installation sur un petit serveur (peu de mémoire mais faible coût) j’ai fait l’installation de Ruby sans doc : RUBY_CONFIGURE_OPTS=–disable-install-doc rbenv install …
Sinon j’ai une erreur de compilation.
Tu devrais update la partie mise à jour pour les cas où les dépendances ruby changent, c’est déjà arrivé. 🙂
euh… c’est à dire ???
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 ?
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
Un p’tit tuto sur Mastodon user count bot ? Ca serait bien utile …
https://angristan.fr/mettre-en-place-bot-user-count-instance-mastodon/ 🙂
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.
J’ai eu un problème avec les images aussi, apparemment il fallait que j’installe manuellement browserify et ses dépendances avant de lancer :precompile.
Sinon faire une mise à jour complète de Mastodon en suivant les consignes du tuto devrait aussi résoudre le problème !
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 ?).
Eh bien il suffit de transférer les données, la BDD, et de relancer le tout, je suppose
Merci pour ce tuto, cela m’a permis d’installer mon instance sans soucis !
Super 😀
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… ???
Cela semble résolu avec un update de Mastodon réalisé ce matin…