# Homepage Self-hosted dashboard (gethomepage.dev) for quick access to all services. ## Access - **Tailscale:** [homepage.bunny-wyvern.ts.net](https://homepage.bunny-wyvern.ts.net) - **LAN:** `http://192.168.2.114:35000` ## Containers | Container | Image | Role | |---|---|---| | `homepage` | `ghcr.io/gethomepage/homepage:latest` | Dashboard web app | | `homepage-tailscale-sidecar` | `tailscale/tailscale:latest` | Tailscale node | ## Compose File **Path:** `/home/artanis/DockerFiles/homepage/docker-compose.yml` ```yaml services: homepage: image: ghcr.io/gethomepage/homepage:latest container_name: homepage restart: unless-stopped pull_policy: always ports: - 35000:3000 volumes: - /home/artanis/DockerFiles/homepage/config:/app/config - /home/artanis/DockerFiles/homepage/images:/app/public/images - /var/run/docker.sock:/var/run/docker.sock environment: HOMEPAGE_ALLOWED_HOSTS: 192.168.2.114:35000,homelab:35000,100.72.0.62:35000,homepage.bunny-wyvern.ts.net homepage-tailscale-sidecar: image: tailscale/tailscale:latest container_name: homepage-tailscale-sidecar restart: always cap_add: - NET_ADMIN devices: - /dev/net/tun volumes: - homepage_tailscale_state:/var/lib/tailscale environment: - TS_AUTHKEY= - TS_HOSTNAME=homepage - TS_STATE_DIR=/var/lib/tailscale network_mode: "service:homepage" volumes: homepage_tailscale_state: ``` ## Data Layout | Path | Contents | |---|---| | `/home/artanis/DockerFiles/homepage/config` | YAML config files (services, widgets, settings) | | `/home/artanis/DockerFiles/homepage/images` | Custom images for the dashboard | ## Notes - `HOMEPAGE_ALLOWED_HOSTS` must include all hostnames/IPs from which the dashboard will be accessed — required by Homepage as a CSRF protection measure - The Docker socket is mounted to enable Homepage's Docker integration (live container status widgets) - `pull_policy: always` ensures the latest image is pulled on every stack restart