105 lines
3 KiB
YAML
105 lines
3 KiB
YAML
##################################################################################################################
|
|
# Please put any variable changes for the environment or build arguments into the .env file of the source folder #
|
|
##################################################################################################################
|
|
|
|
version: '3.9'
|
|
|
|
services:
|
|
|
|
maria_db:
|
|
image: "mariadb:10.4.28"
|
|
restart: always
|
|
networks:
|
|
- backend
|
|
environment:
|
|
MARIADB_DATABASE: demo
|
|
MARIADB_USER: pse
|
|
MARIADB_PASSWORD: PSEsq1702!mdb
|
|
MARIADB_RANDOM_ROOT_PASSWORD: yes
|
|
volumes:
|
|
- database:/var/lib/mysql
|
|
healthcheck:
|
|
test: "/usr/bin/mysql --user=$${MARIADB_USER} --password=$${MARIADB_PASSWORD} --execute \"SHOW DATABASES;\""
|
|
interval: 5s
|
|
|
|
pse-backend:
|
|
restart: always
|
|
hostname: pse-backend
|
|
network_mode: "bridge"
|
|
build:
|
|
context: ./pse-server
|
|
dockerfile: Dockerfile
|
|
args:
|
|
SERVER_TIMEZONE: ${SERVER_TIMEZONE}
|
|
networks:
|
|
- backend
|
|
environment:
|
|
EMAIL_DASHBOARD_BASE_URL: http://${FRONTEND_DOMAIN}
|
|
EMAIL_VERIFICATION_URL: http://${BACKEND_DOMAIN}/api/2/auth/%s/verify.json
|
|
EMAIL_RESET_URL_PATH: /resetPassword
|
|
SPRING_MAIL_HOST: ${SPRING_MAIL_HOST}
|
|
SPRING_MAIL_PORT: ${SPRING_MAIL_PORT}
|
|
SPRING_MAIL_USERNAME: ${SPRING_MAIL_USERNAME}
|
|
SPRING_MAIL_PASSWORD: ${SPRING_MAIL_PASSWORD}
|
|
depends_on:
|
|
maria_db:
|
|
condition: service_healthy
|
|
links:
|
|
- maria_db:maria_db
|
|
|
|
pse-frontend:
|
|
restart: always
|
|
build:
|
|
context: ./pse-dashboard
|
|
dockerfile: Dockerfile
|
|
args:
|
|
VITE_BACKEND_URL: //${BACKEND_DOMAIN}
|
|
networks:
|
|
- frontend
|
|
|
|
reverse-proxy:
|
|
restart: always
|
|
environment:
|
|
NGINX_ENVSUBST_TEMPLATE_SUFFIX: ".tmpl"
|
|
FRONTEND_DOMAIN: ${FRONTEND_DOMAIN}
|
|
BACKEND_DOMAIN: ${BACKEND_DOMAIN}
|
|
build:
|
|
context: ./reverse-proxy
|
|
dockerfile: Dockerfile
|
|
networks:
|
|
- frontend
|
|
- backend
|
|
depends_on:
|
|
- pse-backend
|
|
- pse-frontend
|
|
# Uncomment volumes when using SSL (location of certificates)
|
|
volumes:
|
|
- ./reverse-proxy/letsencrypt:/letsencrypt
|
|
- ./reverse-proxy/letsencrypt/certs:/etc/letsencrypt
|
|
ports:
|
|
- 80:80
|
|
# Uncomment port when using SSL
|
|
- 443:443
|
|
|
|
|
|
######################################################################################
|
|
# Uncomment following text to create / renew SSL certificates for Front- and Backend #
|
|
######################################################################################
|
|
#
|
|
# certbot:
|
|
# image: certbot/certbot
|
|
# container_name: certbot
|
|
# volumes:
|
|
# - ./reverse-proxy/letsencrypt:/letsencrypt
|
|
# - ./reverse-proxy/letsencrypt/certs:/etc/letsencrypt
|
|
# command: certonly --webroot -w /letsencrypt -d ${FRONTEND_DOMAIN} -d ${BACKEND_DOMAIN} --email ${SPRING_MAIL_USERNAME} --agree-tos
|
|
# depends_on:
|
|
# - reverse-proxy
|
|
|
|
networks:
|
|
frontend:
|
|
backend:
|
|
|
|
volumes:
|
|
database:
|