diff --git a/nixos/roles/matrix/discord-bridge.nix b/nixos/roles/matrix/discord-bridge.nix index 217188b..4868c76 100644 --- a/nixos/roles/matrix/discord-bridge.nix +++ b/nixos/roles/matrix/discord-bridge.nix @@ -54,6 +54,19 @@ "cyperpunk.de" = "user"; "@dergrumpf:cyperpunk.de" = "admin"; }; + + backfill = { + limits = { + initial = { + channel = 10000; + thread = 500; + }; + missed = { + channel = 500; + }; + }; + }; + }; discord = { client_id = "$DISCORD_CLIENT_ID"; diff --git a/nixos/roles/matrix/index.html b/nixos/roles/matrix/index.html index 0d2c996..98ba43a 100644 --- a/nixos/roles/matrix/index.html +++ b/nixos/roles/matrix/index.html @@ -1,14 +1,13 @@ - + Matrix Guide - cyperpunk.de - @@ -31,10 +30,10 @@ -
+

Matrix Guide

@@ -42,52 +41,66 @@

Grid-Operator: @dergrumpf:cyperpunk.de

- -
-

- 1. Identitäts-Allokation (Registrierung) -

+ +

- Zugangsdaten für diesen Server werden exklusiv durch die - Administration autorisiert. Nutze das untenstehende Interface, um eine - Verbindung anzufordern. Die Übertragung erfolgt direkt in unseren - gesicherten internen Koordinationskanal. + Was ist Matrix? Matrix ist ein offenes, + verschlüsseltes Kommunikationsnetzwerk – wie WhatsApp oder Discord, + aber ohne zentrales Unternehmen dahinter. Jeder Nutzer hat eine eigene + Adresse (z. B. @name:cyperpunk.de), Nachrichten + sind Ende-zu-Ende-verschlüsselt, und verschiedene Server können + miteinander kommunizieren. Dieser Server wird privat betrieben und + ist kostenlos nutzbar. +

+
+ + +
+

1. Identitäts-Allokation (Registrierung)

+

+ Zugangsdaten für diesen Server werden exklusiv durch den + Administrator @dergrumpf:cyperpunk.de vergeben. Das untenstehende Formular sendet eine + Anfrage direkt in den internen Koordinationskanal.

- -
+
- +
- +
- -
-

- 2. Protokoll für den initialen Verbindungsaufbau -

- - - -

Schritt-für-Schritt-Protokoll:

-
    -
  1. - Wähle ein Zugangs-Terminal (Client) aus dem folgenden Abschnitt. -
  2. -
  3. - Der Zugriff ist entweder über klassische - User-Credentials oder über das - Single-Sign-On-Protokoll (SSO) möglich. -
  4. -
  5. - Bei der Nutzung von SSO wirst du automatisch zum zentralen - Identitäts-Node unter - auth.cyperpunk.de - (powered by Kanidm) umgeleitet. -
  6. -
  7. - Nach erfolgreicher Authentifizierung wird deine Session für das - Matrix-Grid freigeschaltet. -
  8. -
-
- - +
-

3. Zugangs-Terminals initialisieren

+

2. App oder Browser wählen

- Kopple dein System über eine unserer drei gehosteten - Web-Schnittstellen. Sobald dein Login-Protokoll abgeschlossen ist, - findest du den übergeordneten Hauptbereich (Community Space) im Grid - unter der Adresse #cyperpunk:cyperpunk.de. + Du kannst Matrix entweder direkt im Browser nutzen oder eine App auf + deinem Smartphone installieren. Sobald dein Login abgeschlossen ist, + findest du den Homeserver unter + #cyperpunk:cyperpunk.de.

+

Im Browser starten

+

Wähle eine der drei gehosteten Web-Schnittstellen:

+ @@ -206,130 +167,204 @@

Welches Programm soll ich wählen?

-

Element

+

+ + Element +

- Der mächtige Allrounder. Sieht klassisch aus und - bietet absolut jede Funktion, die Matrix kann. Perfekt, wenn du - Räume selbst verwalten willst. + Der mächtige Allrounder. Klassisches Interface mit + vollem Funktionsumfang. Geeignet für alle, die Räume selbst + verwalten möchten. Unterstützt Sprach- und Videoanrufe direkt im Browser.

-

Cinny

+

+ + Cinny +

- Der moderne Chat. Ist extrem schnell, - übersichtlich und orientiert sich vom Design an Discord oder - Slack. Ideal, wenn du einfach nur bequem schreiben willst. + Der moderne Chat. Schnell, übersichtlich, am + Design von Discord und Slack orientiert. Empfohlen für alle, die + einfach schreiben möchten. Unterstützt Sprach- und Videoanrufe direkt im Browser.

-
-

FluffyChat

+
+

+ + FluffyChat +

- Der einfache Messenger. Bunt, super unkompliziert - und perfekt für Einsteiger, die den Look von WhatsApp oder Signal - bevorzugen. - Achtung: - Diese Web-Version hat keinen Sprach-Chat. + Der einfache Messenger. Bunt und unkompliziert, + vergleichbar mit WhatsApp oder Signal. + Achtung: + Diese Web-Version unterstützt keinen Sprach-Chat.

-
- -
-

4. Mobile App-Konfiguration

+

Auf dem Smartphone nutzen

- Möchtest du von unterwegs aus auf das Grid zugreifen? Lade dir einfach - eine passende App für dein Smartphone herunter: + Möchtest du von unterwegs auf Matrix zugreifen? Lade dir eine + passende App herunter:

-
FluffyChat -

- Bunt, einsteigerfreundlich und ideal für das Smartphone. -

+

Bunt, einsteigerfreundlich und ideal für das Smartphone.

Google PlayGoogle Play App StoreApp Store
-
Element X -

- Die App der nächsten Generation: Extrem schnell, modern und - sicher. -

+

Die App der nächsten Generation: Extrem schnell, modern und sicher.

Google PlayGoogle Play App StoreApp Store
-

- Wichtig beim ersten App-Start: -

+

Wichtig beim ersten App-Start:

  • Überspringe die automatische Registrierung in der App.
  • - Suche nach der Option "Heimserver ändern" (oder - Homeserver wechseln). + Suche nach der Option „Heimserver ändern" + (oder Homeserver wechseln).
  • - Trage dort manuell unsere Server-Adresse ein: - cyperpunk.de + Trage dort die Server-Adresse ein: + cyperpunk.de
  • - Logge dich erst danach wie gewohnt mit deinen Zugangsdaten oder per - SSO ein. + Logge dich erst danach wie gewohnt mit deinen Zugangsdaten oder + per SSO ein.
- -
-

- 5. Sprachkanäle & Speicherplatz limits -

+ +
+

3. Erster Login & Sicherheitsschlüssel

+ + + +

Schritt-für-Schritt-Protokoll:

+
    +
  1. Wähle einen Client aus dem vorherigen Abschnitt.
  2. +
  3. + Der Zugriff ist entweder über klassische + User-Credentials (Nutzername & Passwort) oder über das + Single-Sign-On-Protokoll (SSO) möglich. +
  4. +
  5. + Bei der Nutzung von SSO wirst du automatisch zum zentralen + Identitäts-Server unter + auth.cyperpunk.de + (powered by Kanidm) umgeleitet. +
  6. +
  7. + Nach erfolgreicher Authentifizierung wird deine Session für Matrix freigeschaltet. +
  8. +
+
+ + +
+

4. Wie ist Matrix aufgebaut?

- Unser Server stellt Kanäle bereit, mit denen du direkt über das + Damit alles ordentlich bleibt und du dich gut zurechtfindest, ist + Matrix logisch aufgeteilt. Es gibt im Grunde zwei Ebenen: +

+
    +
  1. + Spaces (Bereiche / Ordner): Der übergeordnete + Bereich – wie ein kompletter Server bei Discord. Ein Space sammelt + verschiedene Rooms (Chats) an einem Ort. +
  2. +
  3. + Rooms (Räume / Chats): Die eigentlichen Text- oder + Sprachkanäle innerhalb eines Bereichs. Hier wird geschrieben, + telefoniert und Material geteilt. +
  4. +
+ +

Tipps für Admins und Moderatoren:

+
    +
  • + Erstelle zuerst einen Space (Bereich), dann packst + du die einzelnen Chats geordnet dort hinein. +
  • +
  • + Verwende klare, einfache Namen für deine Räume – das erleichtert + allen die Übersicht in der Seitenleiste. +
  • +
+
+ + +
+

5. Sprachkanäle & Speicherplatzlimits

+

+ Der Server stellt Kanäle bereit, mit denen du direkt über das Internet mit anderen Mitgliedern sprechen oder Dateien austauschen kannst.

@@ -338,244 +373,34 @@

Anrufe in Gruppen

- Wenn du mit mehreren Personen in einem Raum telefonierst, sorgt - unser Server im Hintergrund automatisch für eine flüssige, stabile - Audio- und Bildübertragung. + Bei Gruppengesprächen in einem Raum übernimmt der Server im + Hintergrund automatisch die Audio- und Bildübertragung für eine + stabile Verbindung.

Direktanrufe (1:1)

Telefonate mit nur einer Person werden sicher und direkt - aufgebaut. Ein integrierter Hilfsdienst sorgt dafür, dass die + aufgebaut. Ein integrierter Hilfsdienst (Coturn) sorgt dafür, dass die Verbindung auch durch Firewalls hinweg klappt.

- -
-

- Dateigröße & faires Teilen -

+
+

Dateigröße & faires Teilen

Das Hochladen von Bildern, Videos oder Dokumenten ist auf maximal - 50 MB pro Datei begrenzt. Da unser - Festplattenplatz auf dem Server nicht unendlich ist, gehe bitte - sparsam mit großen Dateien um. + 50 MB pro Datei begrenzt. Der verfügbare + Festplattenplatz ist begrenzt – ein sparsamer Umgang mit großen + Dateien wird empfohlen.

- -
-

- 6. Server-Strukturen: Chats und Bereiche -

-

- Damit alles ordentlich bleibt und du dich gut zurechtfindest, ist - Matrix logisch aufgeteilt. Es gibt im Grunde zwei Ebenen, um Gespräche - zu sortieren: -

-
    -
  1. - Spaces (Bereiche / Ordner): Das ist die - übergeordnete Klammer – wie ein kompletter Server bei Discord. Ein - Space sammelt verschiedene Chats an einem Ort, damit es - übersichtlich bleibt. -
  2. -
  3. - Rooms (Räume / Chats): Das sind die eigentlichen - Text- oder Sprachkanäle innerhalb eines Bereichs. Hier wird - geschrieben, telefoniert und Material geteilt. -
  4. -
- -

Tipps für Admins und Moderatoren:

-
    -
  • - Wenn du eine neue Gruppe gründest, erstelle am besten - zuerst einen Space (Bereich). Danach packst du die - einzelnen Chats geordnet dort hinein. -
  • -
  • - Verwende klare, einfache Namen für deine Räume. Das macht es für - alle Nutzer leichter, die Übersicht in ihrer Seitenleiste zu - behalten. -
  • -
-
- - -
-

7. Discord-zu-Matrix Referenz-Codex

-

- Verwende diese Referenztabelle, um gewohnte Discord-Strukturen auf den - offenen Matrix-Standard zu mappen: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Discord-KonstruktMatrix-SpezifikationFunktion im Netz
Server / GildeSpace (Bereich) - Ein virtueller Container, der Räume und Entitäten unter einem - Thema bündelt. -
Text- / SprachkanalRoom (Raum) - Der eigentliche Endpunkt für Textnachrichten, Bilddaten oder - Telefonie. -
Direktnachricht (DM)Direkt-Chat - Ein kryptografisch isolierter 1:1-Kanal zwischen zwei Accounts. -
Rollen & RechtePower Levels - Ein numerischer Berechtigungswert (0 bis 100) zur Steuerung von - Moderations-Rechten. -
Nitro EmojisEmote-Packs - Serverweite Sticker- und Emoji-Bibliotheken – dezentral und - kostenfrei. -
-
- - -
-

8. Aktive Automatisierungs-Bots (Maubot)

-

- Das Maubot-Framework erlaubt das Einbinden von - automatisierten Skripten und Funktionen in das Raum-Netzwerk. Unsere - Kerninstanz operiert unter der ID: - @maubot:cyperpunk.de. -

-

- Bedienung: Du kannst die Entität - in jeden beliebigen Raum einladen, um die geladenen - Module per Textbefehl zu aktivieren. Aktive Subroutinen: -

- -
- -
-

Urban Dictionary

-

- Analysiert Slang-Begriffe, Definitionen und sprachliche Variablen - direkt im Raum-Feed.
Dokumentation -

-
- -
-

RSS News-Feeds

-

- Abonniert externe Informations-Feeds und speist Updates - vollautomatisch in den Chat-Stream ein.
Dokumentation -

-
- -
-

Erinnerungs-Engine

-

- Ermöglicht das Setzen von Timern, Cron-Triggern und - zeitgesteuerten Alarmen im Raum.
Dokumentation -

-
- -
-

Wetter-Array

-

- Fragt aktuelle Klimadaten und meteorologische Berichte für globale - Koordinaten ab.
Dokumentation -

-
-
-
- - -
-

9. Discord Bridge Link

-

- Unsere Brücken-Module spiegeln Daten und Signalkanal-Nachrichten - nahtlos zwischen Matrix und externen Discord-Gilden. -

-

- Ident-ID der Discord-Bridge: - @discordbot:cyperpunk.de -

- -

Befehlssatz:

-
    -
  • - Öffne eine Direktverbindung (DM) mit dem Bridge-Bot, um Befehle - direkt einzuspeisen. -
  • -
  • - Im privaten Kommunikationskanal versteht der Bot Befehle direkt über - das Text-Kommando help. -
  • -
  • - Innerhalb von geteilten Räumen muss das Präfix vorangestellt werden: - !discord help. -
  • -
-
- +
-

FAQ – Häufige Fragen

+

6. FAQ – Häufige Fragen

Was ist Matrix?

@@ -594,14 +419,14 @@

Kann ich meinen bestehenden Matrix-Account verwenden?

- Ja. Du kannst von jedem Matrix-Server aus unseren Räumen beitreten – - einfach die Adresse @deinname:deinserver.de verwenden und - den Raum #cyperpunk:cyperpunk.de suchen. + Ja. Von jedem Matrix-Server aus lässt sich dem Raum + #cyperpunk:cyperpunk.de beitreten – einfach die eigene + Adresse @deinname:deinserver.de verwenden.

Wie bekomme ich einen Account auf diesem Server?

- Fülle das Registrierungsformular oben aus. Die Administration prüft + Fülle das Registrierungsformular oben aus. Der Administrator prüft deine Anfrage und schickt dir die Zugangsdaten per E-Mail.

@@ -613,16 +438,179 @@

Was kostet das?

-

- Nichts. Der Server wird privat betrieben und ist kostenlos nutzbar. -

+

Nichts. Der Server wird privat betrieben und ist kostenlos nutzbar.

+ + +
+

Für Fortgeschrittene

+

+ Die folgenden Abschnitte richten sich an Nutzer, die den Server aktiv + mitgestalten oder erweitern möchten – z. B. Bots einbinden, + Discord-Kanäle verbinden oder Matrix-Begriffe mit Discord vergleichen. + Als normaler Nutzer brauchst du das nicht. +

+
+ + +
+

7. Aktive Automatisierungs-Bots (Maubot)

+

+ Das Maubot-Framework ermöglicht die Integration + automatisierter Skripte in das Raum-Netzwerk. Die Instanz dieses + Servers ist erreichbar unter: + @maubot:cyperpunk.de. +

+

+ Bedienung: Die Entität kann + in jeden beliebigen Raum eingeladen werden, um die + geladenen Module per Textbefehl zu aktivieren. Aktive Subroutinen: +

+ +
+
+

Urban Dictionary

+

+ Analysiert Slang-Begriffe, Definitionen und sprachliche Variablen + direkt im Raum-Feed.
+ Dokumentation +

+
+
+

RSS News-Feeds

+

+ Abonniert externe Informations-Feeds und speist Updates + vollautomatisch in den Chat-Stream ein.
+ Dokumentation +

+
+
+

Reminder

+

+ Ermöglicht das Setzen von Timern, Cron-Triggern und + zeitgesteuerten Alarmen im Raum.
+ Dokumentation +

+
+
+

Wetter-Array

+

+ Fragt aktuelle Klimadaten und meteorologische Berichte für globale + Koordinaten ab.
+ Dokumentation +

+
+
+
+ + +
+

8. Discord Bridge

+

+ Die Mautrix Discord Bridge spiegelt Nachrichten nahtlos zwischen Matrix + und externen Discord-Gilden. +

+

+ Ident-ID der Discord-Bridge: + @discordbot:cyperpunk.de +

+ +

Befehlssatz:

+
    +
  • + Öffne eine Direktnachricht (DM) mit dem Bridge-Bot, um Befehle + einzuspeisen. +
  • +
  • + Im DM-Kanal versteht der Bot das Kommando + help direkt. +
  • +
  • + In geteilten Räumen muss das Präfix vorangestellt werden: + !discord help. +
  • +
+
+ + +
+

9. Discord-zu-Matrix Referenz-Codex

+

+ Diese Tabelle zeigt, wie bekannte Discord-Konzepte in Matrix heißen: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Discord-KonstruktMatrix-SpezifikationFunktion im Netz
Server / GildeSpaceEin virtueller Container, der Räume unter einem Thema bündelt.
Text- / SprachkanalRoomDer Endpunkt für Textnachrichten, Bilddaten oder Telefonie.
Direktnachricht (DM)Direkt-ChatEin kryptografisch isolierter 1:1-Kanal zwischen zwei Accounts.
Rollen & RechtePower LevelsEin numerischer Berechtigungswert (0–100) zur Steuerung von Moderations-Rechten.
Nitro EmojisEmote-PacksServerweite Sticker- und Emoji-Bibliotheken – dezentral und kostenfrei.
+
+
diff --git a/nixos/roles/matrix/maubot.nix b/nixos/roles/matrix/maubot.nix index 00f980a..439b6c1 100644 --- a/nixos/roles/matrix/maubot.nix +++ b/nixos/roles/matrix/maubot.nix @@ -12,8 +12,8 @@ rss reminder urban - llm wolframalpha + dice ]; settings = { database = "postgresql:///maubot?host=/run/postgresql"; diff --git a/nixos/roles/matrix/style.css b/nixos/roles/matrix/style.css index c60f86e..2345734 100644 --- a/nixos/roles/matrix/style.css +++ b/nixos/roles/matrix/style.css @@ -100,7 +100,7 @@ section { background: rgba(0, 5, 0, 0.85); border: 1px solid #00ff41; border-radius: 6px; - padding: 30px; + padding: 20px 30px 30px; box-shadow: 0 0 15px rgba(0, 255, 65, 0.1); } @@ -291,6 +291,7 @@ a:hover { grid-column: 1 / -1; } +/* Card title icons */ .card-title { font-size: 1.15rem; color: #fff; @@ -299,6 +300,20 @@ a:hover { letter-spacing: 1px; border-bottom: 1px dashed #00ff41; padding-bottom: 5px; + display: flex; + align-items: center; + gap: 8px; +} +.card-icon { + height: 20px; + width: auto; + object-fit: contain; + filter: invert(53%) sepia(93%) saturate(1353%) hue-rotate(87deg) + brightness(119%) contrast(119%); + flex-shrink: 0; +} +.card-title--highlight .card-icon { + filter: invert(40%) sepia(80%) saturate(500%) hue-rotate(95deg) brightness(110%); } .card-text { @@ -434,18 +449,7 @@ a:hover { } /* --- Footer --- */ -footer { - text-align: center; - padding: 20px; - background: rgba(0, 5, 0, 0.9); - border-top: 1px dashed #00ff41; - font-size: 0.8rem; - color: #00ff41; - color: rgba(0, 255, 65, 0.7); - position: relative; - z-index: 1; - letter-spacing: 1px; -} +/* (styles moved to end of file) */ /* Fokus-Styles für Tastaturnavigation */ a:focus-visible, @@ -497,20 +501,43 @@ input:focus-visible { } } -@media (max-width: 600px) { +@media (max-width: 768px) { + .container { + padding: 20px 14px; + } h1 { - font-size: 2.2rem; + font-size: 2rem; + letter-spacing: 2px; } h2 { - font-size: 1.3rem; + font-size: 1.2rem; + letter-spacing: 1px; + } + h3 { + font-size: 1rem; } section { - padding: 15px; + padding: 14px 16px 20px; + margin-bottom: 30px; + } + .cards-grid { + grid-template-columns: 1fr; + } + .linktree-btn { + font-size: 0.95rem; + padding: 14px 16px; + letter-spacing: 1px; + } + .codex-table { + font-size: 0.82rem; + display: block; + overflow-x: auto; + -webkit-overflow-scrolling: touch; } .codex-table th, .codex-table td { - padding: 8px; - font-size: 0.85rem; + padding: 8px 10px; + white-space: nowrap; } .app-row { flex-direction: column; @@ -523,4 +550,127 @@ input:focus-visible { flex: 1; justify-content: center; } + .advanced-separator { + margin: 30px 0 20px 0; + padding: 14px 16px; + } + .abstract { + padding: 12px 14px; + margin-bottom: 24px; + } +} + +/* --- Abstract Block --- */ +.abstract { + border-left: 3px solid #00aa41; + padding: 16px 20px; + margin: 0 0 40px 0; + background: rgba(0, 170, 65, 0.05); + border-radius: 0 4px 4px 0; +} +.abstract p { + margin: 0; + color: #a3ffa3; + line-height: 1.7; +} + +/* --- Fortgeschrittenen-Trennbereich --- */ +.advanced-separator { + border-left: 3px solid #5a7a5a; + border-radius: 0 4px 4px 0; + background: rgba(0, 170, 65, 0.03); + padding: 16px 20px; + margin: 48px 0 32px 0; +} +.advanced-separator h2 { + margin: 0 0 8px 0; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 0.12em; + color: #5a7a5a; + border-bottom: none; + text-shadow: none; + padding-bottom: 0; +} +.advanced-separator p { + margin: 0; + color: #5a7a5a; + font-size: 0.9rem; + line-height: 1.6; +} + +/* --- Hilfsklassen für inline-style Ersatz --- */ +.card--highlight { + border-color: #00aa41; +} +.card-title--highlight { + color: #00aa41; +} +.card--warning { + border-color: #ff9900; + background: rgba(20, 10, 0, 0.6); +} +.card-title--warning { + color: #ff9900; +} +.text--danger { + color: #ff3333; + text-shadow: none; +} +.honeypot { + position: absolute; + left: -9999px; + width: 1px; + height: 1px; + overflow: hidden; + visibility: hidden; + pointer-events: none; +} +.code--white { + color: #fff; +} +.mt-20 { + margin-top: 20px; +} +.mt-28 { + margin-top: 28px; +} + +/* App store button icons */ +.app-btn img { + height: 18px; + width: auto; + object-fit: contain; + filter: invert(53%) sepia(93%) saturate(1353%) hue-rotate(87deg) + brightness(119%) contrast(119%); + transition: filter 0.2s ease; + flex-shrink: 0; +} +.app-btn:hover img { + filter: invert(100%) brightness(200%); +} + +/* Footer matrix style */ +footer { + text-align: center; + padding: 20px; + background: rgba(0, 5, 0, 0.9); + border-top: 1px dashed #00ff41; + font-size: 0.8rem; + color: rgba(0, 255, 65, 0.7); + position: relative; + z-index: 1; + letter-spacing: 1px; +} +.footer-line { + color: rgba(0, 255, 65, 0.35); + margin-bottom: 4px; +} +.footer-credit { + color: rgba(0, 255, 65, 0.7); + letter-spacing: 0.15em; +} +.footer-credit span { + color: #00ff41; + text-shadow: 0 0 6px #00ff41; }