refactor: aufgeraeumt — Pakete hinten, Widgets vorne
Go: store, auth, weather und config sind eigene Pakete unter internal/. Vorher lagen fuenf Dateien in einem Topf, und jede kannte jede. Web: os.js hatte 1425 Zeilen und alles darin. Jetzt core.js (Zustand, Server, Einstellungen), glyphs.js (die Pixelraster), js/widgets/ mit einem Widget je Datei, os.js nur noch die Ansichten. Stylesheet nach css/. Die HoneyBar bleibt eine einzelne Datei ohne Importe — sie wird von fremden Seiten mit einer Zeile eingebunden, da darf nichts nachladen. Nebenbei: Das gebaute Binary lag mit 9,8 MB im Repo und ist jetzt ignoriert. Und der Test gegen eine zweite Versionsnummer geht nicht mehr auf os.js, sondern durch alle .js — sonst haette ihn dieser Umbau still ausgehebelt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d08b0a229c
commit
52deffa30e
20 files changed
+780
-624
No files matched your search
@@ -0,0 +1,55 @@
|
||||
// Package config hält, was HoneyOS beim Start aus der Umgebung liest.
|
||||
//
|
||||
// Eigenes Paket, damit sowohl der Server als auch die Anmeldung darauf zugreifen
|
||||
// können, ohne dass eines vom anderen abhängt.
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Addr string
|
||||
PublicURL string
|
||||
DataDir string
|
||||
SessionSecret string
|
||||
|
||||
// Anmeldung — genau einer der beiden Wege:
|
||||
//
|
||||
// OIDCIssuer gesetzt → HoneyOS meldet selbst an, eigener Anmeldeschirm.
|
||||
// ProxyAuth gesetzt → ein vorgelagerter Proxy (Pangolin o. ä.) hat das
|
||||
// schon erledigt. HoneyOS fragt dann nicht nach.
|
||||
//
|
||||
// Keines von beiden heißt: offen. Das ist zum Entwickeln gedacht und sagt
|
||||
// beim Start deutlich, dass es so nicht ins Netz gehört.
|
||||
OIDCIssuer string
|
||||
OIDCClientID string
|
||||
OIDCClientSecret string
|
||||
OIDCRedirect string
|
||||
ButtonLabel string
|
||||
AllowedUsers []string
|
||||
|
||||
ProxyAuth bool
|
||||
// UserHeader nennt die Kopfzeile, in die der Proxy den Nutzernamen schreibt
|
||||
// (z. B. Remote-User). Leer heißt: ein einziger Nutzer für alle.
|
||||
UserHeader string
|
||||
|
||||
// AppsKey schützt die App-Liste, wenn ihr Pfad im Proxy von der Anmeldung
|
||||
// befreit ist. Ohne Schlüssel liest sie jeder, der die Adresse kennt.
|
||||
AppsKey string
|
||||
}
|
||||
|
||||
func (c Config) RedirectURL() string {
|
||||
if c.OIDCRedirect != "" {
|
||||
return c.OIDCRedirect
|
||||
}
|
||||
return strings.TrimRight(c.PublicURL, "/") + "/api/auth/callback"
|
||||
}
|
||||
|
||||
func Env(key, fallback string) string {
|
||||
if v := strings.TrimSpace(os.Getenv(key)); v != "" {
|
||||
return v
|
||||
}
|
||||
return fallback
|
||||
}
|
||||
Reference in new issue
Block a user