feat: add utility service stacks

This commit is contained in:
Eduardo David Paredes Vara
2026-07-25 11:21:23 +00:00
parent 4536b3a36a
commit 6e6971da59
8 changed files with 196 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
# changedetection.io
changedetection.io published at `https://changedetection.sherlockhomeless.net`.
Deploy with:
```bash
docker compose --env-file .env up -d
```
The stack includes a Browserless Chrome sidecar for JavaScript-heavy pages.
The public route is defined in Traefik dynamic config and protected by:
- `crowdsec-bouncer@file`
- `ths-authentik@docker`
- `sablier-changedetection@file`
+43
View File
@@ -0,0 +1,43 @@
services:
changedetection:
image: ${CHANGEDETECTION_IMAGE}
container_name: changedetection
restart: unless-stopped
environment:
TZ: ${TZ}
BASE_URL: https://${CHANGEDETECTION_DOMAIN}
PLAYWRIGHT_DRIVER_URL: ws://changedetection-browser:3000
volumes:
- ${CHANGEDETECTION_DATA_PATH}:/datastore:Z
depends_on:
- changedetection-browser
networks:
- changedetection_internal
- proxy
labels:
prune.protect: "true"
traefik.enable: "true"
traefik.docker.network: "${TRAEFIK_DOCKER_NETWORK}"
homepage.group: "Utilidades"
homepage.name: "ChangeDetection"
homepage.icon: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/changedetection.svg"
homepage.description: "Monitor de cambios web"
homepage.href: "https://${CHANGEDETECTION_DOMAIN}/"
homepage.siteMonitor: "http://changedetection:5000/"
homepage.weight: "530"
changedetection-browser:
image: ${CHANGEDETECTION_BROWSER_IMAGE}
container_name: changedetection-browser
restart: unless-stopped
shm_size: "2gb"
networks:
- changedetection_internal
labels:
prune.protect: "true"
networks:
changedetection_internal:
driver: bridge
proxy:
external: true
+15
View File
@@ -0,0 +1,15 @@
# Actual Budget
Actual Budget published at `https://finance.sherlockhomeless.net`.
Deploy with:
```bash
docker compose --env-file .env up -d
```
The public route is defined in Traefik dynamic config and protected by:
- `crowdsec-bouncer@file`
- `ths-authentik@docker`
- `sablier-actualbudget@file`
+29
View File
@@ -0,0 +1,29 @@
services:
actualbudget:
image: ${ACTUALBUDGET_IMAGE}
container_name: actualbudget
restart: unless-stopped
environment:
TZ: ${TZ}
volumes:
- ${ACTUALBUDGET_DATA_PATH}:/data:Z
networks:
- finance_internal
- proxy
labels:
prune.protect: "true"
traefik.enable: "true"
traefik.docker.network: "${TRAEFIK_DOCKER_NETWORK}"
homepage.group: "Personal"
homepage.name: "Finance"
homepage.icon: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/actual-budget.svg"
homepage.description: "Presupuesto personal"
homepage.href: "https://${ACTUALBUDGET_DOMAIN}/"
homepage.siteMonitor: "http://actualbudget:5006/"
homepage.weight: "520"
networks:
finance_internal:
driver: bridge
proxy:
external: true
+16
View File
@@ -0,0 +1,16 @@
# IT-Tools
Coleccion de herramientas tecnicas self-hosted.
- URL: `https://it.sherlockhomeless.net/`
- Contenedor: `it-tools`
- Red externa: `proxy`
- Acceso: protegido por Authentik desde Traefik
## Operacion
```bash
docker compose --env-file .env config
docker compose --env-file .env up -d
docker compose --env-file .env logs -f
```
+25
View File
@@ -0,0 +1,25 @@
services:
it-tools:
image: ${IT_TOOLS_IMAGE}
container_name: it-tools
restart: unless-stopped
networks:
- it_internal
- proxy
labels:
prune.protect: "true"
traefik.enable: "true"
traefik.docker.network: "${TRAEFIK_DOCKER_NETWORK}"
homepage.group: "Utilidades"
homepage.name: "IT-Tools"
homepage.icon: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/it-tools.svg"
homepage.description: "Herramientas tecnicas"
homepage.href: "https://${IT_TOOLS_DOMAIN}/"
homepage.siteMonitor: "http://it-tools:80/"
homepage.weight: "550"
networks:
it_internal:
driver: bridge
proxy:
external: true
+17
View File
@@ -0,0 +1,17 @@
# Stirling PDF
Servicio self-hosted para manipular PDF.
- URL: `https://pdf.sherlockhomeless.net/`
- Contenedor: `stirling-pdf`
- Datos persistentes: `/opt/stirling-pdf/`
- Red externa: `proxy`
- Acceso: protegido por Authentik desde Traefik
## Operacion
```bash
docker compose --env-file .env config
docker compose --env-file .env up -d
docker compose --env-file .env logs -f
```
+34
View File
@@ -0,0 +1,34 @@
services:
stirling-pdf:
image: ${STIRLING_PDF_IMAGE}
container_name: stirling-pdf
restart: unless-stopped
environment:
TZ: ${TZ}
SERVER_PORT: "8080"
SECURITY_ENABLELOGIN: "false"
volumes:
- ${STIRLING_PDF_CONFIG_PATH}:/configs:Z
- ${STIRLING_PDF_CUSTOM_PATH}:/customFiles:Z
- ${STIRLING_PDF_LOGS_PATH}:/logs:Z
- ${STIRLING_PDF_PIPELINE_PATH}:/pipeline:Z
networks:
- pdf_internal
- proxy
labels:
prune.protect: "true"
traefik.enable: "true"
traefik.docker.network: "${TRAEFIK_DOCKER_NETWORK}"
homepage.group: "Utilidades"
homepage.name: "PDF"
homepage.icon: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/stirling-pdf.svg"
homepage.description: "Herramientas PDF"
homepage.href: "https://${STIRLING_PDF_DOMAIN}/"
homepage.siteMonitor: "http://stirling-pdf:8080/"
homepage.weight: "540"
networks:
pdf_internal:
driver: bridge
proxy:
external: true