# ========================================== # REQUIRED: Tailscale sidecar (all ts-* services) # ========================================== services: homepage-ts: image: tailscale/tailscale:latest hostname: homepage container_name: homepage-ts environment: - TS_AUTHKEY=${TS_AUTHKEY} - TS_LOGIN_SERVER=${TS_LOGIN_SERVER} - TS_STATE_DIR=/var/lib/tailscale - TS_SERVE_CONFIG=/config/serve.json - TS_EXTRA_ARGS=--login-server=${TS_LOGIN_SERVER} volumes: - ./tailscale/tailscale-data:/var/lib/tailscale - ./tailscale/config:/config - /dev/net/tun:/dev/net/tun cap_add: - net_admin restart: unless-stopped # ========================================== # REQUIRED: Homepage (single container, no DB) # ========================================== homepage: image: ghcr.io/gethomepage/homepage:latest environment: # Required: comma-separated list of allowed hostnames / IPs. # Use "*" to allow any (fine behind Tailscale, since Tailscale handles auth). HOMEPAGE_ALLOWED_HOSTS: "*" TZ: ${TZ:-UTC} volumes: - ./homepage/config:/app/config depends_on: - homepage-ts network_mode: service:homepage-ts restart: unless-stopped