matrixdotorg/synapse

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.478
Punkte für Reaktionen
362
Punkte
103
Per Yaml Spezifikation müssen Werte mit Zeichenketten nicht zwingen mit Hochkomma oder Anführungszeichen versehen werden - allerdings schadet es auch nicht sie zu verwenden.

Ohne hier deine genauen Konfigurationen zu teilen, bleibt es alles ein munteres Raten. Ein "ich habe mich an Anleitung X" gehalten, ist immer wenig hilfreich, denn würde man sich genau daran gehalten haben und genau verstehen wo Transferwissen notwendig ist würde es laufen, oder?
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
muss ich, ohne wertung, leider zustimmen.

noch ganz kurz zur IP:
Das du mit der IP deriner Syno mit clients auf die postgres-db kommst liegt daran, das der docker host (deine syno) auf jedes netzwerk kommt. innerhalb des synapse containers sieht das aber anders aus. da hilft die IP deiner syno leider wenig. hier gibts nur 2 möglichkeiten. entweder der name des postgres containers (in meiner anleitung habe ich "postgres" verwendet). da docker ein internes eigenes dns hat wird das immer und zuverlässig funktionieren und hat den vorteil das es bei IP wechsel immer noch geht!
oder du verwendest die IP des postgres containers im postgres-net netzwerk (laut deines bildes 172.19.0.x, wahrscheinlich 172.19.0.1).
alles andere ist sehr wahrscheinlich falsch.

Gruß
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.478
Punkte für Reaktionen
362
Punkte
103
Solange der Container kein MACVLAN-Interface verwendet, kann er auch über einen Published-Port eines Containers miuttels NAS-IP:published-Port auf diesen zugreifen. Technisch möglich, aber bei weitem nicht die sinnvollste Lösung :)

Ich rate dringen davon ab ips von Containern zu verwenden - wie 3x3cut0r schon geschrieben hat: es ist keine dauerhafte Lösung.

Der sauberste Weg ist nach wie vor beide Container in das selbe Netzwerk zu packen. Nur dann funktioniert Service-Discovery über DNS-Namen und die Container können sich gegenseitig mit ihren Containernamen ansprechen. Natürlich muss man nach wie vor den Container-Port adressieren, auf dem der jeweilige Service lauscht..
 
  • Like
Reaktionen: ChiliApple

mmvisual

Benutzer
Mitglied seit
25. Jan 2021
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für die Anleitung!

Sieht im super einfach aus und ich wollte das auch mal probieren.
Leider habe ich schon zu Anfang bei "Docker-Container für PGadmin4 anlegen" das Problem, dass der Docker-Container startet aber nach wenigen Sekunden sich wieder beendet.
Unter "Details" > Protokoll steht diese Fehlermeldung:

WARNING: Failed to set ACL on the directory containing the configuration database:
[Errno 1] Operation not permitted: '/var/lib/pgadmin'
HINT : You may need to manually set the permissions on
/var/lib/pgadmin to allow pgadmin to write to it.
NOTE: Configuring authentication for SERVER mode.

Aus irgend einem Grund hat pgAdmin keine Rechte auf die Ordner und kann nicht schreiben. Das zu erst installierte "postgres:13.1-alpine" läuft, und konnte seine eigene Unterorder anlegen, nur der Docker von pgAdmin schafft das irgendwie nicht.

Weil das nicht ging habe ich schon alles mögliche probiert und Rechte kompett vergeben (sudo chmod 777 -R /volume1/docker/pgadmin)
Auch neue User angelegt usw.
Aber ich komme da einfach nicht weiter. Der pgAdmin Docker Conainter startet und beendet sich immer mit dem gleichen Fehler.

Anbei die Screenshots der Konfiguration und dem Protokoll.

Anhand dieser Wiki-Seite bin ich vorgegangen:
https://www.synology-wiki.de/index.php/Synapse_mit_Docker
Ich hoffe ihr könnt mir helfen. Vielen Dank.

Viele Grüße

Die Konfiguration:

Bild1.png
Bild2.pngBild3.png
Die Ausgabe im Protokoll:
Bild4.png
 
Zuletzt bearbeitet von einem Moderator:

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Hi,
jo ich schätze ich habe in der Eile vergessen zu erwähnen, das die Ordnerberechtigungen von /volume1/docker/pgadmin geändert werden müssen. Und zwar muss die UID und GID des Ordners mit der des pgadmin-Benutzers im Docker-Container pgadmin übereinstimmen. Dieser hat die UID=5050 und GID=5050.
Siehe hier:
Screenshot 2021-01-25 at 17.59.12.png

Heist für dich du musst einmal folgendes auf Console als root ausführen:
Code:
chown -R 5050:5050 /volume1/docker/pgadmin
chmod -R 0700 /volume1/docker/pgadmin

Den Docker-Container würde ich dann löschen und anschließend gemäß Anleitung neu erstellen.

Meld dich nochmal wenns das war. Dann werd ich das im wiki entsprechend ergänzen.

Das ist das Problem wenn man alles erst selber macht und am Ende wenns funktioniert gefühlt 50 Schritte im Kopf danach auswendig versucht zu reproduzieren. Da kann sowas schonmal unter gehen :geek:

Gruß
 

mmvisual

Benutzer
Mitglied seit
25. Jan 2021
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für den Tipp!

Diese 2 Zeilen haben nun dieses eine Problem gelöst.

Zu meiner Konfiguration:

a) Direkt auf der Synology DS ist der Port 5432 bereits in Benutzung, ich weiß nicht von welchem Dienst, jedoch ist der schon belegt. Daher musste ich im Docker von "postgres" den Port umstellen auf "Lokaler Port = 5433" <> "Container-Port = 5432". Erst danach lief der Docker von postgres.

b) Auf meinem lokalen PC habe ich den pgAdmin4 installiert, damit kann ich auch die lokale PG Datenbank administrieren. Jedoch kann ich mich damit nicht mit der DB vom Server verbinden. Ich lege da einen neuen Server an, mit der TCP/IP Adresse von der Discstation und Port 5433. Leider jedes mal Abburch mit Timeout.

Nun zurück zum Docker "pdAdmin". Er zeigt nun im Protokoll deutlich weniger Fehler, somit das Rechte-Problem behoben.
Leider lässt sich das pgAdmin Docker immer noch nicht starten und zeigt dies im Log:
Bild1.png
Vielen Dank für die Hilfe.

Ich schreibe hier alles was mir auffällt, dann sollte das Wiki komplett werden. Mein Vorteil: ich habe heute zum ersten mal "Docker" auf meiner Synology installiert, daher ist das alles "jungfreulich" (und Problembehaftet :-( ).

Viele Grüße


PS Noch eine weitere Frage.
In der Anleitung steht dass man die URL: https://pgadmin.yourdomain.synology.me in den Web Browser eingeben soll. Aber wenn ich das von meinem PC aus mache dann will mein Firefox im Internet irgend eine Seite öffnen die es nicht gibt. Kann man da nicht ein TCP/IP : PORT Adresse eingeben?
 
Zuletzt bearbeitet:

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
hmm könnten jetzt mehrere sachen sein. sind deine pgadmin und postgres container im selben netzwerk? ist nun beides correct erstellt bzw. neu erstellt worden. nicht das es aufgrund der fehlerhaften berechtigung schon fehlerhafte dateien gab oder so. ich würde nochmal alles löschen und neue machen, incl der ordner leeren.

zu deiner weiteren frage:
du kannst natürlich auf dieser URL keine seite erreichen, da ...yourdomain... eine ausgedachte seite ist. da muss natürlich deine eigene rein!
falls du keine hast kannst du dir eine erstellen. dazu gibts sehr gute youtube-videos (empfehlung von idomix)
außerdem muss ein reverse-proxy-eintrag dafür existieren (hier pgadmin)...
falls du ohne domain darauf zugreifen willst dann per IP-Adresse deiner NAS http://<ip-deiner-nas>:8180
damit das wiederum ohne reverse-proxy funktioniert, in dem falle das deine firewall an ist, muss auch noch der tcp-port 8180 auf deiner nas freigegeben werden.


Gruß
 

mmvisual

Benutzer
Mitglied seit
25. Jan 2021
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Aus der Beschreibung der Konsole-Befehl: "docker container run ...."
Besser vielleicht Screenshots rein machen wie man das über die Synology Weboberfläche das Docker-Image konfiguriert.
Denn damit hat man als "Anfänger" viel leichter als diese kryptische Konsole-Befehle. Vor allem werden im Dialog die Eingabefehler schon direkt erkannt und man kann das leichter korrigierten. Ein Anfänger kopiert immer 1:1 diese Konsole-Zeile weil der keine Ahnung davon hat welcher Buchstabe was bedeutet und dann funktioniert das ganze nicht mehr.

Jedenfalls, das pgadmin mag bei mir nicht. Auch nach mehrmaligem löschen und neu machen immer noch nicht.
Dafür habe ich es hin bekommen dass postgresql nun über Netzwerk und über das pgAdmin von meinem PC aus konfigurierbar ist.
Danke für den Tipp mit der "Firewall", das war es :)

Ansonsten solle die Doku vielleicht besser mit den direkten TCP/IP Adressen aufgebaut werden, denn die URL Namen funktionieren in der Regel nur dann wenn man über Internet drauf zu greift oder wenn der entfernte Rechner die Disc-Station als DNS kennt. Wer eine andere Firewall im Netz hat und diese die DNS ist kann man mit der Vergabe einer URL rein gar nichts anfangen. Daher ist es besser mit den richtigen Adressen zu arbeiten. Kann man ja in der Doku rein schreiben, dass die DS z.B. die TCP/IP Adresse 192.168.5.5 hat.

Vielen Dank für die Hilfe!
Nun werde ich weiter machen mit den nächsten Punkten aus dem Wiki ... und auch wieder Bescheid geben wenn mir was auf fällt wo man vielleicht anders besser machen kann, damit die Anleitung mehr "Anfängerfreundlich" wird.
Ich weiß, Doku schreiben ist sehr schwer, vor allem als Experte geht man von vielen Details aus, das so klar und logisch ist, was ein Anfänger einfach nicht versteht. Ich habe auch schon viele Dokus geschrieben.

Viele Grüße
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Besser vielleicht Screenshots rein machen wie man das über die Synology Weboberfläche das Docker-Image konfiguriert.
Eine bebilderte Anleitung zu bauen ist nicht nur enorm aufwendig, es würde auch die jetzt schon 8 Seiten Anleitung ins unermessliche verlängern mit erheblichen Einbußen in der Übersichtlichkeit.

Denn damit hat man als "Anfänger" viel leichter als diese kryptische Konsole-Befehle. ... Ein Anfänger kopiert immer 1:1 diese Konsole-Zeile weil der keine Ahnung davon hat welcher Buchstabe was bedeutet ...
Ganz ehrlich? dann sollte man es lassen! Ich setz mich ja auch nicht in ein Auto ohne Führerschein.
Soll wirklich kein hate sein, aber bei solchen komplex einzurichtenden Anwendungen wie Synapse geht es leider nicht ohne.

Es sind auch nicht alle Dinge hier über die Oberfläche umsetzbar. Beispiel das Script für die Reverse-Proxy-Einträge oder ganz einfach nur einem Docker-Container CMD-Parameter mitgeben (nein, nicht die Umgebungsvariablen).
Deshalb wurde schon bewusst der Weg über die Console gewählt.
Und Transferleistungen wie z.B. seine eigenen Pfade, IPs, Ports, Container- und Domain-Namen einzusetzen muss man einfach voraussetzen!

Ansonsten solle die Doku vielleicht besser mit den direkten TCP/IP Adressen aufgebaut werden
In Docker-Umgebungen wird aber nicht mit IP-Adressen gearbeitet, sondern mit Container-Namen (DNS-Namen). Und falls du deine NAS z.B. meinst dann auch da nicht. Hier wählt man genauso seine DDNS-Domain! Spätestens wenn man seine Container über das Internet erreichen will kommt man da ohnehin nicht drüber hinweg, wie du ja bereits erwähnt hast.

Wer eine andere Firewall im Netz hat und diese die DNS ist kann man mit der Vergabe einer URL rein gar nichts anfangen.
Klar! Mit funktionierender DNS-Struktur!

Jedenfalls, das pgadmin mag bei mir nicht
Ohne weitere Infors oder Logs kann man hier glaube ich nicht mehr viel helfen ohne selbst drauf zu schauen.

Gruß
 

mmvisual

Benutzer
Mitglied seit
25. Jan 2021
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für die Antwort! Leider weis ich nach vielen Jahren mit Computer immer noch nicht alles. Vieles ist mir einfach auch egal, bzw. ich beschäftige mich erst dann damit wenn ich es auch wirklich brauche. Für was ein PC den DNS braucht weis ich, aber mehr auch nicht. Ich muss wohl da auch noch meine Wissenslücke etwas schließen.

Die Einrichtung per Oberfläche ist für ein "Newcomer" wirklich einfacher.
ABER: diese Einrichtung von dem ganzen Docker und den Images ist so kompliziert, dass ich jetzt schon gefühlte 10x das ganze komplett gelöscht und wieder neu gemacht habe und da ist es in der tat besser man merkt sich die einzelnen Befehle in einer Textdatei, die man dann in der Konsole nacheinander eingibt, daher ist es auch gut wenn die Konsole-Befehle in der Doku stehen.

Das mit dem pgAdmin - damit habe ich gerade kein Lust mehr mich damit rum zu ärgern, da habe ich gestern schon viele Stunden erfolglos damit verbracht. Die Lösung pgAdmin4 einfach auf einem Windows Rechner zu installieren funktioniert gut.

Doch nun zu konkreten Problemen der Beschreibung:

a) "Docker-Container für Postgres anlegen/erstellen":
Im docker Kommando zum Anlagen der Datenbank fehlt der Parameter:
-p 5433:5432 \
Weil auf der DS schon ein Dienst läuft der den Port 5432 belegt.
Um sich dann im Abschnitt "Per Weboberfläche mit PGadmin4 eine neue Datenbank für Synapse erstellen" zu verbinden muss hier der Port 5433 verwendet werden.

b) "Docker-Container für Postgres anlegen/erstellen":
Der Befehl funktioniert soweit. Ich konnte den User "synapse" anlegen. Jedoch beim Anlagen der Datenbank "synapse" kam ein Fehler "sqlite3 blabla Error".

Wie geht es?:
- User "synapse" anlegen
- Docker Container "postgres" anhalten und wieder starten
- Database "synapse" anlegen

c) "Starten des Synapse-Docker-Containers"
Dieser Befehl startet den Synapse Container nicht korrekt, da fehlt der Parameter:
--network postgres-net \
Ohne den kann sich der Synapse Docker Container nicht mir dem PostgreSQL Container verbinden und es werden in der Datenbank keine Tabellen automatisch generiert.

-----
Eine Frage habe ich auch noch:
Meine Firewall habe ich so eng wie mir nur irgendwie möglich ist beschnitten damit eigentlich nichts rein kann.
So habe ich bei den erlaubten Ländern die überhaupt rein dürfen nur Deutschland und ein paar Länder drum herum frei gegeben wo ich in Urlaub gehe oder arbeite. Damit sind schon mal alle Chinesen und Amis (und viele andere) ausgesperrt. Stört das den Synapse Server wenn der sich mit dem "Matrix.Org" Server/Netzwerk synchronisieren will?

Reicht es die Ports 8008 und 8448 weiter zu leiten zur DS?
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Im docker Kommando zum Anlagen der Datenbank fehlt der Parameter:
-p 5433:5432 \
Der fehlt nicht sondern wurde bewusst weggelassen. Wenn beide Container mit gleichem Netzwerk miteinander verbunden sind ist eine Portweiterleitung an den Host nicht nötig! Wenn du allerding per Client von "außen" auf die Datenbank willst dann hast du recht und musst den Port mappen. Für meine Anleitung jedoch nicht vorgesehen.

Jedoch beim Anlagen der Datenbank "synapse" kam ein Fehler "sqlite3 blabla Error".
Hmm verstehe ich nicht, was hat sqlite3 mit dem erstellen der Datenbank in Postgresql zu tun?! :unsure:

Wie geht es?:
- User "synapse" anlegen
- Docker Container "postgres" anhalten und wieder starten
- Database "synapse" anlegen
postgres muss in keinem fall neu gestartet werden. das ist nicht nötig. und ja erst user dann datenbank anlegen. weil der user existieren muss wenn man die datenbank anlegt.

Dieser Befehl startet den Synapse Container nicht korrekt, da fehlt der Parameter:
--network postgres-net
Man kann beim docker run leider nur ein network angeben und muss, wenn man mehrere verwendet, alle weiteren später hinzufügen. deshalb steht auch unter dem befehl vom anlegen noch 'docker network connect postgres-net synapse'
aber ok man könnte im docker run schon das postgres-net hinzufügen und später das synapse-net. das macht wahrscheinlich mehr sinn. ich habe es in der anleitung mal getauscht.

Damit sind schon mal alle Chinesen und Amis (und viele andere) ausgesperrt. Stört das den Synapse Server wenn der sich mit dem "Matrix.Org" Server/Netzwerk synchronisieren will?
JA das stört. Laut https://check-host.net/ip-info?host=matrix.org sind deren Server in den US!

Reicht es die Ports 8008 und 8448 weiter zu leiten zur DS?
Das kommt ganz darauf an was in deiner homeserver.yaml konfiguriert ist und welche Dienste auf welchen ports laufen.
Theoretisch reicht 8008 gemäß meiner Anleitung, da client und federation auf diesem Port laufen.
Für weitere Informationen solltest du dir die Dokumentation auf matrix.org anschauen.

Gruß
 

oschmidt

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
92
Punkte für Reaktionen
31
Punkte
68
Wow.....
Vielen dank für das Tutorial. Ich hatte schon div. Docker Container/varianten etc. etc. probiert aber bin immer an den ReverseProxys gescheitert.

Eine Frage habe ich jedoch:
Beim erstellen der DB habe ich nicht Template0 zur Auswahl, lediglich postgres. Hab die db händisch per ssh angelegt also kein großes Problem ich wäre jedoch an den Gründen Interessiert :)

Zweites Problem:
Unter /etc/nginx/app.d/server.ReverseProxy.conf befindet sich nicht die config (zumindest bei mir, liegt es ggf. an DSM 7?). In DSM 7 liegt die server.ReverseProxy.conf unter /etc/nginx/sites-enabled.
Reicht es wenn ich in zeile 44 "app.d/" durch "sites-enabled/" tausche?


EDIT: Es scheint nicht zu reichen bzw. evtl. ist es doch die falsche Datei?
Der Inhalt wird ersatz bzw. sieht wie folgt aus:

Code:
client_max_body_size 64M;


    }


    location ~* ^(\/_matrix|\/_synapse\/client) {
        proxy_pass http://192.168.178.100:8008;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        proxy_intercept_errors off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        client_max_body_size 64M;
    }


    location /.well-known/matrix/client {
        return 200 '{"m.homeserver": {"base_url": "https://matrix.dsm.XXX.de:443"}}';
        add_header Content-Type application/json;
        add_header Access-Control-Allow-Origin *;
    }


    location /.well-known/matrix/server {
        return 200 '{"m.server": "matrix.dsm.XXX.de:443"}';
        add_header Content-Type application/json;
        add_header Access-Control-Allow-Origin *;
    }


    location /_matrix/maubot {
        proxy_pass http://192.168.178.100:29316;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header X-Forwarded-For $remote_addr;
    }
 
Zuletzt bearbeitet:

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Eine Frage habe ich jedoch:
Beim erstellen der DB habe ich nicht Template0 zur Auswahl, lediglich postgres.
stimmt, ich jetzt auch :unsure:
muss wohl mit einem update gekommen sein. dann wird postgres wohl jetzt default sein. ich werds ändern.

also es ist essentiell das die RP-Einträge vorher per Oberfläche erstellt wurden. anderenfalls funktioniert das script nicht.
liegt es an DSM7? vermutlich. unter dem angegebenen pfad müssen die einträge liegen ...
unter /etc/nginx/sites-enabled machen die RP einträge aber keinen sinn und deine datei ist auch falsch weil da fehlt ja alles.
leider hab ich dsm7 noch nicht drauf oder gesehen und kann mich zu den pfaden äußern.

mir wurde aber gesagt, das man custom RP-Einträge auch wo anders ablegen kann, ohne das die von den Änderungen per Oberfläche überschrieben werden. Dies werde ich mir die Tage mal näher anschauen und ggfls. ein neues Skript schreiben oder es anpassen
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
Hallo,

verwendet jemand von Euch den Synapse mit anderen Chaträumen/Servern? oder nur die Eigenen?

bG Udo
 

oschmidt

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
92
Punkte für Reaktionen
31
Punkte
68
Theoretisch will ich anderen Servern/Räumen beitreten bisher klappt es jedoch semioptimal. Primär möchte Synapse jedoch anders verwenden deswegen liegt mein Fokus gerade woanders.

Wieso?
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
verwendet jemand von Euch den Synapse mit anderen Chaträumen/Servern? oder nur die Eigenen?
Joa ich joine den offiziellen Räumen von matrix.org ... und verwende natürlich bridges zu Whatsapp, Telegram, Signal und Discord
 

mmvisual

Benutzer
Mitglied seit
25. Jan 2021
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Ich habe es leider immer noch nicht hin bekommen.
Ich habe leider auch keine YT Videos gefunden die einem das mit den Subdomains und einer eigenen Firewall/Server Struktur das mal grundlegend erklären. YT Videos wie man das bei einem Provider "X/Y" Durchklickt mit Miet-Server vom Provider gibt es wie Sand am Meer.
Falls jemand einen Tipp hat wäre es sehr hilfreich. Dankeschön.
 

oschmidt

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
92
Punkte für Reaktionen
31
Punkte
68
Joa ich joine den offiziellen Räumen von matrix.org ... und verwende natürlich bridges zu Whatsapp, Telegram, Signal und Discord
Hast du bereits das update zur Signal Bridge gezogen und wenn ja siehst du die Avatars? Trotz Neustart etc. etc. werden die bei mir nicht angezeigt und sehe eig. auch nichts im Log.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat