66 lines
2.0 KiB
Markdown
66 lines
2.0 KiB
Markdown
# 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=<redacted>
|
|
- 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
|