mirror of
https://github.com/nextcloud/docker.git
synced 2024-11-18 02:56:42 +01:00
110 lines
3.5 KiB
YAML
110 lines
3.5 KiB
YAML
|
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.
|
||
|
- LETSENCRYPT_EMAIL=YOUR-EMAIL@DOMAIN.TDL
|
||
|
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.
|
||
|
- LETSENCRYPT_EMAIL=YOUR-EMAIL@DOMAIN.TDL
|
||
|
restart: unless-stopped
|
||
|
volumes:
|
||
|
nextcloud:
|
||
|
db:
|
||
|
|
||
|
networks:
|
||
|
nextcloud_network:
|