@wwe , can you please help me?
For days and day I have struggled and cannot make Nextcloud + Collabora work behind my reverse-proxy, that is Caddy.
Using only Docker for the containers and exposing ports 80 and 9980 on host I can use Nextcloud with Collabora and also can access administrative panel of Collabora on https://collabora.local.cites.aop/browser/dist/admin/admin.html
My docker-compose to start Nextcloud/Collabora stack:
version: '2'
services:
nextcloud-db:
image: postgres:14.2-alpine
container_name: nextcloud-db
restart: unless-stopped
environment:
POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: password
volumes:
- nextcloud-db:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
nextcloud-cache:
image: redis:7.0.0-alpine
container_name: nextcloud-cache
restart: unless-stopped
mem_limit: 2048m
mem_reservation: 512m
command: redis-server --requirepass password
nextcloud-app:
image: nextcloud:24.0.0-fpm-alpine
container_name: nextcloud-app
restart: unless-stopped
depends_on:
- nextcloud-db
- nextcloud-cache
environment:
POSTGRES_DB: nextcloud
POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: password
POSTGRES_HOST: nextcloud-db
NEXTCLOUD_ADMIN_USER: admin
NEXTCLOUD_ADMIN_PASSWORD: password
NEXTCLOUD_TRUSTED_DOMAINS: nextcloud.local.cites.aop
REDIS_HOST: nextcloud-cache
REDIS_HOST_PASSWORD: password
SMTP_HOST: mail.local.cites.aop
SMTP_SECURE: tls
SMTP_PORT: 587
SMTP_AUTHTYPE: LOGIN
SMTP_NAME: mailer@local.cites.aop
SMTP_PASSWORD: password
MAIL_FROM_ADDRESS: no-reply
MAIL_DOMAIN: local.cites.aop
volumes:
- nextcloud-app:/var/www/html
nextcloud-web:
image: nginx:1.21.6-alpine
container_name: nextcloud-web
restart: unless-stopped
ports:
- 80:80
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- nextcloud-app
nextcloud-collabora:
image: collabora/code:21.11.4.2.1
container_name: nextcloud-collabora
restart: unless-stopped
ports:
- 9980:9980
depends_on:
- nextcloud-web
environment:
- username=admin
- password=password
- dictionaries=en_US es_ES pt_BR
- extra_params=--o:ssl.enable=false
volumes:
- /etc/localtime:/etc/localtime:ro
volumes:
nextcloud-app:
nextcloud-db:
#networks:
# default:
# name: caddy_net
# external: true
At the end of the docker-compose.yml, commented, is a external network that, after activated should allow reverse-proxy (Caddy) to access this containers by name and I should comment the two ports that are exposed now, 80 and 9980.
The docker-compose.yml for Caddy:
version: "3.7"
services:
caddy:
image: caddy:2.5.1-alpine
hostname: caddy
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./sites:/srv
- app_data:/data
- app_config:/config
volumes:
app_data:
app_config:
networks:
default:
name: caddy_net
external: true
And the Caddyfile:
{
debug
}
nextcloud.local.cites.aop {
acme_server
tls internal
reverse_proxy nextcloud-web
}
collabora.local.setic.poa.br {
acme_server
tls internal
reverse_proxy nextcloud-collabora:9980
}
I am testing everything at my internal network, also using a Pi-hole to manage the local DNS.
Searched a lot on Google, forums and cannot find the proper configuration between the three main actors: reverse-proxy, Nextcloud and Collabora.
![]()