Files
esh-pfi-infrastructure/stacks/homepage/compose.yaml
T
vh 45c1995d7a feat(homepage): Australis Skyfall theme + Arbo-generated aurora background
Replaces the previous theme attempt, which was built on a misread: the ask was
to use Arbo as an IMAGE-GEN ENGINE for the background, with the operator's
Australis Skyfall design system supplying the palette.

theme/ holds the source — colors/layout/typography vendored verbatim from the
Skyfall handoff bundle, Supreme 400/500/700 woff2, the Homepage bindings in
skyfall.css.in, and build.py which inlines fonts + tokens into
conf/custom.css. custom.css is GENERATED; edit the .in file and rebuild.

The build exists because Homepage serves only custom.css and custom.js out of
its config dir, so a @font-face pointing at a vendored woff2 would 404 — the
face has to arrive as a data: URI. The background image takes the other route:
/app/public/images is a real static route, so compose.yaml now mounts
images/ there read-only and settings.yaml points at /images/.

Bindings map Skyfall's semantic layer onto Homepage's DOM: Sea surfaces, the
depth recipe (hairline AND two-layer shadow, never one alone), uppercase
eyebrow group headers, the sanctioned accent-rail on the active tab rather
than a glow, and semantic status colour so a green pill means the service is
actually serving.

Background generated by Arbo (irv-ml1:8201) workflow t2i-ui-background, job
13f0891f4e42, seed 26, flux2-klein-9b, 2048x1152 — abstract, no subject,
cool-temperature aurora. 1.6 MB PNG -> 22 KB WebP.

Two deviations are documented rather than hidden: Skyfall forbids imagery
behind body text (held at opacity 30 as mitigation), and service icons stay
full-colour vendor logos.

NOT DEPLOYED — live still runs the old theme. Prototype on :5199.
2026-08-18 23:30:27 -07:00

35 lines
1.3 KiB
YAML

services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
environment:
PUID: 1000
PGID: 1000
ports:
- 5100:3000
volumes:
- /opt/docker/conf/homepage:/app/config # Make sure your local config directory exists
# Background art. Homepage serves ONLY custom.css and custom.js out of
# /app/config — there is no static route for anything else in there — so
# an image referenced from the config dir 404s. /app/public/images is the
# documented drop point; files here are reachable as /images/<name>, which
# is what settings.yaml's `background:` points at. Read-only: nothing in
# the container should ever write to it.
- /opt/docker/compose/homepage/images:/app/public/images:ro
- /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
restart: unless-stopped
networks:
- tnet
labels:
- traefik.enable=true
- traefik.http.routers.homepage.rule=host(`eshhome`) || host(`10.0.50.45`)
|| host (`eshhome.esteban.net`)
- traefik.http.services.homepage.loadbalancer.server.port=3000
- traefik.http.routers.homepage.priority=1
env_file:
- .env
networks:
tnet:
name: traefik-net
external: true