summaryrefslogtreecommitdiff
path: root/docker-compose.yml
diff options
context:
space:
mode:
Diffstat (limited to 'docker-compose.yml')
-rw-r--r--docker-compose.yml104
1 files changed, 104 insertions, 0 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..e0d57c8
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,104 @@
+##################################################################################################################
+# 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: