Wähle einen Artikel
Friendica auf VPS/vServer installieren
Friendica auf VPS/vServer installieren

0. Überblick

1. Friendica installieren

1.1 Einleitung

Friendica ist ein verteiltes soziales Netzwerk. Die Vorteile von Friendica gegenüber anderen sozialen Netzwerken sind, dass es auf dem eigenen Server installiert und nach den eignen Wünschen angepasst werden kann.

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. Friendica werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um Friendica 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 Verzeichnis anlegen

Zuerst legen wir uns ein Verzeichnis an, in welchem wir später alle Daten von Friendica speichern wollen.

mkdir -p /opt/containers/friendica/build 

Den Pfad kannst du gerne anpassen. Dann kannst du diese Anleitung aber nicht mehr 1:1 nutzen.

1.3.2 Docker Compose Datei erstellen

Nun legen wir uns noch eine Docker Compose Datei an. Diese ist der „Bauplan“ für Friendica. Dazu gibst du folgendes in der Konsole ein:

nano /opt/containers/friendica/docker-compose.yml 

Nun kopierst du folgenden Inhalt:

version: '3' 

 

services: 

  friendica-db: 

    image: mariadb 

    container_name: friendica-db 

    restart: unless-stopped 

    volumes: 

      - ./db:/var/lib/mysql 

    environment: 

      - MYSQL_USER=friendica 

      - MYSQL_PASSWORD=friendica 

      - MYSQL_DATABASE=friendica 

      - MYSQL_RANDOM_ROOT_PASSWORD=yes 

    networks: 

      - default 

 

  friendica: 

    image: friendica 

    container_name: friendica 

    restart: unless-stopped 

    volumes: 

      - ./daten:/var/www/html 

    environment: 

      - MYSQL_HOST=db 

      - MYSQL_USER=friendica 

      - MYSQL_PASSWORD=friendica 

      - MYSQL_DATABASE=friendica 

      - SMTP=SMTP Server 

      - SMTP_PORT=587 

      - SMTP_DOMAIN=euredomain.de 

      - SMTP_FROM=absender 

      - SMTP_TLS=true 

      - SMTP_AUTH=on 

      - SMTP_AUTH_USER=Nutzername 

      - SMTP_AUTH_PASS=Passwort 

    labels: 

      - "traefik.enable=true" 

      - "traefik.http.routers.friendica.entrypoints=http" 

      - "traefik.http.routers.friendica.rule=Host(`friendica.euredomain.de`)"   # Hier eure URL eingeben # 

      - "traefik.http.middlewares.friendica-https-redirect.redirectscheme.scheme=https" 

      - "traefik.http.routers.friendica.middlewares=friendica-https-redirect" 

      - "traefik.http.routers.friendica-secure.entrypoints=https" 

      - "traefik.http.routers.friendica-secure.rule=Host(`friendica.euredomain.de`)"    # Hier eure URL eingeben # 

      - "traefik.http.routers.friendica-secure.tls=true" 

      - "traefik.http.routers.friendica-secure.tls.certresolver=http" 

      - "traefik.http.routers.friendica-secure.service=friendica" 

      - "traefik.http.services.friendica.loadbalancer.server.port=80" 

      - "traefik.docker.network=proxy" 

      - "traefik.http.routers.friendica-secure.middlewares=secHeaders@file" 

    networks: 

      - proxy 

      - default 

  friendica-cron: 

    build: ./build 

    container_name: friendica-cron 

    restart: unless-stopped 

    volumes: 

      - ./daten:/var/www/html 

    entrypoint: /cron.sh 

    environment: 

      - MYSQL_USER=friendica 

      - MYSQL_PASSWORD=friendica 

      - MYSQL_DATABASE=friendica 

      - MYSQL_HOST=friendica-db 

      - MYSQL_PORT=3306 

    networks: 

      - default 

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 Friendica erreichbar sein soll.

Diese beiden Zeilen musst du anpassen.

    - "traefik.http.routers.friendica.rule=Host(`friendica.euredomain.de`)" 

    - "traefik.http.routers.friendica-secure.rule=Host(`friendica.euredomain.de`)" 

In meinem Fall also:

    - "traefik.http.routers.friendica.rule=Host(`friendica.testbereich.net`)" 

    - "traefik.http.routers.friendica-secure.rule=Host(`friendica.testbereich.net`)" 

1.3.4 Datenbank Passwort anpassen

Hier musst du lediglich folgende Zeile anpassen. Wähle hier ein sicheres Kennwort.

vorher:

  friendica-db: 

      - MYSQL_PASSWORD=friendica 

  friendica-cron: 

      - MYSQL_PASSWORD=friendica 

nachher:

  friendica-db: 

      - MYSQL_PASSWORD=Fahs213Avnbgr 

  friendica-cron: 

      - MYSQL_PASSWORD=Fahs213Avnbgr 

1.3.5 SMTP Server anpassen

Nun müssen wir noch den SMTP Server anpassen. Dies ist notwendig, da neue Benutzer eine E-Mail für die Registrierung erhalten. In dieser E-Mail wird auch das Passwort angezeigt. Die Daten zu deinem SMTP Server bekommst du von deinem E-Mail Provider (z.B. google.de, gmx.de).

Ich verwende hier folgende Einstellungen:

SMTP-Server: mail.testbereich.net 

Nutzer: server@testbereich.net 

Passwort: Test1234 

Port 587 

Ich gebe also folgendes ein. Diese Daten musst du für dich anpassen.

      - SMTP=mail.testbereich.net 

      - SMTP_PORT=587 

      - SMTP_DOMAIN=testbereich.net 

      - SMTP_FROM=server 

      - SMTP_AUTH_USER=server@testbereich.net 

      - SMTP_AUTH_PASS=Test1234 

Wichtig ist, dass du bei „SMTP_FROM“ nur den Namen VOR dem „@“ hinschreibt, also NICHT deine ganze E-Mail-Adresse.

1.3.6 Dockerfile des Cron Servers anlegen

Nun legen wir noch ein Dockerfile für den Cron Server an. Dieser wird in regelmäßigen Abständen Hintergrundaufgaben erledigen.

Dazu gibst du folgendes ein:

nano /opt/containers/friendica/build/Dockerfile 

Nun kopierst du folgenden Inhalt:

FROM friendica:apache 

RUN mkdir -p /usr/src/config 

COPY addon.config.php /usr/src/config/ 

Anschließend gibst du noch folgenden Befehl ein:

nano /opt/containers/friendica/build/addon.config.php 

In die Datei kopierst du folgendes:

<?php 

return [ 

        'system' => [ 

                'cache_driver' => 'redis', 

                'lock_driver' => 'redis', 

                'redis_host' => 'redis', 

                'pidfile' => '/var/run/friendica.pid', 

        ] 

]; 

2. Friendica starten

Nun kannst du Friendica starten. Dazu gibst du folgendes ein:

docker compose -f /opt/containers/friendica/docker-compose.yml up -d 

Nach ca. 1 Minute sollte Friendica 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://friendica.testbereich.net 

Jetzt solltest du folgendes sehen:

TLS haben wir hier bewusst nicht aktiviert, da dies Traefik für uns übernimmt. 

Nach einem Klick auf „Nächste“ kommst du zur eigentlichen Konfiguration. Hier kannst du deinen Host Namen vergeben. Hier musst du nichts verändern.
 

Nun musst du eine Verbindung zur Datenbank herstellen. Dazu brauchst du das Passwort, welches du in der Docke Compose Datei festgelegt hast.

Folgende Werte kannst du übernehmen:

Datenbank Server: friendica-db 

Datenbank-Nutzer: friedica 

Datenbank-name: friendica 
Mein Passwort: Fahs213Avnbgr 

Das Passwort musst du entsprechend anpassen. Bei mir sieht es so aus:

Nun gibst du die E-Mail-Adresse des Administrators an. Hier wird noch kein Account erstellt. Es wird lediglich festgelegt, welcher Account später Administrator Rechte bekommen soll. Bei mir ist dies „dogado@testbereich.net“. Als Systemsprache wähle ich noch „de“ und die richtige Zeitzone.

Nun musst du nur noch auf „Nutzerregistrierung“ klicken. Den Cronjob erledigt für uns ein eigener Container, weshalb wir diese Meldung hier ignorieren können.

2.1 Benutzer anlegen

Nun solltest du folgendes sehen:

Hier gibst du nun die selbe E-Mail Adresse von eben ein. Dadurch wird dein Account zum Administrator. Bei mir ist dies „dogado@testbereich.net“. Den „Spitznamen“ kannst du frei wählen.

So sieht es dann bei mir aus:

2.1.1 Versenden der E-Mail fehlgeschlagen

Nun kann es passieren, dass deine SMTP Einstellungen falsch sind bzw. nicht vorhanden. In diesem Fall siehst du diese Meldung. Hier wird dir deine Login-E-Mail-Adresse sowie dein Kennwort angezeigt. Mit diesen Daten kannst du dich dann normal anmelden.

2.1.2 Versenden der E-Mail funktioniert

In diesem Fall kommst du auf diese Webseite.

Zudem bekommst du noch folgende E-Mail:

2.2 Admin Interface öffnen

Nachdem du einen Admin Account erstellt hast, kannst du dir das Admin Interface anschauen. Dazu meldest du dich an und klickst dann oben rechts auf die „Person“.

Nun öffnet sich folgendes Menü. Hier wählst du „Administration“ aus.

Nach einem Klick siehst du das Admin Interface.

2.3 Passwort ändern

Um dein Kennwort zu ändern, klickst du oben rechts auf die „Person“.

Nun wählst du „Einstellungen“ aus.

Hier klickst du direkt auf den obersten Punkt „Passwort-Einstellungen“.

Hier kannst du dann dein neues Kennwort wählen.

Nächster Artikel
Funkwhale auf VPS/vServer zu installieren
Weitere passende Themen