A few days ago, I accidentally deleted the Nextcloud service, so my Nextcloud and Collabora settings were deleted, and now I’m getting an error.
nextcloud + collabora docker-compose
services:
nextcloud:
image: 'lscr.io/linuxserver/nextcloud:latest'
environment:
SERVICE_URL_NEXTCLOUD_80: 'https://drive.domain.com:80'
PUID: '1000'
PGID: '1000'
TZ: '${TZ:-Europe/Istanbul}'
POSTGRES_DB: '${POSTGRES_DB:-nextcloud}'
POSTGRES_USER: '${SERVICE_USER_POSTGRES}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_POSTGRES}'
POSTGRES_HOST: nextcloud-db
REDIS_HOST: redis
REDIS_PORT: '6379'
COOLIFY_RESOURCE_UUID: dw80ws0c0k4gscs0ssgowsc8
COOLIFY_CONTAINER_NAME: nextcloud-dw80ws0c0k4gscs0ssgowsc8
COOLIFY_FQDN: drive.domain.com
COOLIFY_URL: 'https://drive.domain.com'
SERVICE_NAME_NEXTCLOUD: nextcloud
SERVICE_NAME_NEXTCLOUD_DB: nextcloud-db
SERVICE_NAME_REDIS: redis
SERVICE_NAME_COLLABORA: collabora
volumes:
- 'dw80ws0c0k4gscs0ssgowsc8_nextcloud-config:/config'
- 'dw80ws0c0k4gscs0ssgowsc8_nextcloud-data:/data'
depends_on:
nextcloud-db:
condition: service_healthy
redis:
condition: service_healthy
labels:
- traefik.http.middlewares.secure-headers.headers.forceSTSHeader=true
- traefik.http.middlewares.secure-headers.headers.STSSeconds=15552000
- traefik.http.middlewares.secure-headers.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.secure-headers.headers.STSPreload=true
- 'traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.middlewares=gzip,secure-headers@docker'
- coolify.managed=true
- coolify.version=4.0.0-beta.452
- coolify.serviceId=45
- coolify.type=service
- coolify.name=nextcloud-dw80ws0c0k4gscs0ssgowsc8
- coolify.resourceName=nextcloud-with-postgres-dw80ws0c0k4gscs0ssgowsc8
- coolify.projectName=nextcloud
- coolify.serviceName=nextcloud
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=166
- coolify.service.subType=application
- coolify.service.subName=nextcloud
- traefik.enable=true
- traefik.http.middlewares.gzip.compress=true
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.entryPoints=http
- traefik.http.routers.http-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.rule=Host(`drive.domain.com`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.service=http-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.entryPoints=https
- 'traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.middlewares=gzip,secure-headers'
- 'traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.rule=Host(`drive.domain.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.service=https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.tls=true
- traefik.http.services.http-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.loadbalancer.server.port=80
- traefik.http.services.https-0-dw80ws0c0k4gscs0ssgowsc8-nextcloud.loadbalancer.server.port=80
- 'caddy_0.encode=zstd gzip'
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://drive.domain.com'
- caddy_ingress_network=dw80ws0c0k4gscs0ssgowsc8
healthcheck:
test:
- CMD
- curl
- '-f'
- 'http://127.0.0.1:80'
interval: 2s
timeout: 10s
retries: 15
container_name: nextcloud-dw80ws0c0k4gscs0ssgowsc8
restart: unless-stopped
networks:
dw80ws0c0k4gscs0ssgowsc8: null
env_file:
- .env
nextcloud-db:
image: 'postgres:16-alpine'
volumes:
- 'dw80ws0c0k4gscs0ssgowsc8_nextcloud-postgresql-data:/var/lib/postgresql/data'
environment:
POSTGRES_USER: '${SERVICE_USER_POSTGRES}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_POSTGRES}'
POSTGRES_DB: '${POSTGRES_DB:-nextcloud}'
COOLIFY_RESOURCE_UUID: dw80ws0c0k4gscs0ssgowsc8
COOLIFY_CONTAINER_NAME: nextcloud-db-dw80ws0c0k4gscs0ssgowsc8
SERVICE_NAME_NEXTCLOUD: nextcloud
SERVICE_NAME_NEXTCLOUD_DB: nextcloud-db
SERVICE_NAME_REDIS: redis
SERVICE_NAME_COLLABORA: collabora
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
interval: 5s
timeout: 20s
retries: 10
container_name: nextcloud-db-dw80ws0c0k4gscs0ssgowsc8
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.452
- coolify.serviceId=45
- coolify.type=service
- coolify.name=nextcloud-db-dw80ws0c0k4gscs0ssgowsc8
- coolify.resourceName=nextcloud-with-postgres-dw80ws0c0k4gscs0ssgowsc8
- coolify.projectName=nextcloud
- coolify.serviceName=nextcloud-db
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=37
- coolify.service.subType=database
- coolify.service.subName=nextcloud-db
networks:
dw80ws0c0k4gscs0ssgowsc8: null
env_file:
- .env
redis:
image: 'redis:7.4-alpine'
volumes:
- 'dw80ws0c0k4gscs0ssgowsc8_nextcloud-redis-data:/data'
healthcheck:
test:
- CMD
- redis-cli
- PING
interval: 5s
timeout: 10s
retries: 20
container_name: redis-dw80ws0c0k4gscs0ssgowsc8
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.452
- coolify.serviceId=45
- coolify.type=service
- coolify.name=redis-dw80ws0c0k4gscs0ssgowsc8
- coolify.resourceName=nextcloud-with-postgres-dw80ws0c0k4gscs0ssgowsc8
- coolify.projectName=nextcloud
- coolify.serviceName=redis
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=38
- coolify.service.subType=database
- coolify.service.subName=redis
networks:
dw80ws0c0k4gscs0ssgowsc8: null
environment:
COOLIFY_RESOURCE_UUID: dw80ws0c0k4gscs0ssgowsc8
COOLIFY_CONTAINER_NAME: redis-dw80ws0c0k4gscs0ssgowsc8
SERVICE_NAME_NEXTCLOUD: nextcloud
SERVICE_NAME_NEXTCLOUD_DB: nextcloud-db
SERVICE_NAME_REDIS: redis
SERVICE_NAME_COLLABORA: collabora
env_file:
- .env
collabora:
image: 'collabora/code:latest'
container_name: collabora-dw80ws0c0k4gscs0ssgowsc8
restart: always
expose:
- '9980'
environment:
SERVICE_URL_COLLABORA_9980: 'https://office.domain.com:9980'
domain: drive.domain.com
DONT_GEN_SSL_CERT: 'true'
extra_params: '--o:ssl.enable=false --o:ssl.termination=true --o:welcome.enable=false'
username: admin
password: '12345678'
aliasgroup1: 'https://drive.domain.com:443'
server_name: office.domain.com
COOLIFY_RESOURCE_UUID: dw80ws0c0k4gscs0ssgowsc8
COOLIFY_CONTAINER_NAME: collabora-dw80ws0c0k4gscs0ssgowsc8
COOLIFY_FQDN: office.domain.com
COOLIFY_URL: 'https://office.domain.com'
SERVICE_NAME_NEXTCLOUD: nextcloud
SERVICE_NAME_NEXTCLOUD_DB: nextcloud-db
SERVICE_NAME_REDIS: redis
SERVICE_NAME_COLLABORA: collabora
cap_add:
- MKNOD
volumes:
- 'dw80ws0c0k4gscs0ssgowsc8_collabora-tmp:/tmp'
- '/home/burak/loolwsd:/etc/loolwsd'
labels:
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.rule=Host(`office.domain.com`)
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.entrypoints=https
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.tls=true
- traefik.http.services.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.loadbalancer.server.port=9980
- coolify.managed=true
- coolify.version=4.0.0-beta.452
- coolify.serviceId=45
- coolify.type=service
- coolify.name=collabora-dw80ws0c0k4gscs0ssgowsc8
- coolify.resourceName=nextcloud-with-postgres-dw80ws0c0k4gscs0ssgowsc8
- coolify.projectName=nextcloud
- coolify.serviceName=collabora
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=170
- coolify.service.subType=application
- coolify.service.subName=collabora
- traefik.enable=true
- traefik.http.middlewares.gzip.compress=true
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-dw80ws0c0k4gscs0ssgowsc8-collabora.entryPoints=http
- traefik.http.routers.http-0-dw80ws0c0k4gscs0ssgowsc8-collabora.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-dw80ws0c0k4gscs0ssgowsc8-collabora.rule=Host(`office.domain.com`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-dw80ws0c0k4gscs0ssgowsc8-collabora.service=http-0-dw80ws0c0k4gscs0ssgowsc8-collabora
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.entryPoints=https
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.middlewares=gzip
- 'traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.rule=Host(`office.domain.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.service=https-0-dw80ws0c0k4gscs0ssgowsc8-collabora
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.tls=true
- traefik.http.services.http-0-dw80ws0c0k4gscs0ssgowsc8-collabora.loadbalancer.server.port=9980
- traefik.http.services.https-0-dw80ws0c0k4gscs0ssgowsc8-collabora.loadbalancer.server.port=9980
- 'caddy_0.encode=zstd gzip'
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 9980}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://office.domain.com'
- caddy_ingress_network=dw80ws0c0k4gscs0ssgowsc8
networks:
dw80ws0c0k4gscs0ssgowsc8: null
env_file:
- .env
volumes:
dw80ws0c0k4gscs0ssgowsc8_nextcloud-config:
name: dw80ws0c0k4gscs0ssgowsc8_nextcloud-config
dw80ws0c0k4gscs0ssgowsc8_nextcloud-data:
name: dw80ws0c0k4gscs0ssgowsc8_nextcloud-data
dw80ws0c0k4gscs0ssgowsc8_nextcloud-postgresql-data:
name: dw80ws0c0k4gscs0ssgowsc8_nextcloud-postgresql-data
dw80ws0c0k4gscs0ssgowsc8_nextcloud-redis-data:
name: dw80ws0c0k4gscs0ssgowsc8_nextcloud-redis-data
dw80ws0c0k4gscs0ssgowsc8_collabora-tmp:
name: dw80ws0c0k4gscs0ssgowsc8_collabora-tmp
networks:
dw80ws0c0k4gscs0ssgowsc8:
name: dw80ws0c0k4gscs0ssgowsc8
external: true
coolify-proxy (traefik) yaml
name: coolify-proxy
networks:
coolify:
external: true
services:
traefik:
container_name: coolify-proxy
image: 'traefik:v3.6'
restart: unless-stopped
extra_hosts:
- 'host.docker.internal:host-gateway'
networks:
- coolify
ports:
# - '80:80'
- '443:443'
- '443:443/udp'
- '8080:8080'
healthcheck:
test: 'wget -qO- http://localhost:80/ping || exit 1'
interval: 4s
timeout: 2s
retries: 5
volumes:
- '/var/run/docker.sock:/var/run/docker.sock:ro'
- '/data/coolify/proxy/:/traefik'
environment:
- CF_API_EMAIL=kes.ici0619@gmail.com
- CF_API_KEY=token
command:
- '--ping=true'
- '--ping.entrypoint=http'
- '--api.dashboard=true'
- '--entrypoints.http.address=:80'
- '--entrypoints.https.address=:443'
- '--entrypoints.http.http.encodequerysemicolons=true'
- '--entryPoints.http.http2.maxConcurrentStreams=250'
- '--entrypoints.https.http.encodequerysemicolons=true'
- '--entryPoints.https.http2.maxConcurrentStreams=250'
- '--entrypoints.https.http3'
- '--providers.file.directory=/traefik/dynamic/'
- '--providers.file.watch=true'
- '--certificatesresolvers.letsencrypt.acme.dnschallenge=true'
- '--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=cloudflare'
- '--certificatesresolvers.letsencrypt.acme.email=kes.ici0619@gmail.com'
- '--certificatesresolvers.letsencrypt.acme.storage=/traefik/acme.json'
- '--api.insecure=false'
- '--providers.docker=true'
- '--providers.docker.exposedbydefault=false'
- '--entrypoints.https.transport.respondingtimeouts.readtimeout=0' # 30 dakika
- '--entrypoints.https.transport.respondingtimeouts.idletimeout=0' # 30 dakika
- '--entrypoints.https.transport.respondingtimeouts.writetimeout=0' # 30 dakika
- '--entrypoints.http.transport.respondingtimeouts.readtimeout=0' # 30 dakika
- '--entrypoints.http.transport.respondingtimeouts.idletimeout=0' # 30 dakika
- '--entrypoints.http.transport.respondingtimeouts.writetimeout=0' # 30 dakika
labels:
- traefik.enable=true
- traefik.http.routers.traefik.entrypoints=http
- traefik.http.routers.traefik.service=api@internal
- traefik.http.services.traefik.loadbalancer.server.port=8080
- coolify.managed=true
- coolify.proxy=truename: coolify-proxy
networks:
coolify:
external: true
services:
traefik:
container_name: coolify-proxy
image: 'traefik:v3.6'
restart: unless-stopped
extra_hosts:
- 'host.docker.internal:host-gateway'
networks:
- coolify
ports:
# - '80:80'
- '443:443'
- '443:443/udp'
- '8080:8080'
healthcheck:
test: 'wget -qO- http://localhost:80/ping || exit 1'
interval: 4s
timeout: 2s
retries: 5
volumes:
- '/var/run/docker.sock:/var/run/docker.sock:ro'
- '/data/coolify/proxy/:/traefik'
environment:
- CF_API_EMAIL=kes.ici0619@gmail.com
- CF_API_KEY=bc198c808cb121cc1f3fd4cf3f0fbe25eca91
command:
- '--ping=true'
- '--ping.entrypoint=http'
- '--api.dashboard=true'
- '--entrypoints.http.address=:80'
- '--entrypoints.https.address=:443'
- '--entrypoints.http.http.encodequerysemicolons=true'
- '--entryPoints.http.http2.maxConcurrentStreams=250'
- '--entrypoints.https.http.encodequerysemicolons=true'
- '--entryPoints.https.http2.maxConcurrentStreams=250'
- '--entrypoints.https.http3'
- '--providers.file.directory=/traefik/dynamic/'
- '--providers.file.watch=true'
- '--certificatesresolvers.letsencrypt.acme.dnschallenge=true'
- '--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=cloudflare'
- '--certificatesresolvers.letsencrypt.acme.email=kes.ici0619@gmail.com'
- '--certificatesresolvers.letsencrypt.acme.storage=/traefik/acme.json'
- '--api.insecure=false'
- '--providers.docker=true'
- '--providers.docker.exposedbydefault=false'
- '--entrypoints.https.transport.respondingtimeouts.readtimeout=0' # 30 dakika
- '--entrypoints.https.transport.respondingtimeouts.idletimeout=0' # 30 dakika
- '--entrypoints.https.transport.respondingtimeouts.writetimeout=0' # 30 dakika
- '--entrypoints.http.transport.respondingtimeouts.readtimeout=0' # 30 dakika
- '--entrypoints.http.transport.respondingtimeouts.idletimeout=0' # 30 dakika
- '--entrypoints.http.transport.respondingtimeouts.writetimeout=0' # 30 dakika
labels:
- traefik.enable=true
- traefik.http.routers.traefik.entrypoints=http
- traefik.http.routers.traefik.service=api@internal
- traefik.http.services.traefik.loadbalancer.server.port=8080
- coolify.managed=true
- coolify.proxy=true
