162 lines
3.4 KiB
YAML
162 lines
3.4 KiB
YAML
# Options for building certificates
|
|
x-certs: &certs
|
|
image: paulczar/omgwtfssl
|
|
restart: "no"
|
|
volumes:
|
|
- certs:/certs
|
|
|
|
version: "3.4"
|
|
|
|
services:
|
|
dashboard:
|
|
image: rmountjoy/dashmachine:latest
|
|
volumes:
|
|
- dashboard:/dashmachine/dashmachine/user_data
|
|
restart: always
|
|
networks:
|
|
- nginx
|
|
|
|
monica:
|
|
build: ./monica
|
|
image: monica
|
|
env_file: ./monica/.env
|
|
environment:
|
|
- APP_URL=https://personel.${DOMAIN}
|
|
- DB_PASSWORD=${DB_PASSWORD}
|
|
- DB_USERNAME=${DB_USER}
|
|
- MAIL_FROM_ADDRESS=${MAIL_FROM}
|
|
- MAIL_HOST=${MAIL_HOST}
|
|
- MAIL_PORT=${MAIL_PORT}
|
|
- MAIL_USERNAME=${MAIL_USER}
|
|
- MAIL_PASSWORD=${MAIL_PASSWORD}
|
|
volumes:
|
|
- monica-data:/var/www/html/storage
|
|
- monica-public:/var/www/html/public
|
|
restart: always
|
|
depends_on:
|
|
- db
|
|
networks:
|
|
- db
|
|
- nginx
|
|
|
|
nextcloud:
|
|
build: ./nextcloud
|
|
image: nextcloud
|
|
restart: always
|
|
volumes:
|
|
- nextcloud:/var/www/html
|
|
environment:
|
|
- REDIS_HOST=redis
|
|
- MYSQL_HOST=db
|
|
- MYSQL_PASSWORD=${DB_PASSWORD}
|
|
- MYSQL_DATABASE=nextcloud
|
|
- MYSQL_USER=${DB_USER}
|
|
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
|
|
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
|
|
- MAIL_FROM=${MAIL_FROM}
|
|
- MAIL_HOST=${MAIL_HOST}
|
|
- MAIL_PORT=${MAIL_PORT}
|
|
- MAIL_USER=${MAIL_USER}
|
|
- MAIL_PASSWORD=${MAIL_PASSWORD}
|
|
- NEXTCLOUD_TRUSTED_DOMAINS=tower.${DOMAIN}
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
networks:
|
|
- db
|
|
- redis
|
|
- nginx
|
|
|
|
gitea:
|
|
image: gitea/gitea:1
|
|
environment:
|
|
- "APP_NAME=Labs: Where the good stuff happens"
|
|
- RUN_MODE=prod
|
|
- DOMAIN=labs.${DOMAIN}
|
|
- ROOT_URL=https://labs.${DOMAIN}
|
|
- DB_TYPE=mysql
|
|
- DB_HOST=db
|
|
- DB_NAME=gitea
|
|
- DB_USER=${DB_USER}
|
|
- DB_PASSWD=${DB_PASSWORD}
|
|
- USER_UID=1200
|
|
- USER_GID=1200
|
|
- DISABLE_REGISTRATION=true
|
|
restart: always
|
|
volumes:
|
|
- gitea:/data
|
|
- /home/git/.ssh/:/data/git/.ssh/
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
ports:
|
|
- "127.0.0.1:2222:22"
|
|
networks:
|
|
- db
|
|
- nginx
|
|
depends_on:
|
|
- db
|
|
|
|
db:
|
|
image: mariadb
|
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
|
|
- MYSQL_USER=${DB_USER}
|
|
- MYSQL_PASSWORD=${DB_PASSWORD}
|
|
volumes:
|
|
- db:/var/lib/mysql
|
|
- ./db/init:/docker-entrypoint-initdb.d
|
|
restart: always
|
|
networks:
|
|
- db
|
|
|
|
redis:
|
|
image: redis:alpine
|
|
restart: always
|
|
networks:
|
|
- redis
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
restart: always
|
|
volumes:
|
|
- certs:/etc/nginx/certs:ro
|
|
- ./nginx.conf:/etc/nginx/nginx.conf
|
|
- monica-public:/var/www/html/monica/public:ro
|
|
- monica-data:/var/www/html/monica/storage:ro
|
|
- nextcloud:/var/www/html/nextcloud:ro
|
|
depends_on:
|
|
- dashboard
|
|
- monica
|
|
- nextcloud
|
|
- gitea
|
|
- certs
|
|
ports:
|
|
- 80:80
|
|
- 443:443
|
|
networks:
|
|
- nginx
|
|
|
|
certs:
|
|
<<: *certs
|
|
environment:
|
|
- SSL_SUBJECT=${DOMAIN}
|
|
- CA_SUBJECT=chris@${DOMAIN}
|
|
- SSL_KEY=/certs/${DOMAIN}.key
|
|
- SSL_CSR=/certs/${DOMAIN}.csr
|
|
- SSL_CERT=/certs/${DOMAIN}.crt
|
|
|
|
volumes:
|
|
db:
|
|
gitea:
|
|
monica-public:
|
|
monica-data:
|
|
nextcloud:
|
|
certs:
|
|
dashboard:
|
|
|
|
networks:
|
|
db:
|
|
nginx:
|
|
redis:
|