feat: Backend mit OIDC-Anmeldung, Apps und Einstellungen im Server
Aus der statischen Seite wird ein Go-Binary mit eingebetteter Oberfläche. Grund: Apps über .env zu pflegen wurde unübersichtlich, und kosmetische Einstellungen sollen auf jedem Gerät gleich sein. - Anmeldung über den eigenen OIDC-Anbieter (PocketID), mit PKCE. Ohne Anmeldung gibt es nichts zu sehen – auch keine App-Liste. - Sitzung als signiertes Cookie ohne Gegenstück im Server; Schreibzugriffe zusätzlich über ein lesbares CSRF-Cookie abgesichert - Apps werden in der Oberfläche angelegt und bearbeitet, nicht mehr in der .env. Der Server prüft jeden Eintrag und meldet zurück, was er behält. - Einstellungen liegen je Nutzer im Server; localStorage ist nur noch der Vorschuss, damit die Röhre beim Laden nicht in der falschen Farbe blitzt - die Leiste holt die App-Liste aus /api/apps – freigegeben sind allein die Ursprünge, die selbst als App eingetragen sind - Tests fahren einen echten OIDC-Anbieter hoch und gehen den Anmeldeweg einmal ganz durch Ohne HONEYOS_OIDC_ISSUER läuft alles offen – für die Entwicklung, mit deutlicher Warnung beim Start. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
84cc5d619e
commit
283f9a1850
20 files changed
+1831
-438
No files matched your search
+17
-44
@@ -1,13 +1,14 @@
|
||||
# ─────────────────────────────────────────────
|
||||
# HoneyOS — Betrieb aus der Gitea-Registry
|
||||
#
|
||||
# cp .env.example .env && anpassen
|
||||
# mkdir -p /srv/honeyos && chown 1000:1000 /srv/honeyos
|
||||
# cp .env.example .env && ausfüllen
|
||||
# docker login gitea.honeyy.duckdns.org
|
||||
# docker compose pull && docker compose up -d
|
||||
#
|
||||
# Es gibt nichts zu sichern: HoneyOS hat keine Datenbank und kein Volume.
|
||||
# Der ganze Zustand ist die .env — und was der Browser sich pro Gerät in
|
||||
# localStorage merkt (Betriebsart, Röhre).
|
||||
# Zu sichern ist genau eine Datei: ${HONEYOS_DATA_DIR}/honeyos.json — darin
|
||||
# stehen die Apps und die Einstellungen je Nutzer. Sichere sie zusammen mit
|
||||
# der .env; ohne HONEYOS_SESSION_SECRET müssen sich alle neu anmelden.
|
||||
# ─────────────────────────────────────────────
|
||||
|
||||
services:
|
||||
@@ -15,45 +16,17 @@ services:
|
||||
image: gitea.honeyy.duckdns.org/docker/honeyos:latest
|
||||
container_name: honeyos
|
||||
restart: unless-stopped
|
||||
user: "1000:1000"
|
||||
ports:
|
||||
- "${HONEYOS_PORT:-8088}:80"
|
||||
- "${HONEYOS_PORT:-8088}:8080"
|
||||
volumes:
|
||||
- ${HONEYOS_DATA_DIR:-/srv/honeyos}:/data
|
||||
environment:
|
||||
- HONEYOS_USER=${HONEYOS_USER:-}
|
||||
- HONEYOS_HOSTNAME=${HONEYOS_HOSTNAME:-honeyos}
|
||||
- HONEYOS_VERSION=${HONEYOS_VERSION:-0.1}
|
||||
|
||||
- HONEYOS_APP_1_ID=${HONEYOS_APP_1_ID:-}
|
||||
- HONEYOS_APP_1_NAME=${HONEYOS_APP_1_NAME:-}
|
||||
- HONEYOS_APP_1_SUBTITLE=${HONEYOS_APP_1_SUBTITLE:-}
|
||||
- HONEYOS_APP_1_URL=${HONEYOS_APP_1_URL:-}
|
||||
- HONEYOS_APP_1_GLYPH=${HONEYOS_APP_1_GLYPH:-}
|
||||
- HONEYOS_APP_1_KEY=${HONEYOS_APP_1_KEY:-}
|
||||
- HONEYOS_APP_1_ME=${HONEYOS_APP_1_ME:-}
|
||||
- HONEYOS_APP_1_TOKEN_KEY=${HONEYOS_APP_1_TOKEN_KEY:-}
|
||||
|
||||
- HONEYOS_APP_2_ID=${HONEYOS_APP_2_ID:-}
|
||||
- HONEYOS_APP_2_NAME=${HONEYOS_APP_2_NAME:-}
|
||||
- HONEYOS_APP_2_SUBTITLE=${HONEYOS_APP_2_SUBTITLE:-}
|
||||
- HONEYOS_APP_2_URL=${HONEYOS_APP_2_URL:-}
|
||||
- HONEYOS_APP_2_GLYPH=${HONEYOS_APP_2_GLYPH:-}
|
||||
- HONEYOS_APP_2_KEY=${HONEYOS_APP_2_KEY:-}
|
||||
- HONEYOS_APP_2_ME=${HONEYOS_APP_2_ME:-}
|
||||
- HONEYOS_APP_2_TOKEN_KEY=${HONEYOS_APP_2_TOKEN_KEY:-}
|
||||
|
||||
- HONEYOS_APP_3_ID=${HONEYOS_APP_3_ID:-}
|
||||
- HONEYOS_APP_3_NAME=${HONEYOS_APP_3_NAME:-}
|
||||
- HONEYOS_APP_3_SUBTITLE=${HONEYOS_APP_3_SUBTITLE:-}
|
||||
- HONEYOS_APP_3_URL=${HONEYOS_APP_3_URL:-}
|
||||
- HONEYOS_APP_3_GLYPH=${HONEYOS_APP_3_GLYPH:-}
|
||||
- HONEYOS_APP_3_KEY=${HONEYOS_APP_3_KEY:-}
|
||||
- HONEYOS_APP_3_ME=${HONEYOS_APP_3_ME:-}
|
||||
- HONEYOS_APP_3_TOKEN_KEY=${HONEYOS_APP_3_TOKEN_KEY:-}
|
||||
|
||||
- HONEYOS_APP_4_ID=${HONEYOS_APP_4_ID:-}
|
||||
- HONEYOS_APP_4_NAME=${HONEYOS_APP_4_NAME:-}
|
||||
- HONEYOS_APP_4_SUBTITLE=${HONEYOS_APP_4_SUBTITLE:-}
|
||||
- HONEYOS_APP_4_URL=${HONEYOS_APP_4_URL:-}
|
||||
- HONEYOS_APP_4_GLYPH=${HONEYOS_APP_4_GLYPH:-}
|
||||
- HONEYOS_APP_4_KEY=${HONEYOS_APP_4_KEY:-}
|
||||
- HONEYOS_APP_4_ME=${HONEYOS_APP_4_ME:-}
|
||||
- HONEYOS_APP_4_TOKEN_KEY=${HONEYOS_APP_4_TOKEN_KEY:-}
|
||||
- HONEYOS_PUBLIC_URL=${HONEYOS_PUBLIC_URL:-}
|
||||
- HONEYOS_SESSION_SECRET=${HONEYOS_SESSION_SECRET:-}
|
||||
- HONEYOS_OIDC_ISSUER=${HONEYOS_OIDC_ISSUER:-}
|
||||
- HONEYOS_OIDC_CLIENT_ID=${HONEYOS_OIDC_CLIENT_ID:-}
|
||||
- HONEYOS_OIDC_CLIENT_SECRET=${HONEYOS_OIDC_CLIENT_SECRET:-}
|
||||
- HONEYOS_OIDC_REDIRECT_URL=${HONEYOS_OIDC_REDIRECT_URL:-}
|
||||
- HONEYOS_BUTTON_LABEL=${HONEYOS_BUTTON_LABEL:-Anmelden}
|
||||
- HONEYOS_ALLOWED_USERS=${HONEYOS_ALLOWED_USERS:-}
|
||||
Reference in new issue
Block a user