Zurzeit nicht gehostet. Die Container sind gestoppt, die Seite ist also nicht erreichbar.
Eine Web-Plattform für mehrere Zwecke, gebaut mit Django und ausgeliefert per Docker Compose auf einem Ubuntu-Server. Sie lief unter aetherus.net und brachte ihren eigenen Mailserver mit.
Was sie kann
Chat in Echtzeit
Nachrichten über WebSockets, umgesetzt mit Django Channels. Mit Avataren, Zeitstempeln, Schreibanzeige, Zähler der anwesenden Nutzer und automatischem Wiederverbinden nach einem Abbruch.
Cloud-Speicher
Hochladen per Ziehen und Ablegen, Vorschau der Dateien, 50 MB Grenze je Datei und 500 MB Kontingent je Nutzer. Dateien lassen sich per Link teilen, getrennt in eigene und geteilte Ansicht. Die Ablage liegt auf Hetzner S3.
Übersicht und Konto
Eine Startseite mit Kacheln für Speicherbelegung, Dateizahl, letzte Dateien und Chataktivität. Dazu Profile mit Avatar sowie Änderung von Nutzername, Mailadresse und Passwort, und ein Zurücksetzen des Passworts per Mail mit Token, das nach einer Stunde verfällt.
Stoxview
Eine Börsenansicht, versorgt von einem eigenen Node.js-Dienst hinter dem gleichen Reverse Proxy. Er hängt an mehreren Kursdatenquellen und läuft als eigener Container neben der Django-Anwendung.
Aufbau
Caddy nimmt allen Verkehr an und übernimmt die Zertifikate selbst. Statische Dateien liefert es direkt aus einem gemeinsamen Volume, alles andere geht an Daphne, den ASGI-Server vor Django.
Internet │ ├─ aetherus.net ──▶ Caddy (:80/:443) │ │ │ ├─ /static/* ──▶ staticfiles volume │ ├─ /stoxview-api/* ──▶ Stoxview (Node.js :5000) │ └─ /* ──▶ Daphne (Django ASGI :8000) │ │ │ ├──▶ SQLite │ ├──▶ Redis │ └──▶ Hetzner S3 │ └─ mail.aetherus.net ──▶ Caddy ──▶ Mailcow
Container und Technik
| Container | Aufgabe |
|---|---|
| caddy | Reverse Proxy, TLS, statische Dateien |
| backend | Django 5.2 mit Channels, betrieben über Daphne |
| stoxview | Node.js-Dienst für Kursdaten |
| aetherus-redis | Channel-Layer und Cache |
Die Datenbank ist SQLite und liegt per Bind Mount auf dem Host, nicht im Image. Dazu selbst gehosteter Mailversand über Mailcow in einem eigenen Docker-Netz, Dateiablage auf Hetzner S3, und Begrenzung der Anfragen auf den Anmeldeendpunkten.
Auslieferung
Jeder Push auf main löst die Auslieferung über GitHub Actions aus. Der Lauf meldet sich per SSH auf dem Server an, holt den Stand hart auf den Remote-Zweig, baut die Images für Backend und Stoxview neu, startet die Container erzwungen neu und räumt verwaiste auf. Danach laufen die Migrationen.
Die Zugangsdaten liegen ausschließlich in einer .env im Projektverzeichnis und werden nie ins Repository geschrieben. Caddy verwaltet die Zertifikate für beide Namen automatisch, sowohl für die Anwendung als auch für die Weboberfläche des Mailservers.