- 
                            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:
 
                        
                                                    
                                                                     
            