replace stirling pdf, sso for multiple app, cleanup

This commit is contained in:
chris
2025-12-19 15:33:26 +01:00
parent 7ec59a3b07
commit d4061164a6
8 changed files with 51 additions and 47 deletions

View File

@@ -60,7 +60,7 @@ include:
# - ${SERVICE_PATH}/ollama/ollama.yml # - ${SERVICE_PATH}/ollama/ollama.yml
- ${SERVICE_PATH}/paperless-ngx/paperless-ngx.yml - ${SERVICE_PATH}/paperless-ngx/paperless-ngx.yml
- ${SERVICE_PATH}/radicale/radicale.yml - ${SERVICE_PATH}/radicale/radicale.yml
- ${SERVICE_PATH}/stirling-pdf/stirling-pdf.yml - ${SERVICE_PATH}/pdf/pdf.yml
- ${SERVICE_PATH}/vaultwarden/vaultwarden.yml - ${SERVICE_PATH}/vaultwarden/vaultwarden.yml
- ${SERVICE_PATH}/vikunja/vikunja.yml - ${SERVICE_PATH}/vikunja/vikunja.yml
env_file: ${SERVICE_PATH}/.env env_file: ${SERVICE_PATH}/.env

View File

@@ -12,6 +12,9 @@ services:
volumes: volumes:
- ${MEDIA_PATH}/navidrome/data:/data - ${MEDIA_PATH}/navidrome/data:/data
- ${EXTERNAL_STORAGE}/media/music:/music:ro - ${EXTERNAL_STORAGE}/media/music:/music:ro
environment:
ND_REVERSEPROXYWHITELIST: 0.0.0.0/0
ND_ENABLEUSEREDITING: false
labels: labels:
# Watchtower # Watchtower
- "com.centurylinklabs.watchtower.enable=true" - "com.centurylinklabs.watchtower.enable=true"
@@ -21,4 +24,8 @@ services:
- "traefik.http.routers.navidrome.entrypoints=https" - "traefik.http.routers.navidrome.entrypoints=https"
- 'traefik.http.routers.navidrome.tls=true' - 'traefik.http.routers.navidrome.tls=true'
# Middlewares # Middlewares
- "traefik.http.routers.navidrome.middlewares=crowdsec-bouncer@file" - "traefik.http.routers.navidrome.middlewares=crowdsec-bouncer@file, authelia@file"
# Subsonic endpoint use basic authentication middleware from authelia
- "traefik.http.routers.navidrome-subsonic.rule=Host(`navidrome.${PUBLIC_DOMAIN}`) && PathPrefix(`/rest/`) && !Query(`c`, `NavidromeUI`)"
- "traefik.http.routers.navidrome-subsonic.entrypoints=https"
- "traefik.http.routers.navidrome-subsonic.middlewares=crowdsec-bouncer@file, authelia-basicauth@file, subsonic-basicauth@file"

View File

@@ -8,7 +8,7 @@ services:
ports: ports:
- 4014:80 - 4014:80
networks: networks:
- ip4net - ip6net
volumes: volumes:
- ${SERVICE_PATH}/freshrss/data:/var/www/FreshRSS/data - ${SERVICE_PATH}/freshrss/data:/var/www/FreshRSS/data
- ${SERVICE_PATH}/freshrss/extensions:/var/www/FreshRSS/extensions - ${SERVICE_PATH}/freshrss/extensions:/var/www/FreshRSS/extensions
@@ -20,9 +20,9 @@ services:
- "com.centurylinklabs.watchtower.enable=true" - "com.centurylinklabs.watchtower.enable=true"
# Traefik # Traefik
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.freshrss.rule=Host(`rss.${LOCAL_DOMAIN}`)" - "traefik.http.routers.freshrss.rule=Host(`rss.${PUBLIC_DOMAIN}`)"
- "traefik.http.routers.freshrss.entrypoints=https" - "traefik.http.routers.freshrss.entrypoints=https"
- "traefik.http.routers.freshrss.tls=true" - "traefik.http.routers.freshrss.tls=true"
#- "traefik.http.routers.freshrss.tls.certresolver=myresolver" - "traefik.http.routers.freshrss.tls.certresolver=myresolver"
# Middlewares # Middlewares
#- "traefik.http.routers.freshrss.middlewares=crowdsec-bouncer@file" - "traefik.http.routers.freshrss.middlewares=crowdsec-bouncer@file"

View File

@@ -14,10 +14,15 @@ services:
- ${SERVICE_PATH}/linkwarden/data:/data/data - ${SERVICE_PATH}/linkwarden/data:/data/data
environment: environment:
- DATABASE_URL=postgresql://linkwarden:${LINKWARDEN_DATABASE_PASSWORD}@postgres:5432/linkwarden - DATABASE_URL=postgresql://linkwarden:${LINKWARDEN_DATABASE_PASSWORD}@postgres:5432/linkwarden
- NEXTAUTH_URL=https://linkwarden.${PUBLIC_DOMAIN} - NEXTAUTH_URL=https://linkwarden.${PUBLIC_DOMAIN}/api/v1/auth
- NEXTAUTH_SECRET=${LINKWARDEN_NEXTAUTH_SECRET} - NEXTAUTH_SECRET=${LINKWARDEN_NEXTAUTH_SECRET}
- MEILI_MASTER_KEY=${LINKWARDEN_MEILI_MASTER_KEY} - MEILI_MASTER_KEY=${LINKWARDEN_MEILI_MASTER_KEY}
- MEILI_HOST=http://meilisearch:7700 - MEILI_HOST=http://meilisearch:7700
- NEXT_PUBLIC_DISABLE_REGISTRATION=true
- NEXT_PUBLIC_AUTHELIA_ENABLED=true
- AUTHELIA_WELLKNOWN_URL=https://auth.${PUBLIC_DOMAIN}/.well-known/openid-configuration
- AUTHELIA_CLIENT_ID=linkwarden
- AUTHELIA_CLIENT_SECRET=${LINKWARDEN_OIDC_CLIENT_SECRET}
labels: labels:
# Watchtower # Watchtower
- "com.centurylinklabs.watchtower.enable=true" - "com.centurylinklabs.watchtower.enable=true"
@@ -26,6 +31,7 @@ services:
- "traefik.http.routers.linkwarden.rule=Host(`linkwarden.${PUBLIC_DOMAIN}`)" - "traefik.http.routers.linkwarden.rule=Host(`linkwarden.${PUBLIC_DOMAIN}`)"
- "traefik.http.routers.linkwarden.entrypoints=https" - "traefik.http.routers.linkwarden.entrypoints=https"
- "traefik.http.routers.linkwarden.tls=true" - "traefik.http.routers.linkwarden.tls=true"
meilisearch: meilisearch:
extends: extends:
file: ${TEMPLATES_PATH} file: ${TEMPLATES_PATH}

View File

@@ -21,18 +21,13 @@ services:
POSTGRES_SERVER: postgres POSTGRES_SERVER: postgres
POSTGRES_PORT: 5432 POSTGRES_PORT: 5432
POSTGRES_DB: mealie POSTGRES_DB: mealie
# LDAP Authentication # OIDC using authelia
LDAP_AUTH_ENABLED: true OIDC_AUTH_ENABLED: true
LDAP_SERVER_URL: ldap://lldap:3890 OIDC_SIGNUP_ENABLED: false
LDAP_BASE_DN: ou=people,dc=${SECOND_LEVEL_DOMAIN},dc=${TOP_LEVEL_DOMAIN} OIDC_CONFIGURATION_URL: https://auth.${PUBLIC_DOMAIN}/.well-known/openid-configuration
LDAP_ID_ATTRIBUTE: uid OIDC_CLIENT_ID: mealie
LDAP_NAME_ATTRIBUTE: displayName OIDC_CLIENT_SECRET: ${MEALIE_OIDC_CLIENT_SECRET}
LDAP_MAIL_ATTRIBUTE: mail OIDC_AUTO_REDIRECT: false
LDAP_QUERY_BIND: cn=readonly_user,ou=people,dc=${SECOND_LEVEL_DOMAIN},dc=${TOP_LEVEL_DOMAIN}
LDAP_QUERY_PASSWORD: ${LLDAP_READONLY_USER_PASSWORD}
# LDAP_USER_FILTER: (memberof=cn=mealie,ou=groups,dc=example,dc=com)
# LDAP_ADMIN_FILTER: (memberof=cn=mealie-admin,ou=groups,dc=example,dc=com)
labels: labels:
# Watchtower # Watchtower
- "com.centurylinklabs.watchtower.enable=true" - "com.centurylinklabs.watchtower.enable=true"
@@ -43,4 +38,4 @@ services:
- "traefik.http.routers.mealie.tls.certresolver=myresolver" - "traefik.http.routers.mealie.tls.certresolver=myresolver"
- "traefik.http.routers.mealie.tls=true" - "traefik.http.routers.mealie.tls=true"
# Middlewares # Middlewares
- "traefik.http.routers.mealie.middlewares=crowdsec-bouncer@file" - "traefik.http.routers.mealie.middlewares=crowdsec-bouncer@file"

View File

@@ -0,0 +1,22 @@
services:
pdf:
extends:
file: ${TEMPLATES_PATH}
service: default
image: bentopdf/bentopdf-simple
container_name: pdf
ports:
- '4003:8080'
networks:
- ip6net
labels:
# Watchtower
- "com.centurylinklabs.watchtower.enable=true"
# Traefik
- "traefik.enable=true"
- "traefik.http.routers.pdf.rule=Host(`pdf.${PUBLIC_DOMAIN}`)"
- "traefik.http.routers.pdf.entrypoints=https"
- "traefik.http.routers.pdf.tls.certresolver=myresolver"
- "traefik.http.routers.pdf.tls=true"
# Middlewares
- "traefik.http.routers.pdf.middlewares=crowdsec-bouncer@file, authelia@file"

View File

@@ -1,26 +0,0 @@
services:
stirling-pdf:
extends:
file: ${TEMPLATES_PATH}
service: default
image: frooodle/s-pdf:latest
container_name: stirling-pdf
ports:
- '4003:8080'
networks:
- ip6net
volumes:
- ${SERVICE_PATH}/stirling-pdf/data:/usr/share/tesseract-ocr/4.00/tessdata #Required for extra OCR languages
- ${SERVICE_PATH}/stirling-pdf/config:/configs
# - /location/of/customFiles:/customFiles/
labels:
# Watchtower
- "com.centurylinklabs.watchtower.enable=true"
# Traefik
- "traefik.enable=true"
- "traefik.http.routers.stirling-pdf.rule=Host(`stirling-pdf.${PUBLIC_DOMAIN}`)"
- "traefik.http.routers.stirling-pdf.entrypoints=https"
- "traefik.http.routers.stirling-pdf.tls.certresolver=myresolver"
- "traefik.http.routers.stirling-pdf.tls=true"
# Middlewares
- "traefik.http.routers.stirling-pdf.middlewares=crowdsec-bouncer@file, authelia@file"

View File

@@ -18,7 +18,7 @@ services:
SSO_AUTHORITY: https://auth.${PUBLIC_DOMAIN} SSO_AUTHORITY: https://auth.${PUBLIC_DOMAIN}
SSO_SCOPES: profile email offline_access SSO_SCOPES: profile email offline_access
SSO_CLIENT_ID: vaultwarden SSO_CLIENT_ID: vaultwarden
SSO_CLIENT_SECRET: ${VAULTWARDEN_SSO_SECRET} SSO_CLIENT_SECRET: ${VAULTWARDEN_OIDC_CLIENT_SECRET}
volumes: volumes:
- ${EXTERNAL_STORAGE}/passwords:/data/ - ${EXTERNAL_STORAGE}/passwords:/data/
labels: labels: