-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This docker-compose.yml file will create a nextcloud instance with signed certs using the lets encrypt companion and the nginx reverse proxy. Collabora office will also be deployed using signed certs. To use collabora the app must be installed within nextcloud and configured to use office.DOMAIN.TLD. There is no need to specify a port, simply the pubilc domain used to create your certs for the office instance. Ports, 443 and 80 should be forwarded to the server. Signed-off-by: aarskar <[email protected]>
- Loading branch information
Showing
1 changed file
with
109 additions
and
0 deletions.
There are no files selected for viewing
109 changes: 109 additions & 0 deletions
109
...cker-compose/with-nginx-proxy-self-signed-ssl-collabora-office-mariadb/docker-compose.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
version: '3' | ||
|
||
services: | ||
|
||
proxy: | ||
image: jwilder/nginx-proxy:alpine | ||
labels: | ||
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true" | ||
container_name: nextcloud-proxy | ||
networks: | ||
- nextcloud_network | ||
ports: | ||
- 80:80 | ||
- 443:443 | ||
volumes: | ||
- ./proxy/conf.d:/etc/nginx/conf.d:rw | ||
- ./proxy/vhost.d:/etc/nginx/vhost.d:rw | ||
- ./proxy/html:/usr/share/nginx/html:rw | ||
- ./proxy/certs:/etc/nginx/certs:ro | ||
- /etc/localtime:/etc/localtime:ro | ||
- /var/run/docker.sock:/tmp/docker.sock:ro | ||
restart: unless-stopped | ||
|
||
letsencrypt: | ||
image: jrcs/letsencrypt-nginx-proxy-companion | ||
container_name: nextcloud-letsencrypt | ||
depends_on: | ||
- proxy | ||
networks: | ||
- nextcloud_network | ||
volumes: | ||
- ./proxy/certs:/etc/nginx/certs:rw | ||
- ./proxy/vhost.d:/etc/nginx/vhost.d:rw | ||
- ./proxy/html:/usr/share/nginx/html:rw | ||
- /etc/localtime:/etc/localtime:ro | ||
- /var/run/docker.sock:/var/run/docker.sock:ro | ||
restart: unless-stopped | ||
db: | ||
image: mariadb | ||
container_name: nextcloud-mariadb | ||
networks: | ||
- nextcloud_network | ||
volumes: | ||
- db:/var/lib/mysql | ||
- /etc/localtime:/etc/localtime:ro | ||
environment: | ||
# Create a root password for the maraiadb instance. | ||
- MYSQL_ROOT_PASSWORD=CREATE-A-SECURE-ROOT-PASSWORD-HERE | ||
# Create a password for the nextcloud users. If you have to manually connect your database you would use the nextcloud user and this password. | ||
- MYSQL_PASSWORD=CREATE-A-SECURE-NEXTCLOUD-USER-PASSWORD-HERE | ||
- MYSQL_DATABASE=nextcloud | ||
- MYSQL_USER=nextcloud | ||
restart: unless-stopped | ||
|
||
app: | ||
image: nextcloud:latest | ||
container_name: nextcloud-app | ||
networks: | ||
- nextcloud_network | ||
depends_on: | ||
- letsencrypt | ||
- proxy | ||
- db | ||
volumes: | ||
- nextcloud:/var/www/html | ||
- ./app/config:/var/www/html/config | ||
- ./app/custom_apps:/var/www/html/custom_apps | ||
- ./app/data:/var/www/html/data | ||
- ./app/themes:/var/www/html/themes | ||
- /etc/localtime:/etc/localtime:ro | ||
environment: | ||
# The VIRTUAL_HOST and LETSENCRYPT_HOST should use the same publically reachable domain for your nextlcloud instance. | ||
- VIRTUAL_HOST=cloud.DOMAIN.TLD | ||
- LETSENCRYPT_HOST=cloud.DOMAIN.TLD | ||
# This needs to be a real email as it will be used by let's encrypt for your cert and is used to warn you about renewals. | ||
- [email protected] | ||
restart: unless-stopped | ||
collab: | ||
image: collabora/code | ||
container_name: nextcloud-collab | ||
networks: | ||
- nextcloud_network | ||
depends_on: | ||
- proxy | ||
- letsencrypt | ||
cap_add: | ||
- MKNOD | ||
ports: | ||
- 9980:9980 | ||
environment: | ||
# This nees to be the same as what you set your app domain too (ex: cloud.domain.tld). | ||
- domain=cloud\\.DOMAIN\\.TDL | ||
- username=admin | ||
# Create a passoword for the collabora office admin page. | ||
- password=CREATE-A-SECURE-PASSWORD-HERE | ||
- VIRTUAL_PROTO=https | ||
- VIRTUAL_PORT=443 | ||
# The VIRTUAL_HOST and LETSENCRYPT_HOST should use the same publically reachable domain for your collabora instance (ex: office.domain.tld). | ||
- VIRTUAL_HOST=office.DOMAIN.TLD | ||
- LETSENCRYPT_HOST=office.DOMAIN.TLD | ||
# This needs to be a real email as it will be used by let's encrypt for your cert and is used to warn you about renewals. | ||
- [email protected] | ||
restart: unless-stopped | ||
volumes: | ||
nextcloud: | ||
db: | ||
|
||
networks: | ||
nextcloud_network: |