Ich bin im Fediverse. Schon ewig. Und ich steh drauf meinen eigenen Kram zu machen. Angefangen hatte damals alles mit einem eigenen Friendica Server, danach hab ich alles mögliche ausprobiert, bin parallel schnell bei Hubzilla gelandet und damit immer noch mehr als zufrieden. Hubzilla kann mehr als nur Fediverse, es ist ein mächtiges CMS, es ist "mein Büro". Und manchmal ist es eben ganz einfach ein wenig zu mächtig :-)
Ich wollte gerne für "die schnelle Kommunikation" etwas schlankes, unkompliziertes, etwas einfaches. Und wieder über ein paar Umwege bin ich zufällig auf Snac2 gekommen. Und war sehr schnell sehr angetan, alles was auf dem ersten Blick etwas unkomfortabel wirkt, ist auf dem zweiten Blick eine clevere Lösung.
Was ist Snac2 überhaupt?
"A simple, minimalistic ActivityPub instance, written in C"
- Lightweight, minimal dependencies
- Extensive support of ActivityPub operations
- Multiuser
- Mastodon API support, so Mastodon-compatible apps can be used
- Simple but effective web interface
- Easily-accessed MUTE button to silence morons
- Tested interoperability with related software
- No database needed
- Totally JavaScript-free
- No cookies either
- Not much bullshit
Keine Datenbank! Kein JavaScript! Keine Cookies!!
"snac stands for Social Networks Are Crap." :-)
Mein erster Snac-Server war vorinstalliert, ich musste mich nur um die Updates kümmern, ansonsten war es ein tolles Rundumsorglos Paket. Aber wie das so ist, der Service wurde geschlossen und ich wollte weiterhin einen Snac-Server haben.
Bei Uberspace war ich eh schon mit diversen Projekten und ich dachte mir, es wird doch wohl möglich sein auch einen Snac-Server dort zu installieren.
Ich bin kein Programmierer, kein Coder, aber ich kann Copy/Paste, es gibt das UberLab und ich verstehe Zusammenhänge.
Also hab ich einfach losgelegt. Vorteil: Snac ist sehr gut dokumentiert. Noch ein Vorteil: bei Uberspace gibt es den besten Support überhaupt! Wenn ich nicht weiter wusste, dann gabs aus dem Team den nötigen Denkanstoß. Lernen leicht gemacht, klasse!
Also los jetzt.
Wie bekomme ich meinen eigenen Snac-Server auf einen Uberspace?
Du brauchst natürlich einen Uberspace und die Logindaten.
Der Großteil wird über Kommandozeile/Terminal erledigt.
Also einloggen und schon bist du in deinem Home-Verzeichnis (das sieht ungefähr so aus: [isabell@stardust ~] ) und wirst als erstes die aktuelle Version aus dem Repository mit Git klonen:
git clone https://codeberg.org/grunfink/snac2.git snac2
Das snac2 Verzeichnis wurde erstellt, wechsel dort hin:
cd ~/snac2
Prüfe ob du die Master Version hast, die ist immer die beste Wahl, weil gut erprobt:
git checkout master
Führe nacheinander folgende Befehle aus um ein neues OpenSSL und ein neues cURL zu installieren:
export LDFLAGS="-lrt -L/usr/lib64/openssl11 -L/opt/ubrspc/curl/lib64"
export CFLAGS="-I /opt/ubrspc/curl/include -I/usr/include/openssl11"
(Diese beiden Schritte sind noch bei U7 notwendig, mit dem kommenden U8 sollte sich das erledigt haben)
Danach wird kompiliert:
make
PREFIX="$HOME" make install
Jetzt kannst du prüfen ob Snac installiert wurde und mit welcher Version. Der Befehl:
snac | head -1
ergibt irgendwas ähnliches wie das hier:
snac 2.85 - A simple, minimalistic ActivityPub instance
Prima.
Jetzt noch das WebBackend setzen, Snac läuft auf Port 8001:
uberspace web backend set / --http --port 8001
Wir wechseln zurück vom snac2 Verzeichnis ins Home-Verzeichnis:
cd..
Als nächstes wird Snac initialisiert, führe dazu folgendes aus:
snac init snac-data
Folgendes wird Schritt für Schritt abgefragt, du musst nur zwei Einträge machen:
1. Die Network adress muss 0.0.0.0 sein
2. unter Host Name muss deine Domain eingetragen werden (ohne http://). Das alles sollte ungefähr so aussehen:
Network address or full path to unix socket [127.0.0.1]: 0.0.0.0
Network port [8001]:
Host name: DeineDomain.de
URL prefix:
Admin email address (optional):
Klasse, damit wurde der Ordner "snac-data" erzeugt und die darin liegende Datei server.json erzeugt, der Dreh- und Angelpunkt deines Snac Servers. In dieser Datei kannst du später diverse Anpassungen vornehmen, für den Anfang passt alles schon recht gut.
Für den nächsten Schritt musst du dich mittels eines FTP Programms auf deinen Webspace einloggen, du wirst in deinem Home Ordner landen und öffnest den Ordner services.d:
/etc/services.d
In diesem Ordner erstellst du eine leere Datei mit dem Namen
snac.ini
Öffne diese Datei und trage folgendes ein:
[program:snac]
command=/home/DEIN-ASTEROID/bin/snac httpd /home/DEIN-ASTEROID/snac-data
autostart=yes
autorestart=yes
startsecs=30
Ändere DEIN-ASTEROID auf den Namen deines Uberspaces. Speichern. Schließen.
Du hast damit einen Service oder auch Daemon erstellt und bist auch schon fertig auf dem Webspace, der Rest wird wieder über das Terminal erledigt.
Mit Supervisord wird der Service eingelesen und gestartet, gib im Terminal nacheinander folgende Befehle ein, du bekommst nach jedem Befehl einen kurzes Status was grade erledigt wurde:
supervisorctl reread
supervisorctl update
supervisorctl status
Wenn nach dem letzten Befehl etwas wie das hier erscheint:
snac RUNNING pid 14710, uptime 0:00:36
dann hast du alles richtig gemacht.
Snac2 läuft. Bravo!
Nun muss natürlich noch ein User angelegt werden. Auch das geschieht (ausschließlich) über das Terminal, mit folgendem Befehl:
snac adduser snac-data
Erstelle einen Usernamen, anschließend wird ein temporäres Passwort erzeugt und ein Link der dich im Browser zu deinem neu erstellten Snac User bringt. Logge dich ein, ändere das Passwort und los gehts, willkommen im Fediverse! :-)
Snac updaten?
Auch ganz einfach.
Log dich über Terminal ein.
Gehe ins Snac Verzeichnis:
cd ~/snac2
dort holst du mit Git die aktuelle Version:
git pull
Anschließend wieder wie bei der Erstinstallation, kompilieren und installieren:
export LDFLAGS="-lrt -L/usr/lib64/openssl11 -L/opt/ubrspc/curl/lib64"
export CFLAGS="-I /opt/ubrspc/curl/include -I/usr/include/openssl11"
make
PREFIX="$HOME" make install
Danach den Service neu starten:
supervisorctl restart snac
Fertig :-)
Das solltest du beachten
Immer wenn du etwas in der server.json änderst, musst du anschließend den Service neu starten.
Ebenso wenn du im CSS rumschraubst oder ein anderes Theme verwenden möchtest.
supervisorctl restart snac hilft immer.
supervisorctl status hilft auch, einfach nur um zu schauen ob der Service läuft.
Und glaub mir, du wirst irgendwann sowohl in der server.json rumfummeln als auch mit den Themes spielen. Gut so!
