C'est une alternative plus légère que mastodon basé sur des protocoles ouverts tel que l'ActivityPub.
Documentation :
Commençons par installer les dépendances avec le compte root et le compte dédié à l'application :
addgroup pleroma adduser -S -s /bin/false -h /opt/pleroma -H -G pleroma pleroma mkdir -p /opt/pleroma chown -R pleroma:pleroma /opt/pleroma awk 'NR==2' /etc/apk/repositories | sed 's/main/community/' | tee -a /etc/apk/repositories apk update ; apk upgrade apk add postgresql elixir erlang erlang-parsetools erlang-xmerl git nginx build-base erlang erlang-runtime-tools erlang-xmerl elixir postgresql postgresql-contrib postgresql-dev rc-service postgresql start rc-service nginx start
Cette section est optionnelle mais pour faire de la recherche dans le contenu des messages, utilisons l'indéxation de RUM qui est une extension de postgres :
su - postgres git clone https://github.com/postgrespro/rum /tmp/rum cd /tmp/rum make USE_PGXS=1 sudo make USE_PGXS=1 install
Puis se connecter avec le compte courrant pour installer pleroma:
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma cd /opt/pleroma sudo -Hu pleroma mix deps.get sudo -Hu pleroma mix pleroma.instance gen mv config/{generated_config.exs,prod.secret.exs} sudo -Hu postgres psql -f config/setup_db.psql sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate
Enfin on vérifie que l'application se lance bien :
sudo -Hu pleroma MIX_ENV=prod mix phx.server
On va faire cela avec nginx et adapter si besoin le fichier de conf :
cp installation/pleroma.nginx /etc/nginx/conf.d/default.conf
Il reste plus qu'a indiquer que ces services doivent se lancer au boot :
cp installation/init.d/pleroma /etc/init.d/pleroma rc-service pleroma start rc-update add postgresql rc-update add nginx rc-update add pleroma
Créons le compte admin de l'instance :
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new admin user@domaine.com --password mon-mdp --admin
Puis des comptes classiques :
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new toto toto@domaine.com --password mon-mdp