-
Was ist ein vServer?
-
vServer und Sicherheit
-
vServer - Anwendungsfälle
-
vServer bei dogado
-
vServer und Plesk
-
vServer Betriebssyteme
-
vServer Glossar
0. Überblick
- Verwendetes System: Debian 11 64 bit - VPS XXL 2.0
- Genutzter User: Ich nehme alles als „root“ vor
- Zeitdauer: ca. 15 Minuten
- Schwierigkeit: Einfach. Nur Code kopieren 😉
- Besonderheiten:
- Grundlage ist folgende Anleitung: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren. Diese Anleitung muss zuerst ausgeführt werden.
- Die Installation von Docker / Docker Compose wird hier vorausgesetzt.
1. Pixelfed installieren
1.1 Einleitung
Pixelfed ist ein freies soziales Netzwerk zum Austausch von Fotos. Im Gegensatz zu anderen großen sozialen Netzwerken kann Pixelfed selbst gehostet werden.
1.2 Infos zu yml Dateien
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
1.3 Vorbereitung
Diese Anleitung basiert auf dem aktuellen Debian 11 Betriebssystem. Pixelfed werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.
Um Pixelfed 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.
1.3.1 Repository downloaden
Zuerst laden wir uns das aktuelle Repository von Pixelfed herunter. Dazu gibst du folgendes in deine Konsole ein:
git clone https://github.com/pixelfed/pixelfed.git /opt/containers/pixelfed
Den Pfad kannst du gerne anpassen. Dann kannst du diese Anleitung aber nicht mehr 1:1 nutzen.
1.3.2 Docker Compose Datei anpassen
Wir müssen nun sehr viele Änderungen in der Docker Compose Datei vornehmen. Daher ist es einfach, dass du diese jetzt löschst und dann neu erzeugst. Dazu gibst du folgendes ein:
rm /opt/containers/pixelfed/docker-compose.yml
Anschließend erstellen wir die Datei neu:
nano /opt/containers/pixelfed/docker-compose.yml
Nun kopierst du folgenden Inhalt in die Datei:
version: '3'
services:
app:
build:
context: .
dockerfile: contrib/docker/Dockerfile.apache
container_name: pixelfed-app
restart: unless-stopped
env_file:
- .env.docker
volumes:
- app-storage:/var/www/storage
- app-bootstrap:/var/www/bootstrap
- ./.env.docker:/var/www/.env
networks:
- default
- proxy
depends_on:
- db
- redis
labels:
- "traefik.enable=true"
- "traefik.http.routers.pixelfed.entrypoints=http"
- "traefik.http.routers.pixelfed.rule=Host(`pixelfed.euredomain.de`)" # Hier eure URL eingeben #
- "traefik.http.middlewares.pixelfed-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.pixelfed.middlewares=pixelfed-https-redirect"
- "traefik.http.routers.pixelfed-secure.entrypoints=https"
- "traefik.http.routers.pixelfed-secure.rule=Host(`pixelfed.euredomain.de`)" # Hier eure URL eingeben #
- "traefik.http.routers.pixelfed-secure.tls=true"
- "traefik.http.routers.pixelfed-secure.tls.certresolver=http"
- "traefik.http.routers.pixelfed-secure.service=pixelfed"
- "traefik.http.services.pixelfed.loadbalancer.server.port=80"
- "traefik.docker.network=proxy"
- "traefik.http.routers.pixelfed-secure.middlewares=secHeaders@file"
worker:
build:
context: .
dockerfile: contrib/docker/Dockerfile.apache
container_name: pixelfed-worker
restart: unless-stopped
env_file:
- .env.docker
volumes:
- app-storage:/var/www/storage
- app-bootstrap:/var/www/bootstrap
- ./.env.docker:/var/www/.env
networks:
- default
- proxy
command: gosu www-data php artisan horizon
depends_on:
- db
- redis
- app
## DB and Cache
db:
image: mysql:8.0
restart: unless-stopped
container_name: pixelfed-db
networks:
- default
env_file:
- .env.docker
volumes:
- "db-data:/var/lib/mysql"
redis:
image: redis:5-alpine
restart: unless-stopped
container_name: pixelfed-redis
env_file:
- .env.docker
volumes:
- "redis-data:/data"
networks:
- default
volumes:
app-storage:
app-bootstrap:
db-data:
redis-data:
networks:
proxy:
external: true
Nun müssen wir noch einiges anpassen.
1.3.3 Hostname anpassen
Zuerst musst du noch den Hostnamen anpassen, über welchen später Pixelfed erreichbar sein soll.
Diese beiden Zeilen musst du anpassen.
- "traefik.http.routers.pixelfed.rule=Host(`pixelfed.euredomain.de`)"
- "traefik.http.routers.pixelfed-secure.rule=Host(`pixelfed.euredomain.de`)"
In meinem Fall also:
- "traefik.http.routers.pixelfed.rule=Host(`pixelfed.testbereich.net`)"
- "traefik.http.routers.pixelfed-secure.rule=Host(`pixelfed.testbereich.net`)"
1.3.4 MySQL Passwort vergeben
Dazu öffnest du folgende Datei:
nano /opt/containers/pixelfed/.env.docker
Ab Zeile 56 beginnt die Datenbank Konfiguration.
Hier änderst du folgende beide Zeilen ab:
DB_PASSWORD=pixelfed_db_pass
MYSQL_PASSWORD=pixelfed_db_pass
In beiden Zeilen musst du das selbe Kennwort schreiben. Bei mir wäre dies:
DB_PASSWORD=An34u7adb347Agbfk45ut
MYSQL_PASSWORD=An34u7adb347Agbfk45ut
1.3.5 URLs in der Konfiguration anpassen
Nun musst du noch einige URLs in der Konfigurationsdatei anpassen. Dazu änderst du folgende Zeilen in der Konfiguration:
APP_NAME="Pixelfed Prod"
APP_URL=https://real.domain
APP_DOMAIN="real.domain"
ADMIN_DOMAIN="real.domain"
SESSION_DOMAIN="real.domain"
Bei mir ist das:
APP_NAME="Dogado Pixelfed"
APP_URL=https://pixelfed.testbereich.net
APP_DOMAIN="pixelfed.testbereich.net"
ADMIN_DOMAIN="pixelfed.testbereich.net"
SESSION_DOMAIN="pixelfed.testbereich.net"
1.3.6 Sprache auf Deutsch festlegen
Dazu änderst du folgenden Wert in der Konfigurationsdatei:
vorher:
APP_LOCALE=en
nachher:
APP_LOCALE=de
1.3.7 Weitere Einstellungen
In der Konfigurationsdatei kannst du noch viele weitere Einstellungen vornehmen. Wir haben jetzt alle Grundeinstellungen vorgenommen.
1.3.8 Image bauen
Nachdem wir alle Einstellungen vorgenommen haben, kannst du das Image erstellen. Dieser Vorgang dauert ca. 2 Minuten. Zum Starten gibst du folgendes ein:
docker-compose -f /opt/containers/pixelfed/docker-compose.yml build
2. Pixelfed starten
Nun kannst du Pixelfed starten. Dazu gibst du folgendes ein:
docker compose -f /opt/containers/pixelfed/docker-compose.yml up -d
3. App Key generieren
Nachdem nun das Image gestartet ist, musst du noch einen App Key generieren. Gib dazu folgendes ein:
docker exec pixelfed-app php artisan key:generate
Nun kannst du den Container erneut starten.
docker compose -f /opt/containers/pixelfed/docker-compose.yml down
docker compose -f /opt/containers/pixelfed/docker-compose.yml up -d
4. Browser öffnen
Nach ca. 1 Minute sollte Pixelfed 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://pixelfed.testbereich.net
Jetzt solltest du folgendes sehen:
5. Datenbank migrieren
Nun musst du als erstes die Datenbank migrieren. Dazu gibst du folgenden Befehl in deiner Konsole ein:
docker exec pixelfed-app php artisan migrate --force
Wenn du alles richtig gemacht hast, dann sollte nun folgendes erscheinen:
Dieser Vorgang dauert ca. 1 Minute.
6. Benutzer anlegen
Nachdem du die Datenbank migriert hast, kannst du deinen ersten Benutzer anlegen. Dazu klickst du auf der Webseite auf „Register“.
Hier erstellst du nun einen Account.
Nach der Registrierung wirst du auf dein Profil weitergeleitet.
7. Benutzer zum Administrator machen
Nachdem du einen Benutzer erstellt hast, kannst du diesen per Konsole zum Administrator machen. Dazu gibst du folgendes ein. Hier musst du noch deinen Benutzernamen ergänzen.
docker exec pixelfed-app /bin/bash -c "yes | php artisan user:admin <dein Benutzer>"
Bei mir wäre dies:
docker exec pixelfed-app /bin/bash -c "yes | php artisan user:admin dogado"
Du solltest dann folgende Ausgabe sehen:
8. Admin Interface öffnen
Als Administrator kannst du nun auf das Admin Interface zugreifen. Dazu meldest du dich zuerst ab und wieder an. Anschließend klickst du auf den „blauen Pfeil“ und wählst dann „Account Settings“ aus.
Nun klickst du oben rechts auf die Person und wählst „Administration“ aus.
Nun siehst du das Admin Interface: