# The Book of TODO

# TODO List

# Self Hosted Chat Options

---

## 1. Team & Workspace Chat (Slack / Discord Alternatives)

* **Zulip**
  * **Description:** Threaded stream-and-topic messaging designed for asynchronous communication.
  * **Authentik Integration:** Native Generic OpenID Connect (OIDC) support included in the free/open-source tier.
* **Mattermost**
  * **Description:** Slack-style team chat, channels, boards, and playbooks.
  * **Authentik Integration:** Authentik OIDC provider (via GitLab/Generic OAuth2 compatibility) or Authentik ForwardAuth.
* **Rocket.Chat**
  * **Description:** Channel-based team communication, live chat widgets, and omnichannel integrations.
  * **Authentik Integration:** Native Custom OAuth2 / OIDC provider in the Community edition.

---

## 2. Federated & Open-Standard Messaging

* **Matrix Ecosystem (Synapse or Dendrite / Conduit + Element Web or Cinny)**
  * **Description:** Decentralized, end-to-end encrypted messaging network with bridges to Discord, Telegram, Signal, WhatsApp, and Slack.
  * **Authentik Integration:** Matrix Synapse supports native OpenID Connect (OIDC) for user registration and SSO.
* **XMPP (Prosody + Converse.js)**
  * **Description:** Lightweight, extensible XML-based protocol for instant messaging and presence.
  * **Authentik Integration:** Authentik LDAP outpost via `mod_auth_ldap`, or token authentication via `mod_auth_oauth2`.
* **Modern Web IRC (Ergo + The Lounge)**
  * **Description:** IRCv3 daemon paired with a persistent, modern web client and push notifications.
  * **Authentik Integration:** The Lounge supports reverse proxy header authentication via Authentik ForwardAuth.

---

## 3. Voice, Video & Conferencing (Chat-Adjacent)

* **Jitsi Meet**
  * **Description:** Fully encrypted video conferencing and screen sharing.
  * **Authentik Integration:** Authentik OIDC / JWT authentication via Prosody backend.
* **Mumble (Murmur Server)**
  * **Description:** Low-latency, high-quality voice communication.
  * **Authentik Integration:** Authentik LDAP outpost.
* **LiveKit / Element Call**
  * **Description:** WebRTC infrastructure and client for group audio/video calls, integrating directly into Matrix rooms.
  * **Authentik Integration:** Inherits Synapse OIDC authentication.

---

## 4. AI Chat & LLM Interfaces (Chat-Adjacent)

* **Open WebUI**
  * **Description:** Feature-rich web interface for local LLMs, Ollama, API endpoints, RAG, and document chat.
  * **Authentik Integration:** Native OpenID Connect (OIDC) support with automatic user provisioning and role syncing.
* **LibreChat**
  * **Description:** Multi-provider AI chat interface supporting OpenAI, Anthropic, Gemini, local models, and plugin tools.
  * **Authentik Integration:** Native OpenID Connect (OIDC) / OAuth2 support.

---

## 5. Push Notifications, Webhooks & Alerting Gateways

* **Ntfy**
  * **Description:** HTTP-based pub-sub push notification service to send alerts to desktop/mobile devices.
  * **Authentik Integration:** Authentik ForwardAuth or upstream header auth.
* **Gotify**
  * **Description:** Simple server for sending and receiving push notifications via WebSockets.
  * **Authentik Integration:** Authentik ForwardAuth.
* **Apprise API**
  * **Description:** Gateway router to relay notifications to 80+ chat endpoints (Matrix, Discord, Telegram, Slack, etc.).
  * **Authentik Integration:** Authentik ForwardAuth.

---

## 6. Asynchronous Community / Forum Platforms

* **Discourse**
  * **Description:** Modern discussion platform, community forums, and long-form topic threads.
  * **Authentik Integration:** Native OpenID Connect (OIDC) plugin (`discourse-openid-connect`).
* **NodeBB**
  * **Description:** Real-time, socket-driven forum software with built-in instant messaging and notifications.
  * **Authentik Integration:** `nodebb-plugin-oauth2-oidc` with Authentik.

---

## Summary Comparison Table

| Service | OIDC / SSO Support | Mobile Apps (iOS & Android) | Site-Wide Custom Emojis | Server-Side Custom CSS | Global Branding / Theme Config |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Zulip** | Yes (Native OIDC) | Yes (Official iOS & Android) | Yes (Built-in) | Yes (Admin UI) | High (Logos, default themes) |
| **Mattermost** | Yes (OIDC / OAuth2 / ForwardAuth) | Yes (Official iOS & Android) | Yes (Built-in) | Limited (Plugins) | Medium (Colors, brand images) |
| **Rocket.Chat** | Yes (Native OAuth2 / OIDC) | Yes (Official iOS & Android) | Yes (Built-in) | Yes (Admin UI) | High (Live CSS, assets, colors) |
| **Matrix / Element** | Yes (Native OIDC via Synapse) | Yes (Official Element iOS & Android, FluffyChat, etc.) | Yes (MSC2545 packs) | Yes (`config.json`) | Medium (JSON palette, branding) |
| **XMPP (Prosody)** | Indirect (LDAP Outpost / `mod_auth_oauth2`) | Yes (Monomyth, Conversations [Android], Siskin/Monal [iOS]) | Client-dependent | No | N/A (Client-dependent) |
| **The Lounge (IRC)** | Indirect (ForwardAuth) | PWA (Progressive Web App on iOS & Android) | Limited | Yes (CSS files) | Medium (Theme packages) |
| **Jitsi Meet** | Yes (OIDC / JWT via Prosody) | Yes (Official iOS & Android) | No | Yes (CSS / Config) | High (Watermarks, templates) |
| **Mumble** | Indirect (LDAP Outpost) | Yes (Plumble [Android], Mumble [iOS]) | No | No | Low |
| **Open WebUI** | Yes (Native OIDC) | PWA (Official mobile web/PWA) | Model Avatars / Unicode | Yes (Admin UI) | High (Logos, banners, CSS) |
| **LibreChat** | Yes (Native OIDC / OAuth2) | PWA (Mobile web / PWA) | Unicode | Config file | Medium (`librechat.yaml`) |
| **Ntfy** | Indirect (ForwardAuth / Header Auth) | Yes (Official iOS & Android) | No | No | Low |
| **Gotify** | Indirect (ForwardAuth) | Yes (Official Android, third-party iOS) | No | No | Low |
| **Discourse** | Yes (Native OIDC plugin) | Yes (Official Discourse Hub app) | Yes (Built-in) | Yes (SCSS/Themes) | Very High (Full theme engine) |
| **NodeBB** | Yes (`nodebb-plugin-oauth2-oidc`) | PWA / Third-party apps | Yes (Plugin/ACP) | Yes (ACP) | High (Skins, custom CSS) |

---

# Random TODO

- burn backups
- ensure large local data sources for jellyfin and plex are on the zfs array
- consolidate logs with a parser
- music hosting
  - radio stations
- comms
  - irc server
  - matrix server
  - jabber server
- backups
  - create backup user
  - new GPG key
  - move rclone configs to backup user
  - chown backups to backup
  - automate to weekly
- games
  - [Steam Headless](https://github.com/Steam-Headless/docker-steam-headless)