22
0
Fork 0

#P10166 MÀJ de la doc pour Mastodon 4.0.x sur Debian 11

This commit is contained in:
Mathieu Gauthier-Pilote 2022-11-17 16:17:04 -05:00
parent f50eae0777
commit 80b77a34c2
1 changed files with 17 additions and 12 deletions

View File

@ -3,15 +3,15 @@ categories: web social
title: Howto Mastodon
...
* Documentation : <https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Production-guide.md>
* Administration : <https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Administration-guide.md>
* Documentation : <https://docs.joinmastodon.org/>
* Administration : <https://docs.joinmastodon.org/admin/>
[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/
~~~