Installation erfolgreich - und jetzt?
!Friendica Admins
Werte Entitäten - ich mache gerade meine ersten Schritte mit einer eigenen Friendica-Instanz auf Basis von #Docker. Alles noch extrem rudimentär, experimentell und just-for-fun. Weiss noch nicht, ob ich es bald wieder einstelle oder die #Weltherrschaft erringen werde. Vielen Dank für Eure Hilfe bis hier hin.
Gibt es eine hilfreiche Anleitung für die ersten Steps nach der Installation? Momentan scheint es etwas einsam hier zu sein - meine 'globale Community' umfasst nur bekannte Nachrichten und ist extrem statisch.
TNX
Werte Entitäten - ich mache gerade meine ersten Schritte mit einer eigenen Friendica-Instanz auf Basis von #Docker. Alles noch extrem rudimentär, experimentell und just-for-fun. Weiss noch nicht, ob ich es bald wieder einstelle oder die #Weltherrschaft erringen werde. Vielen Dank für Eure Hilfe bis hier hin.
Gibt es eine hilfreiche Anleitung für die ersten Steps nach der Installation? Momentan scheint es etwas einsam hier zu sein - meine 'globale Community' umfasst nur bekannte Nachrichten und ist extrem statisch.
TNX
Friendica Admins reshared this.
Michael Vogel
in reply to Captain Yellow-Turtle • • •bin/console relay
.Ich habe diese Relay abonniert:
Captain Yellow-Turtle likes this.
utzer [Friendica]
in reply to Michael Vogel • • •Captain Yellow-Turtle
in reply to utzer [Friendica] • • •TNX
utzer [Friendica]
in reply to Captain Yellow-Turtle • • •Kann auch sein, dass dein Cronjob etwas häufiger ausgeführt werden sollte, die Posts brauche recht lange. Vielleicht liegt es aber auch an mir.
Edit: Hmm liegt wohl an meinem Server, morgen mal schauen was da nicht stimmt.
Wichtig ist, mach regelmäßig nen Backup, wenn die Datenbank weg ist, dann kannst du die Domain nicht nochmal für Friendica nutzen, bzw. die Nutzer nicht nochmal anlegen, weil die Keys sich ändern oder so. Wie auch immer, Backup machen. 😉
Captain Yellow-Turtle likes this.
Captain Yellow-Turtle
in reply to utzer [Friendica] • • •@utzer
Danke, das hatte tatsächlich noch gefehlt.
Unter '/admin/site' fehlten noch diese Einträge:
Nachrichten-Relais
* Verwende Relais-Server
*Geltungsbereich des Relais: Alle
Damit füllt sich jetzt auch meine Community-Seite mit wichtigen GuMo-Posts und ich bin nicht mehr so einsam.
Jetzt fehlt aber eigentlich nur noch eine Dokumentation, wo solche Steps nach der Installation dargestellt werden.
Hinsichtlich cronjob und Backup und sonstigem Zeugs habe ich noch ganz viel zu tun. Ich gehe auch davon aus, dass ich das System noch mehrfach platt machen werde, bevor ich das ernsthaft ins Netz stellen werde.
Michael Vogel
in reply to Captain Yellow-Turtle • • •Bezüglich des Cronjobs: Du kannst auch den Daemon verwenden. Einfach
bin/daemon.php start
auf der Kommandozeile eingeben. Dann benötigst Du nicht mehr den Cronjob.BTW: Es gibt auch ein Addon, damit man Markdown verwenden kannst. Vielleicht ist das was für Dich?
Captain Yellow-Turtle likes this.
Tealk
in reply to Michael Vogel • • •Das Markdown ist dann aber zusätzlich zum BBCode? Oder kann man das ersetzen?
Michael Vogel
in reply to Tealk • • •Captain Yellow-Turtle
in reply to Michael Vogel • • •Hinsichtlich der Warnungen zu den Usern: Das muss ich so akzeptieren - ich sehe das hier noch alles als experimentell an und mache noch keine festen Bindungen. Dann sind die halt weg und ich mache es neu.
Wichtiger ist mir ein wirklich sauber aufgesetztes System zum Start.
Michael Vogel
in reply to Captain Yellow-Turtle • • •BTW: Das Einfachste ist, das System über "git" aktuell zu halten. Wenn Du das machst, reicht ein regelmäßiges "git fetch", um immer auf dem letzten Stand zu sein. Datenbankupdates führt das System automatisch aus.
Steffen K9 🐰
in reply to Michael Vogel • • •Michael Vogel
in reply to Steffen K9 🐰 • • •Steffen K9 🐰 likes this.
Tealk
in reply to Michael Vogel • • •shell-administration-script
Codeberg.orgutzer [Friendica]
in reply to Steffen K9 🐰 • • •Bei der Dockervariante zieht man sicher eher neue Docker Images, wobei ich mich da leider nicht auskenne und die Anleitung für Friendica mit Docker sehr wenig umfangreich ist. 😔
Captain Yellow-Turtle likes this.
Michael Vogel
in reply to utzer [Friendica] • • •Captain Yellow-Turtle
in reply to Michael Vogel • • •Welch fundamentale Fehleinschätzung meiner Fähigkeiten.
Bin mir hinsichtlich das Updates auch noch nicht sicher. Eigentlich verstehe ich ein System mit Docker eher als etwas, was man während des Build-Prozesses als Image-Erneuerung durchzieht und ausrollt.
Da ist sicher noch viel Potential für Probleme.
Tealk
in reply to Captain Yellow-Turtle • • •bei docker zieht man einfach das image und startet das, die Einstellungen werden dann im start command mitgegeben
bei docker compose wird das quasi lokal erstellt und die Einstellungen findet man in der docker-compose.yml
utzer [Friendica]
in reply to Tealk • • •Jakob
in reply to Tealk • • •Für die persistente Datenspeicherung benötigt man in Docker sogenannte Volumes. Die werden entweder im Filesystem unter /var/lib/docker (hängt von der distribution ab) angelegt und sind nur schwer zu finden...
Oder man configuriert explizit ein Volume und kann es irgendwo im Filesystem eingehängt haben. Das kann dann auch ein NFS-Share oder ähnliches sein.
Wenn man eine ganze Friendica-Umgebung mit Datenbank und sonstigem Pipapo möchte, dann macht man das am Besten mit docker-compose. Da werden die Container auch gleich in der richtigen Reihenfolge gestartet usw.
Ansonsten, wenn man auf externe Filesysteme speichern möchte, kann man - und das ist die noch schönere Variante - ein z.B. NFS-Share direkt in den docker-container an der entsprechenden Stelle mounten - ohne den Umweg zu gehen, dass das NFS-Share im Lokalen Filesystem eingehängt, und dieses Verzeichnis dann als Volume in den Container gehängt wird.
Für automatisierte Deployments via Docker ist natürlich die Variante mit einem klar definierten Volume am Lokalen Filesystem, welches im Vorfeld entsprechend gemountet wird (oder eben nicht, weil das FS groß genug ist) die deutlich praktikablere.
Updates?
Nun ja... Die Maintainer bauen ein neues Docker Image, welches am Docker Hub bereitgestellt wird.
Der Instanz-Admin holt sich diese(s) Images z.B. bei docker-compose mit pull und build. Geht mit Docker ganz ähnlich.
Migrationen der Datenbank, weil sich die Schemata geändert haben, müssen mit Postinstall-Skripten bzw. Build-Skripten durchgeführt werden - soweit ich das verstanden habe.
like this
Tealk and Captain Yellow-Turtle like this.
utzer [Friendica]
in reply to Jakob • • •Jakob
in reply to utzer [Friendica] • • •Volumes innerhalb hingegen schon. Ohne der Volumes wäre sowas nämlich nicht persistent. Und das will man ja verhindern. Solange der Container besteht, gibts die Daten, beendet man den Container (z.B. start mit docker mit der Option --rm, damit der Container "aufgeräumt wird" am Ende) ist alles weg. Das verhindern eben die Volumes. Die muss man aber für die Daten und Datenbank-Verzeichnisse innerhalb des Containers in docker-compose explizit definieren.
Datenbank-Dumps und auch Datendumps lassen sich mit Docker natürlich auch machen. Ich glaub, in der Installationsanleitung von Pleroma ist das sehr genau und detailliert erklärt, wie man die Datensicherung von Pleroma aus Docker heraus macht. Oder wars Lemmy... Muss ich schauen. Dann poste ich den Link noch hier.
Was die Lemmy-Leute meiner Meinung nach ungünstig machen... da wird "nur" ein docker-compose-File ausgeliefert. Darin ist "alles" konfiguriert. Unter anderem eben auch die Datenbank-Connection mit Username und Passwort... welches auf "lemmy" und "lemmy" gesetzt ist...
Die Snikket-Developers haben das "besser" gelöst. So eine Datenbankverbindung ist ja doch durchaus sensibel und sollte nicht mit Standard-Passwort abgesichert sein.
In einem extra Config-File, welches in docker-compose dann eingelesen wird, werden DB_PASSWORT, DB_USER, DB_CONNECTION und DB_DATABASE definiert und können so instanz-spezifisch und deployment-unabhängig abgelegt werden.
Wenn ihr vorhabt, Friendica per docker/docker-compose vorkonfiguriert auszuliefern, dann würde ich auf jeden Fall solche instanzspezifischen Werte in ein extra (per .gitignore ignoriertes) File legen. In Git für die Docker-installation kann man allerdings ein config.example-File ausliefern, welches Default/Beispielwerte für alle konfigurierbaren Werte enthält.
Die Admin-Adresse(n) z.B. könnten da rein, und ob Föderation aktiviert ist, oder nicht. und eben die Datenbank-Zugangsdaten.
Wenn man dann geübter ist mit docker/docker-compose, könnten natürlich auch Volumedefinitionen für ein NFS- oder Glusterfs-Share für die Daten-Verzeichnisse rein. Mit S2-Shares von Amazon bin ich nicht vertraut, aber auch sowas könnte dort natürlich rein, wo die Daten abgelegt werden können.
nextcloud z.B. hat schöne Vorlagen für docker-compose, wo auch ein Proxy mit an Bord ist, der die Domain auch gleich per Lets Encrypt automatisch absichert und sich ums erneuern des Zertifikates selbst kümmert. Das ist sehr komfortabel für ein einfaches Deployment für ungeübte Admins.
Ich kann gern mit meiner Erfahrung, die ich in den letzten Jahren diesbezüglich gesammelt habe, behilflich sein. Von "Experte" bin ich zwar auch weit weg, konnte aber durchaus wesentliches lernen.
Philipp Holzer likes this.
utzer [Friendica]
in reply to Jakob • • •Ich glaube er freut sich da sicher auch über Pullrequests oder Tipps oder besser noch Austausch. Hoffe ich schreibe da jetzt nicht irgendwas und er findet das blöd.
Repo:
https://github.com/friendica/docker
Mein Traum wäre ja, das es etwas N00b tauglicher wäre, vieles oder das meiste Vorkonfiguriert mit klaren Angaben was man noch anpassen muss.
friendica/docker
GitHubJakob likes this.
Jakob
in reply to utzer [Friendica] • • •Dazu gibts eine auf conversations basierende App, welche du für die Registrierung als Useraccount benötigst. Dann hast du mit einem
docker-compose up
einen fix fertigen XMPP-Server, der gleichwertig mit allen anderen im Netz nutzbar ist.
Für noobs ausgezeichnet, für mich zu wenig konfigurierbar :)
Aber ja... friendica ist ganz sicher auch so hinzukriegen.
Und ich werd mich da gerne beteiligen.
utzer [Friendica]
in reply to Jakob • • •# Expert settings, only change if you know what you're doing
oder so.
Philipp Holzer
in reply to utzer [Friendica] • •utzer [Friendica] likes this.
utzer [Friendica]
in reply to Philipp Holzer • • •Philipp Holzer
in reply to utzer [Friendica] • •Ja bitte sehr gerne! Jede Unterstützung/Input/Verbesserung ist herzlich willkommen
Philipp Holzer
in reply to Jakob • •Mein Vorbild war auch Nextcloud, die hier schon einen guten Job gemacht haben/machen. D.h. viele der Friendica-README / Einstellungen sollten aus Nextcloud-Sicht wiedererkennbar sein *gg*
utzer [Friendica]
in reply to Philipp Holzer • • •Captain Yellow-Turtle
in reply to Michael Vogel • • •Dann suche ich jetzt mal, was ich damit denn eigentlich feines getan habe. Relay-Server - WTF!?!
TNX
Michael Vogel
in reply to Captain Yellow-Turtle • • •Captain Yellow-Turtle likes this.
Steffen K9 🐰
in reply to Michael Vogel • • •Captain Yellow-Turtle likes this.
Steffen K9 🐰
in reply to Steffen K9 🐰 • • •Captain Yellow-Turtle
in reply to Steffen K9 🐰 • • •Steffen K9 🐰 likes this.
Jakob
in reply to Michael Vogel • • •Jakob
in reply to Michael Vogel • • •@Captain Yellow-Turtle
utzer [Friendica]
in reply to Jakob • • •bin/console relay add https://relay.chemnitz.social/actor
Im Basisverzeichnis von Friendica ausführen und als Nutzer den vom Webserver nutzen.
Jakob likes this.
Captain Yellow-Turtle
in reply to Captain Yellow-Turtle • • •https://forum.friendi.ca/display/ec054ce7-185f-650e-f885-dbc719906155
Tealk
in reply to Captain Yellow-Turtle • • •utzer [Friendica]
in reply to Tealk • • •Tealk
in reply to utzer [Friendica] • • •utzer [Friendica]
in reply to Tealk • • •Tealk likes this.
utzer [Friendica]
in reply to utzer [Friendica] • • •Hier dein link
https://social.yl.ms/display/989be456-1460-aba9-8a40-5d5889509195
Tealk
social.yl.msTealk likes this.
utzer [Friendica]
Unknown parent • • •Philipp Holzer likes this.
Jakob
Unknown parent • • •Für einen Enterprise-Betrieb ist docker natürlich nix. Aber für den "Hobby-Admin" taugt docker durchaus ausreichend.
@utzer
utzer [Friendica]
Unknown parent • • •Jakob
Unknown parent • • •@utzer
Captain Yellow-Turtle
Unknown parent • • •Captain Yellow-Turtle
in reply to Captain Yellow-Turtle • • •Mein Setup umfasst 3 Services mit einem Apache als ReverseProxy, einer Friedica-Instanz und einer Datenbank. Logs, Daten und Datenbank liegen in Volumes wegen Persistenz und so.
Wie geschrieben - ich stehe hier noch relativ weit am Anfang, sowohl bei #Friendica als auch bei #Docker. Das Projekt ist experimentell und besonders auch zum Lernen gedacht.
docker-compose.yml:
like this
utzer [Friendica] and Jakob like this.
utzer [Friendica]
in reply to Captain Yellow-Turtle • • •build:
, also bspw. inbuild: ./friendica
drin? Das sind ja einfach Ordner, also ./friendica im Ordner von das compose.yaml liegt, oder?Was spricht eigentlich dagegen die volumes alle in einen Ordner zu machen, also als Unterordner, die Compose-Dateien sehen das oft so vor und ich meine ohne Compose macht das Docker das von sich aus auch so. Aber irgendwie fände ich persönlich angenehmer, wenn es alles im aktuellen Ordner speichern würde, was aber aus einem mir nicht verständlichen Grund scheinbar gegen die Philosophie verstößt oder so.
Captain Yellow-Turtle
in reply to utzer [Friendica] • • •Jakob
in reply to Captain Yellow-Turtle • • •Man kann den container direkt in docker-compose.yml angeben, oder man macht es so und hat dann darin ein weiteres Dockerfile, welches den Container angeibt und noch weitere Modifikationen erlaubt.
Z.B. eine config-datei vom lokalen Filesystem noch reinkopieren oder Variablen setzen, oder Pakete im Container nachinstallieren/upgrades durchführen usw.
Damit hat man ein wenig mehr Flexibilität beim ansich recht starren Container-System
utzer [Friendica] likes this.
Jakob
in reply to Captain Yellow-Turtle • • •Captain Yellow-Turtle
in reply to Jakob • • •Jakob
in reply to Captain Yellow-Turtle • • •sodass es eines mit sslund eines ohne ssl gibt
utzer [Friendica] likes this.
Paula Gentle on Friendica
in reply to Jakob • • •Meine Fresse - hab's immer noch nicht gecheckt. Hab doch gestern gar nicht gesoffen!?!
Wenn es darum geht, dass Du mein compose-File benutzen und zur Verfügung stellen möchtest: Bitte gern. Wenn die Schöpfungshöhe auch nicht besonders groß ist.
Ansonsten habe ich das ja schon, LE wird im ReverseProxy integriert. Und ein ReverseProxy ohne TLS hat IMHO keine Daseinsberechtigung.
BTW: Momentan finde ich die Trennung von ReverseProxy und der Friendica-Instanz sowie Datenbank via Compose ganz schick. Von Friendica kommt im wesentlichen das Docker-Image, aber beim Frontend hat so jeder die Möglichkeit, seinen präferierten Webserver einzusetzen. Viele schwören auf #nginx, bestimmt ebenso viele setzen aus Gründen auf #Apache. Und da waren ja noch mehr gute Kandidaten.
Aber vermutlich habe ich noch nicht verstanden, worauf Du hinaus möchtest.
Philipp Holzer
in reply to Captain Yellow-Turtle • •Ich versuche mal konkret auf die Umgebung von @Captain Yellow-Turtle einzugehen und die Fragen runderhum:
docker-compose file aus deinem vorherigen Kommentar
db:3306
innerhalb vonnet-backend
zugreifenbuild: ./apache2
Dockerfile das SSL-Zertifikat manuell? Sonst wird das mit dem 443 Port nicht klappenv-friendica
volumen imfriendica
container - Achtung dadurch kommt es zum Datenverlust wenn du den container entfernst (z.B. durch updatesUpdate-Strategie
Es gibt 2 grundlegend unterschiedliche Images von Friendica
stable / latest / 2021.04
... Das ist ein statischer Container, der bereits mit einer fix fertigen Umgebung auf Basis des Friendica-Archivs kommt. D.h. der aktualisiert sich auch nicht automatisch .. Ausser wenn es eine neue Release gibt und das Docker image offiziell aktualisiert wird .. Dann aktualisiert sich bei einemdocker-compuse pull
automatisch auch das image und perdocker-compose up -d
aktualisiert sich die instanz automatisch. - Diese Variante ist zu bevorzugen, wenn man stets am "stable" Pfad bleiben willdevelop / RC
... Das ist ein dynamischer Container, der sich bei einem Restart / der Initialisierung automatisch pergit clonse
die zugehörige develop-/rc-files aus github runterlädt und in den container synct & updated - Diese Variante ist zu bevorzugen, wenn man auf dem "Letztstand" bleiben will. Es gibt je ein image für develop und eins für einen RC-stand (je nach entwicklungsphase)Man kann immer nur in die gleiche oder höhere Version mit seiner instanz wechseln, das wird beim starten des containers automatisch geprüft.
Falls es dich interessiert zwecks Infos - hier meine aktuelle
docker-compose
für diesen Knoten hier (meine Spielwiese ):like this
utzer [Friendica] and Captain Yellow-Turtle like this.
Captain Yellow-Turtle
in reply to Philipp Holzer • • •Großartig - vielen Dank für die detailierte Antwort! Ich werde einiges davon mitnehmen/einbauen und vielleicht zu einem späteren Zeitpunkt gern noch einmal darauf zurück kommen. Momentan ist gerade ungünstig.
TNX
Nur so viel:
1. Ja, TLS-Zertifikate gebe ich momentan noch manuell im Build rein.
2. Du hast es richtig gesehen - ein Volume fehlt. Im Original steht:
Ist wahrscheinlich beim Ausdünnen des Posts versehentlich rausgeflogen, jedenfalls wurden die Daten bislang im Volume gespeichert und haben schon mehrere Container-Cleanups überstanden.
Philipp Holzer likes this.
Philipp Holzer
in reply to utzer [Friendica] • •Philipp Holzer
in reply to utzer [Friendica] • •Philipp Holzer
in reply to Jakob • •D.h. Friendica sollte dann nur mehr den business-core zur Verfügung stellen und der Rest läuft im Cluster über standard-services :) .. Und dann skaliere ich horizontal und DAS ist dann schon wieder enterprise fähig wenn ich "Cloud computing" vor Augen habe
Philipp Holzer
Unknown parent • •Und das ist auch der Hintergrund der Konfig-Eigenschaften, die ich beim docker image erweitere --> Soweit ich Cluster kenne, werden die per versionierte Configs gesteuert (Configuration as a Code), dadurch kann man zu jedem Zeitpunkt nachvollziehen, was sich wann geändert hat und wie es den cluster beeinflusst hat (und auch schnell zurückrollen im problemfall)