feat(homepage): añadir stack de dashboard del homelab
Dashboard centralizado con widgets de estado de servicios, integración con Docker para mostrar contenedores y acceso SSO vía Authentik. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# Homepage
|
||||
|
||||
Stack para desplegar [Homepage](https://gethomepage.dev/) detrás de Traefik como dashboard principal en `www.sherlockhomeless.net`.
|
||||
|
||||
## 🚀 Despliegue en Portainer
|
||||
|
||||
1. Ve a **Stacks** → **Add stack**
|
||||
2. Nombre: `homepage`
|
||||
3. Selecciona **Repository** o **Git repository**
|
||||
4. Configura:
|
||||
- Repository URL: `<tu-repositorio>`
|
||||
- Repository reference: `main`
|
||||
- Compose path: `homepage/docker-compose.yml`
|
||||
5. Copia `homepage/stack.env` a `homepage/.env` y carga `homepage/.env` como archivo de variables de entorno
|
||||
6. Haz clic en **Deploy the stack**
|
||||
|
||||
## ⚙️ Variables importantes
|
||||
|
||||
Edita `homepage/.env`:
|
||||
|
||||
```env
|
||||
HOMEPAGE_DOMAIN=www.sherlockhomeless.net
|
||||
HOMEPAGE_ALLOWED_HOSTS=www.sherlockhomeless.net
|
||||
HOMEPAGE_CONFIG_PATH=/opt/homepage/config
|
||||
TRAEFIK_AUTH_MIDDLEWARE=ths-authentik@docker
|
||||
```
|
||||
|
||||
## 📁 Configuración
|
||||
|
||||
Crea el directorio de configuración en el host antes del primer arranque:
|
||||
|
||||
```bash
|
||||
mkdir -p /opt/homepage/config
|
||||
```
|
||||
|
||||
Homepage leerá su configuración desde `/opt/homepage/config` y expondrá la UI interna en el puerto `3000`, publicado externamente a través de Traefik y protegido con Authentik mediante `ths-authentik@docker`.
|
||||
@@ -0,0 +1,36 @@
|
||||
services:
|
||||
homepage:
|
||||
image: ${HOMEPAGE_IMAGE}
|
||||
pull_policy: always
|
||||
container_name: homepage
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
TZ: ${TZ}
|
||||
HOMEPAGE_ALLOWED_HOSTS: ${HOMEPAGE_ALLOWED_HOSTS}
|
||||
volumes:
|
||||
- ${HOMEPAGE_CONFIG_PATH}:/app/config:Z
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.docker.network: "${TRAEFIK_DOCKER_NETWORK}"
|
||||
traefik.http.routers.homepage.rule: "Host(`${HOMEPAGE_DOMAIN}`)"
|
||||
traefik.http.routers.homepage.entrypoints: "${TRAEFIK_ENTRYPOINT_SECURE}"
|
||||
traefik.http.routers.homepage.tls: "true"
|
||||
traefik.http.routers.homepage.tls.certresolver: "${TRAEFIK_CERTRESOLVER}"
|
||||
traefik.http.routers.homepage.middlewares: "crowdsec-bouncer@file,${TRAEFIK_AUTH_MIDDLEWARE}"
|
||||
traefik.http.routers.homepage-www-redirect.rule: "Host(`sherlockhomeless.net`)"
|
||||
traefik.http.routers.homepage-www-redirect.entrypoints: "${TRAEFIK_ENTRYPOINT_SECURE}"
|
||||
traefik.http.routers.homepage-www-redirect.tls: "true"
|
||||
traefik.http.routers.homepage-www-redirect.tls.certresolver: "${TRAEFIK_CERTRESOLVER}"
|
||||
traefik.http.routers.homepage-www-redirect.middlewares: "homepage-apex-to-www"
|
||||
traefik.http.routers.homepage-www-redirect.service: "noop@internal"
|
||||
traefik.http.middlewares.homepage-apex-to-www.redirectregex.permanent: "true"
|
||||
traefik.http.middlewares.homepage-apex-to-www.redirectregex.regex: "^https://sherlockhomeless\\.net(:443)?/?(.*)"
|
||||
traefik.http.middlewares.homepage-apex-to-www.redirectregex.replacement: "https://www.sherlockhomeless.net/$${2}"
|
||||
traefik.http.services.homepage.loadbalancer.server.port: "3000"
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
@@ -0,0 +1,11 @@
|
||||
TZ=Europe/Madrid
|
||||
HOMEPAGE_IMAGE=ghcr.io/gethomepage/homepage:latest
|
||||
HOMEPAGE_DOMAIN=app.example.com
|
||||
HOMEPAGE_ALLOWED_HOSTS=app.example.com
|
||||
HOMEPAGE_CONFIG_PATH=/opt/homepage/config
|
||||
TRAEFIK_DOCKER_NETWORK=proxy
|
||||
TRAEFIK_ENTRYPOINT_SECURE=websecure
|
||||
TRAEFIK_CERTRESOLVER=letsencrypt
|
||||
TRAEFIK_AUTH_MIDDLEWARE=ths-authentik@docker
|
||||
SERVICE_URL_HOMEPAGE=https://app.example.com
|
||||
SERVICE_FQDN_HOMEPAGE=app.example.com
|
||||
Reference in New Issue
Block a user