feat: HoneyOS – Retro-Schreibtisch und Leiste für die eigenen Apps

Statische Oberfläche vor Aether und InkNote: kein Backend, kein Build,
nginx liefert web/ aus. Jede App bleibt ihre eigene PWA auf ihrer eigenen
Domain – HoneyOS ist Startpunkt und Umschalter, kein iframe-Rahmen.

- zwei Betriebsarten aus einem Datenstand: Terminal (Kacheln, Tastatur)
  und Desktop (Symbole, verschiebbare Fenster, Taskleiste)
- honeybar.js als Drop-in für die Apps, rendert im Shadow DOM, damit
  Tailwind und die InkNote-Palette einander nicht in die Quere kommen
- Konfiguration vollständig aus der .env: das Skript in
  /docker-entrypoint.d/ schreibt config.json beim Containerstart
- optionaler _ME-Pfad pro App zeigt an, wer angemeldet ist; ohne CORS
  bleibt die Anzeige leer, ohne dass etwas kaputtgeht

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-08-24 14:45:55 +02:00
commit 84cc5d619e
17 files changed
+3126

No files matched your search

+59
View File
@@ -0,0 +1,59 @@
# ─────────────────────────────────────────────
# HoneyOS — Betrieb aus der Gitea-Registry
#
# cp .env.example .env && anpassen
# 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).
# ─────────────────────────────────────────────
services:
honeyos:
image: gitea.honeyy.duckdns.org/docker/honeyos:latest
container_name: honeyos
restart: unless-stopped
ports:
- "${HONEYOS_PORT:-8088}:80"
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:-}