diff --git a/HowtoMastodon.md b/HowtoMastodon.md index ec312022..fba12956 100644 --- a/HowtoMastodon.md +++ b/HowtoMastodon.md @@ -3,15 +3,15 @@ categories: web social title: Howto Mastodon ... -* Documentation : -* Administration : +* Documentation : +* Administration : [Mastodon](https://github.com/tootsuite/mastodon) est un réseau social libre et décentralisé, en alternative à _Twitter_. ## Installation -Nous installons la version **2.9.3** sous **Debian 9 (Stretch)**. +Nous installons la version **4.0.2** sous **Debian 11 (Bullseye)**. Mastodon s'appuie sur Ruby, [NodeJS](HowtoNodeJS), [Yarn](HowtoYarn), [Nginx](HowtoNginx), [Redis](HowtoRedis) et [PostgreSQL](HowtoPostgreSQL). @@ -35,7 +35,7 @@ Créer un compte UNIX *mastodon* : ### Ruby -Mastodon nécessite une version très récente de Ruby (2.6.1), on le met en place via [rbenv](HowtoRails#cas-2-utilisation-avec-rbenv-unicorn) : +Mastodon 4.0.x nécessite Ruby (3.0.4), on le met en place via [rbenv](HowtoRails#cas-2-utilisation-avec-rbenv-unicorn) : ~~~ # sudo -iu mastodon @@ -47,15 +47,15 @@ $ echo 'export RAILS_ENV="production"' >> ~/.bash_profile $ source ~/.bash_profile $ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build $ cd -$ TMPDIR=~/tmp MAKE_OPTS=-j$(nproc) RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1 -$ rbenv local 2.6.1 +$ TMPDIR=~/tmp MAKE_OPTS=-j$(nproc) RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4 +$ rbenv local 3.0.4 ~~~ > **Note** : On met la variable d'environnement `RAILS_ENV` dans notre profile bash pour éviter de l'indiquer à chaque commande Ruby/Rails. ### PostgreSQL -Mastodon utilise [PostgreSQL](HowtoPostgreSQL). On utilise donc la version 9.6 de Debian Stretch : +Mastodon utilise [PostgreSQL](HowtoPostgreSQL). On utilise donc la version 13 de Debian 11 : ~~~ # apt install postgresql postgresql-client libpq-dev postgresql-contrib @@ -88,7 +88,7 @@ On clone le repository et installe avec _bundle_ et _yarn_ : # sudo -iu mastodon $ git clone https://github.com/tootsuite/mastodon.git $ cd mastodon -$ git checkout v2.9.3 +$ git checkout v4.0.2 $ gem install bundler $ bundle install --deployment --without development test $ yarn install --pure-lockfile @@ -107,6 +107,7 @@ On édite le fichier fichier `.env.production` à notre convenance, voici un exe ~~~ REDIS_HOST=127.0.0.1 REDIS_PORT=6379 +REDIS_NAMESPACE=instance01 DB_HOST=127.0.0.1 DB_USER=mastodon DB_NAME=mastodon_production @@ -150,7 +151,7 @@ Compilation des assets : ~~~ $ bundle exec rails assets:precompile -$ chmod -R u=rwX,g=rwX,o=rX /home/mastodon/mastodon/public/{assets,packs} +$ chmod -R u=rwX,g=rwX,o=rX /home/mastodon/mastodon/public ~~~ ### Unités systemd @@ -221,6 +222,8 @@ Restart=always WantedBy=multi-user.target ~~~ +Note : les ports 3000 et 4000 ci-haut devront être changés s'il y a plus d'une instance sur le serveur. On pourra par exemple incrémenter de 1, donc 3001, 4001. + On active et on démarre les unités : ~~~ @@ -235,6 +238,8 @@ RAILS_ENV=production @daily cd /home/mastodon/mastodon && /home/mastodon/.rbenv/shims/bundle exec rake mastodon:media:remove_remote ~~~ +Note : Depuis la version 4.0.x, il est aussi possible de configurer la durée de vie du cache (médias, etc.) depuis l'interface d'administration (sous Administration -> Paramètres du serveur -> Rétention du contenu). + ### Nginx On utilise [Nginx](Howtonginx) : @@ -359,7 +364,7 @@ $ exit # systemctl restart mastodon-*.service ~~~ -> **Note** : Ces commandes génériques ne sont parfois pas suffisantes. Pensez à lire les [notes de versions](https://github.com/tootsuite/mastodon/releases/). +> **Note** : Ces commandes génériques ne sont parfois pas suffisantes. Vous devez systématiquement lire les [notes de versions](https://github.com/tootsuite/mastodon/releases/). ## Configuration @@ -387,9 +392,9 @@ On peut utiliser différents clients : Mastodon n'a aucun fichier de logs. Les logs sont gérés via la sortie standard et vont donc dans journald. On consultera les logs avec `journalctl -u mastodon-web` (ou `mastodon-sidekiq` ou `mastodon-streaming`). -### Passer un utilisateur en admin +### Passer un utilisateur existant en admin ~~~ -~/mastodon$ bundle exec rails mastodon:make_admin USERNAME=jdoe +~/mastodon$ bin/tootctl accounts modify jdoe --role Admin Congrats! jdoe is now an admin. \o/ ~~~