37 lines
1.7 KiB
YAML
37 lines
1.7 KiB
YAML
# Homepage — service launcher + status dashboard for the localgenai stack.
|
|
# https://gethomepage.dev
|
|
#
|
|
# Single tile per service, with live widgets (loaded models, container
|
|
# state, request rates) where the upstream supports it. Reads its config
|
|
# from /srv/docker/homepage/config; pyinfra ships the initial files there
|
|
# and leaves them alone afterwards (edit them directly to add bookmarks,
|
|
# tweak the layout, etc).
|
|
#
|
|
# Bring-up: `docker compose up -d`. UI at http://framework:7575.
|
|
services:
|
|
homepage:
|
|
image: ghcr.io/gethomepage/homepage:latest
|
|
container_name: homepage
|
|
restart: unless-stopped
|
|
ports:
|
|
# 7575 picked to avoid the soup of 30xx ports already in use
|
|
# (OpenWebUI 3000, OpenLIT 3001, OpenHands 3030).
|
|
- "7575:3000"
|
|
extra_hosts:
|
|
# Required for customapi widgets to reach host services. Inside the
|
|
# container, `framework` resolves to 127.0.1.1 (Ubuntu hostname
|
|
# loopback alias), which is the container itself. Use
|
|
# host.docker.internal in widget.url fields to route via the host
|
|
# gateway. The user-facing `href` fields keep `framework:` since
|
|
# those resolve on the user's browser, not the container.
|
|
- "host.docker.internal:host-gateway"
|
|
volumes:
|
|
- /srv/docker/homepage/config:/app/config
|
|
# Read-only docker socket so homepage can render container status
|
|
# (running / stopped, CPU, memory) on each tile.
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
environment:
|
|
# Required when accessed from a host other than localhost (i.e.
|
|
# over Tailscale by hostname). Comma-separated list; * matches all.
|
|
HOMEPAGE_ALLOWED_HOSTS: "framework:7575,framework,localhost:7575,localhost,*"
|