fix(nextcloud, paperless): actualizar stacks de gestión documental
- Nextcloud: ajustes en docker-compose.yml y stack.env - Paperless-ngx: ajustes en docker-compose.yml y stack.env (ambos stacks comparten integración via WebDAV para sincronizar bandeja) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,15 @@ services:
|
||||
- proxy
|
||||
- mail_internal
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=proxy
|
||||
|
||||
- traefik.http.routers.nextcloud.rule=Host(`${NC_DOMAIN}`)
|
||||
- traefik.http.routers.nextcloud.entrypoints=websecure
|
||||
- traefik.http.routers.nextcloud.tls=true
|
||||
- traefik.http.routers.nextcloud.tls.certresolver=${TRAEFIK_CERTRESOLVER}
|
||||
- traefik.http.routers.nextcloud.middlewares=nc-dav,nc-secure-headers
|
||||
|
||||
- traefik.http.middlewares.nc-dav.redirectregex.permanent=true
|
||||
- traefik.http.middlewares.nc-dav.redirectregex.regex=https://(.*)/.well-known/(?:card|cal)dav
|
||||
- traefik.http.middlewares.nc-dav.redirectregex.replacement=https://$${1}/remote.php/dav
|
||||
@@ -148,13 +157,22 @@ services:
|
||||
- nextcloud_internal
|
||||
- proxy
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=proxy
|
||||
|
||||
- traefik.http.routers.onlyoffice.rule=Host(`${OO_DOMAIN}`)
|
||||
- traefik.http.routers.onlyoffice.entrypoints=websecure
|
||||
- traefik.http.routers.onlyoffice.tls=true
|
||||
- traefik.http.routers.onlyoffice.tls.certresolver=${TRAEFIK_CERTRESOLVER}
|
||||
- traefik.http.routers.onlyoffice.middlewares=oo-secure-headers,oo-forwarded
|
||||
|
||||
- traefik.http.middlewares.oo-secure-headers.headers.stsSeconds=31536000
|
||||
- traefik.http.middlewares.oo-secure-headers.headers.stsIncludeSubdomains=true
|
||||
- traefik.http.middlewares.oo-secure-headers.headers.stsPreload=true
|
||||
- traefik.http.middlewares.oo-secure-headers.headers.contentTypeNosniff=true
|
||||
|
||||
- traefik.http.middlewares.oo-forwarded.headers.customRequestHeaders.X-Forwarded-Proto=https
|
||||
- traefik.http.middlewares.oo-forwarded.headers.customRequestHeaders.X-Forwarded-Host=onlyoffice.sherlockhomeless.net
|
||||
- traefik.http.middlewares.oo-forwarded.headers.customRequestHeaders.X-Forwarded-Host=${OO_DOMAIN}
|
||||
- traefik.http.middlewares.oo-forwarded.headers.customRequestHeaders.X-Forwarded-Port=443
|
||||
- traefik.http.middlewares.oo-forwarded.headers.customRequestHeaders.X-Forwarded-Ssl=on
|
||||
|
||||
|
||||
+14
-10
@@ -1,21 +1,25 @@
|
||||
TZ=Europe/Madrid
|
||||
NC_DOMAIN=nextcloud.sherlockhomeless.net
|
||||
OO_DOMAIN=onlyoffice.sherlockhomeless.net
|
||||
NC_DOMAIN=app.example.com
|
||||
OO_DOMAIN=app.example.com
|
||||
TRAEFIK_CERTRESOLVER=letsencrypt
|
||||
TRUSTED_PROXIES=10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
|
||||
MYSQL_ROOT_PASSWORD=change_me_mysql_root_password_long_and_secure
|
||||
MYSQL_ROOT_PASSWORD=change-me
|
||||
MYSQL_DATABASE=nextcloud
|
||||
MYSQL_USER=nextcloud
|
||||
MYSQL_PASSWORD=change_me_nextcloud_db_password_long_and_secure
|
||||
MYSQL_PASSWORD=change-me
|
||||
NEXTCLOUD_ADMIN_USER=admin
|
||||
NEXTCLOUD_ADMIN_PASSWORD=change_me_nextcloud_admin_password_long_and_secure
|
||||
OO_JWT_SECRET=change_me_onlyoffice_jwt_secret_long_and_random
|
||||
OO_SECURE_LINK_SECRET=change_me_onlyoffice_secure_link_secret_long_and_random
|
||||
NEXTCLOUD_ADMIN_PASSWORD=change-me
|
||||
OO_JWT_SECRET=change-me
|
||||
OO_SECURE_LINK_SECRET=change-me
|
||||
SMTP_HOST=mail-relay
|
||||
SMTP_PORT=587
|
||||
SMTP_SECURE=tls
|
||||
SMTP_SECURE=
|
||||
SMTP_AUTHTYPE=
|
||||
SMTP_NAME=
|
||||
SMTP_PASSWORD=
|
||||
MAIL_FROM_ADDRESS=nextcloud@thehomelesssherlock.com
|
||||
MAIL_DOMAIN=thehomelesssherlock.com
|
||||
MAIL_FROM_ADDRESS=noreply
|
||||
MAIL_DOMAIN=app.example.com
|
||||
SERVICE_FQDN_ONLYOFFICE_DOCUMENTSERVER=app.example.com
|
||||
SERVICE_URL_ONLYOFFICE_DOCUMENTSERVER=https://app.example.com
|
||||
SERVICE_FQDN_NEXTCLOUD=app.example.com
|
||||
SERVICE_URL_NEXTCLOUD=https://app.example.com
|
||||
|
||||
@@ -74,6 +74,14 @@ services:
|
||||
PAPERLESS_TIKA_ENDPOINT: http://paperless-tika:9998
|
||||
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://paperless-gotenberg:3000
|
||||
|
||||
PAPERLESS_EMAIL_HOST: ${PAPERLESS_EMAIL_HOST}
|
||||
PAPERLESS_EMAIL_PORT: ${PAPERLESS_EMAIL_PORT}
|
||||
PAPERLESS_EMAIL_USE_TLS: ${PAPERLESS_EMAIL_USE_TLS}
|
||||
PAPERLESS_EMAIL_USE_SSL: ${PAPERLESS_EMAIL_USE_SSL}
|
||||
PAPERLESS_EMAIL_FROM: ${PAPERLESS_EMAIL_FROM}
|
||||
PAPERLESS_EMAIL_HOST_USER: ${PAPERLESS_EMAIL_HOST_USER}
|
||||
PAPERLESS_EMAIL_HOST_PASSWORD: ${PAPERLESS_EMAIL_HOST_PASSWORD}
|
||||
|
||||
# Más robusto cuando los ficheros llegan por sync/mount y no por inotify puro
|
||||
PAPERLESS_CONSUMER_POLLING: ${PAPERLESS_CONSUMER_POLLING}
|
||||
volumes:
|
||||
@@ -86,6 +94,15 @@ services:
|
||||
- proxy
|
||||
- mail_internal
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=proxy
|
||||
|
||||
- traefik.http.routers.paperless.rule=Host(`${PAPERLESS_DOMAIN}`)
|
||||
- traefik.http.routers.paperless.entrypoints=websecure
|
||||
- traefik.http.routers.paperless.tls=true
|
||||
- traefik.http.routers.paperless.tls.certresolver=${TRAEFIK_CERTRESOLVER}
|
||||
- traefik.http.routers.paperless.middlewares=paperless-secure-headers
|
||||
|
||||
- traefik.http.middlewares.paperless-secure-headers.headers.stsSeconds=31536000
|
||||
- traefik.http.middlewares.paperless-secure-headers.headers.stsIncludeSubdomains=true
|
||||
- traefik.http.middlewares.paperless-secure-headers.headers.stsPreload=true
|
||||
@@ -109,12 +126,27 @@ services:
|
||||
- paperless_internal
|
||||
- proxy
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=proxy
|
||||
|
||||
- traefik.http.routers.paperless-ai.rule=Host(`${PAPERLESS_AI_DOMAIN}`)
|
||||
- traefik.http.routers.paperless-ai.entrypoints=websecure
|
||||
- traefik.http.routers.paperless-ai.tls=true
|
||||
- traefik.http.routers.paperless-ai.tls.certresolver=${TRAEFIK_CERTRESOLVER}
|
||||
- traefik.http.routers.paperless-ai.middlewares=paperless-ai-secure-headers
|
||||
|
||||
- traefik.http.middlewares.paperless-ai-secure-headers.headers.stsSeconds=31536000
|
||||
- traefik.http.middlewares.paperless-ai-secure-headers.headers.stsIncludeSubdomains=true
|
||||
- traefik.http.middlewares.paperless-ai-secure-headers.headers.stsPreload=true
|
||||
- traefik.http.middlewares.paperless-ai-secure-headers.headers.contentTypeNosniff=true
|
||||
|
||||
- traefik.http.services.paperless-ai.loadbalancer.server.port=3000
|
||||
- homepage.group=Productividad
|
||||
- homepage.name=Paperless AI
|
||||
- homepage.icon=https://media.sys.truenas.net/apps/paperless-ai/icons/icon.png
|
||||
- homepage.description=Complemento IA para Paperless
|
||||
- homepage.href=https://${PAPERLESS_AI_DOMAIN}
|
||||
- homepage.siteMonitor=https://${PAPERLESS_AI_DOMAIN}
|
||||
|
||||
# Sync unidireccional: Nextcloud/Paperless-Inbox -> paperless/consume
|
||||
paperless-inbox-sync:
|
||||
|
||||
+19
-8
@@ -1,19 +1,30 @@
|
||||
TZ=Europe/Madrid
|
||||
NC_DOMAIN=nextcloud.example.com
|
||||
PAPERLESS_DOMAIN=paperless.example.com
|
||||
PAPERLESS_AI_DOMAIN=paperless-ai.example.com
|
||||
NC_DOMAIN=app.example.com
|
||||
PAPERLESS_DOMAIN=app.example.com
|
||||
PAPERLESS_AI_DOMAIN=app.example.com
|
||||
TRAEFIK_CERTRESOLVER=letsencrypt
|
||||
TRUSTED_PROXIES=10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
|
||||
PAPERLESS_DBNAME=paperless
|
||||
PAPERLESS_DBUSER=paperless
|
||||
PAPERLESS_DBPASS=change_me_paperless_db_password_long_and_secure
|
||||
PAPERLESS_SECRET_KEY=change_me_paperless_secret_key_long_and_random_string
|
||||
PAPERLESS_DBPASS=change-me
|
||||
PAPERLESS_SECRET_KEY=change-me
|
||||
PAPERLESS_ADMIN_USER=admin
|
||||
PAPERLESS_ADMIN_PASSWORD=change_me_paperless_admin_password_long_and_secure
|
||||
PAPERLESS_ADMIN_PASSWORD=change-me
|
||||
PAPERLESS_ADMIN_MAIL=admin@example.com
|
||||
PAPERLESS_CONSUMER_POLLING=60
|
||||
PAPERLESS_ALLOWED_HOSTS=paperless.example.com,paperless,localhost
|
||||
PAPERLESS_ALLOWED_HOSTS=app.example.com
|
||||
NC_WEBDAV_USER=paperless
|
||||
NC_WEBDAV_PASS=change_me_nextcloud_webdav_password_long_and_random
|
||||
NC_WEBDAV_PASS=change-me
|
||||
PAPERLESS_INBOX_DIR=Paperless-Inbox
|
||||
RCLONE_SYNC_INTERVAL=60
|
||||
PAPERLESS_EMAIL_HOST=mail-relay
|
||||
PAPERLESS_EMAIL_PORT=587
|
||||
PAPERLESS_EMAIL_USE_TLS=false
|
||||
PAPERLESS_EMAIL_USE_SSL=false
|
||||
PAPERLESS_EMAIL_FROM=admin@example.com
|
||||
PAPERLESS_EMAIL_HOST_USER=
|
||||
PAPERLESS_EMAIL_HOST_PASSWORD=
|
||||
SERVICE_FQDN_PAPERLESS_AI=app.example.com
|
||||
SERVICE_FQDN_PAPERLESS=app.example.com
|
||||
SERVICE_URL_PAPERLESS=https://app.example.com
|
||||
SERVICE_URL_PAPERLESS_AI=https://app.example.com
|
||||
|
||||
Reference in New Issue
Block a user