Pleroma ist ein freies und offenes Soziales Netzwerk. Im Gegensatz zu anderen bekannten Sozialen Netzwerken kannst du dies selbst hosten und nach deinen Wünschen anpassen.
Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Du kannst den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator
Diese Anleitung basiert auf dem aktuellen Debian 11 Betriebssystem. Pleroma werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.
Um Pleroma neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu findest du hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren
Diese Anleitung passt auf die obige Traefik Anleitung. Daher lässt sich diese Anleitung nur 1:1 nutzen, wenn du Traefik nach der obigen Anleitung installiert hat.
Zuerst laden wir uns das aktuelle Repository von Pleroma herunter. Dazu gibst du folgendes in deine Konsole ein:
git clone https://memleak.eu/sn0w/pleroma-docker.git /opt/containers/pleroma
Den Pfad kannst du gerne anpassen. Dann kannst du diese Anleitung aber nicht mehr 1:1 nutzen.
Nun erstellen wir noch zwei Konfigurationsdateien. Dazu gibst du folgendes ein:
cd /opt/containers/pleroma/
cp config.dist.exs config.exs
cp .env.dist .env
Nun müssen wir die Konfiguration noch etwas anpassen. Dazu generieren wir uns zuerst noch einen „Secret Key“. Gebt dazu folgendes ein:
dd if=/dev/urandom bs=1 count=128 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
Die Ausgabe sollte bei dir etwa so aussehen:
Diesen Key kopierst du dir und öffnest folgende Datei:
nano /opt/containers/pleroma/config.exs
Nun passt du folgende Stelle an:
config :pleroma, Pleroma.Web.Endpoint,
url: [host: "example.com", scheme: "https", port: 443],
secret_key_base: "<key>"
vorher:
host: "example.com"
secret_key_base: "<key>"
nachher:
host: "pleroma.testbereich.net"
secret_key_base: " rV3iwAdCBIdB+8RMfWEYhUEEHTzinoO3hRsFlWH8rJEv3dUuC4eznZZF4NaYR4zSNfFvHnlpFxZE6zGhJ05+QrCidpqR15mjaWMuOvWSIs7qgei4BYJw9lDC+G6oxAeMerKGbr+Ky7l4BCGVpQnfa5kqGHRDSx32bc3jrj7TwiY"
Dies sieht dann so aus:
In dieser Datei kannst du noch weitere Einstellungen vornehmen. Eine Übersicht aller Einstellungen findest du direkt hier beim Hersteller: https://docs-develop.pleroma.social/backend/configuration/cheatsheet/
Nun müssen wir unsere Docker Compose Datei noch anpassen, damit Traefik funktioniert. Da wir hier sehr viele Änderungen vornehmen müssen, ist es einfacher erst die Datei zu löschen und dann komplett neu zu erstellen. Zum Löschen gibst du folgenden Befehl ein:
rm /opt/containers/pleroma/docker-compose.yml
Nun erstellen wir uns eine neue Docker Compose Datei:
nano /opt/containers/pleroma/docker-compose.yml
Anschließend kopierst du folgenden Code in die Datei:
version: "3.7"
services:
db:
image: postgres:13-alpine
init: true
restart: unless-stopped
container_name: pleroma-db
environment: {
POSTGRES_DB: pleroma,
POSTGRES_USER: pleroma,
POSTGRES_PASSWORD: pleroma,
}
volumes:
- ./db:/var/lib/postgresql/data
- ./initdb.sql:/docker-entrypoint-initdb.d/pleroma.sql
networks:
- default
server:
build: .
init: true
restart: unless-stopped
container_name: pleroma-web
links:
- db
volumes:
- ./custom.d:/custom.d:ro
- ./config.exs:/home/pleroma/pleroma/config/prod.secret.exs:ro
- ./config.exs:/home/pleroma/pleroma/config/dev.secret.exs:ro
- ./emoji:/home/pleroma/pleroma/instance/static/emoji
- ./uploads:/uploads
networks:
- proxy
- default
labels:
- "traefik.enable=true"
- "traefik.http.routers.pleroma.entrypoints=http"
- "traefik.http.routers.pleroma.rule=Host(`pleroma.euredomain.de`)" # Hier eure URL eingeben #
- "traefik.http.middlewares.pleroma-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.pleroma.middlewares=pleroma-https-redirect"
- "traefik.http.routers.pleroma-secure.entrypoints=https"
- "traefik.http.routers.pleroma-secure.rule=Host(`pleroma.euredomain.de`)" # Hier eure URL eingeben #
- "traefik.http.routers.pleroma-secure.tls=true"
- "traefik.http.routers.pleroma-secure.tls.certresolver=http"
- "traefik.http.routers.pleroma-secure.service=pleroma"
- "traefik.http.services.pleroma.loadbalancer.server.port=4000"
- "traefik.docker.network=proxy"
- "traefik.http.routers.pleroma-secure.middlewares=secHeaders@file"
networks:
proxy:
external: true
Nun musst du noch den Hostnamen anpassen, über welchen später Pleroma erreichbar sein soll. Achte hierbei darauf, dass du den selben Hostnamen wir in der Konfigurationsdatei (Schritt 1.3.2) verwendest.
Diese beiden Zeilen musst du anpassen.
- "traefik.http.routers.pleroma.rule=Host(`pleroma.euredomain.de`)"
- "traefik.http.routers.pleroma-secure.rule=Host(`pleroma.euredomain.de`)"
In meinem Fall also:
- "traefik.http.routers.pleroma.rule=Host(`pleroma.testbereich.net`)"
- "traefik.http.routers.pleroma-secure.rule=Host(`pleroma.testbereich.net`)"
Nun erstellen wir uns noch zwei weitere Verzeichnisse und passen deren Rechte an. Dazu gibst du folgendes ein:
mkdir /opt/containers/pleroma/uploads
mkdir /opt/containers/pleroma/emoji
chown 1000:1000 /opt/containers/pleroma/uploads/
chown 1000:1000 /opt/containers/pleroma/emoji/
Nun lassen wir uns ein Docker Image mit unseren ganzen Einstellungen zusammenbauen. Dazu gibst du folgendes ein:
cd /opt/containers/pleroma/
./pleroma.sh build
Dieser Vorgang kann einige Zeit dauern. Bei mir hat es etwa 30 Minuten gedauert.
Am Ende solltest du folgendes sehen:
Nun kannst du Pleroma starten. Dazu gibst du folgendes ein:
docker-compose -f /opt/containers/pleroma/docker-compose.yml up
Dieser Vorgang dauert beim ersten Start einige Minuten. Daher müssen wir jetzt etwas warten.
Wenn alles fertig ist, dann solltest du folgendes sehen:
Anschließend beendest du den Docker Container mittels „STRG+C“ und startest ihm mit folgendem Befehl erneut. Dieser Start ist aber dieses Mal im Hintergrund.
docker-compose -f /opt/containers/pleroma/docker-compose.yml up -d
Nach ca. 1 Minute sollte jetzt Pleroma im Browser zur Verfügung stehen. Dazu gehst du auf die Domain, welche du in der Docker Compose Konfiguration eingegeben hast. Bei mir ist dies: https://pleroma.testbereich.net
Jetzt solltest du folgendes sehen:
Nun legen wir uns einen Administrator Benutzer an. Dazu gibst du auf deiner Konsole folgendes ein:
cd /opt/containers/pleroma/
./pleroma.sh mix pleroma.user new <Nutzername> <E-Mail Adresse> --admin
Bei mir wäre das der Benutzer „dogado“ mit der E-Mail Adresse „dogado@testbereich.net“.
./pleroma.sh mix pleroma.user new dogado dogado@testbereich.net --admin
In der Konsole solltest du nun folgendes sehen:
Hier gibst du nun „y“ ein. Danach solltest du einen Link sehen, über welchen du dein Kennwort setzen kannst.
Kopiere diesen Link nun in deinen Webbrowser. Du solltest dann folgendes sehen:
Hier kannst du nun ein Passwort vergeben. Anschließend kannst du auf die Homepage zurückkehren und dich mit deinem neuen Administrator anmelden.
Standardmäßig können sich weitere Benutzer selbst über die Webseite registrieren. Diese müssen lediglich auf „Registrieren“ klicken und einen Nutzernamen / Passwort wählen.
Pleroma wird komplett per Konfigurationsdatei konfiguriert. Wenn du weitere Einstellungen vornehmen möchtest, dann musst du diese in dieser Datei vornehmen:
nano /opt/containers/pleroma/config.exs
Hier findest du einen Überblick über alle Einstellungen: https://docs-develop.pleroma.social/backend/configuration/cheatsheet/