Friendica auf VPS installieren
Hinweis
Einige Screenshots zeigen das Backend unseres Schwesterunternehmens dogado. Die gezeigten Schritte können jedoch auch im easyname-Backend durchgeführt werden.
0. Überblick
- Verwendetes System: Debian 11 64 bit
- Genutzter User: Ich nehme alles als „root“ vor
- Zeitdauer: ca. 10 Minuten
- Schwierigkeit: Einfach. Nur Code kopieren 😉
- Besonderheiten:
- Grundlage ist folgende Anleitung: https://www.easyname.at/blog/vps/anwendungen/traefik-reverseproxy-auf-vps-installieren/. Diese Anleitung muss zuerst ausgeführt werden.
- Die Installation von Docker / Docker Compose wird hier vorausgesetzt.
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.easyname.at/blog/vps/anwendungen/traefik-reverseproxy-auf-vps-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:
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 z.B. „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 z.B. „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.
easyname ist ein erfolgreicher und bekannter österreichischer Anbieter von Cloud-Services, Domains sowie Webhosting bis hin zur Server-Infrastruktur und gehört seit 2020 zur dogado group.
Das Unternehmen ist seit 2006 in Österreich erfolgreich am Markt und inzwischen auch in vielen anderen Ländern weltweit tätig. Sowohl das Team als auch die gehosteten Daten befinden sich in Österreich.
easyname liegt die Datensicherheit besonders am Herzen und stellt daher zu jedem Hosting-Paket auch kostenlose SSL-Zertifikate zur Verfügung. Mit intuitiven Tools zur Erstellung von Websites und Webshops und mit Easy Install Apps wie WordPress, Joomla oder PrestaShop können alle easyname-Kunden schnell in die Online-Welt einsteigen.