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>
32 lines
1.0 KiB
Docker
32 lines
1.0 KiB
Docker
# HoneyOS — ein Binary, die Oberfläche steckt per embed mit drin.
|
|
|
|
FROM golang:1.23-alpine AS build
|
|
WORKDIR /src
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY *.go ./
|
|
COPY web/ ./web/
|
|
RUN CGO_ENABLED=0 go build -buildvcs=false -ldflags="-s -w" -o /honeyos .
|
|
|
|
FROM alpine:3.20
|
|
LABEL org.opencontainers.image.title="HoneyOS" \
|
|
org.opencontainers.image.description="Retro-Schreibtisch und Umschalter für die eigenen Apps" \
|
|
org.opencontainers.image.source="https://gitea.honeyy.duckdns.org/Docker/HoneyOS"
|
|
|
|
# ca-certificates: ohne die scheitert die Anfrage an den OIDC-Anbieter über https.
|
|
RUN apk add --no-cache ca-certificates wget && \
|
|
adduser -D -u 1000 honeyos && \
|
|
mkdir -p /data && chown honeyos:honeyos /data
|
|
|
|
COPY --from=build /honeyos /usr/local/bin/honeyos
|
|
|
|
USER honeyos
|
|
VOLUME /data
|
|
EXPOSE 8080
|
|
ENV HONEYOS_ADDR=:8080 HONEYOS_DATA_DIR=/data
|
|
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \
|
|
CMD wget -qO- http://127.0.0.1:8080/healthz || exit 1
|
|
|
|
ENTRYPOINT ["/usr/local/bin/honeyos"]
|