diff options
author | Orangerot <purple@orangerot.dev> | 2024-06-19 00:14:49 +0200 |
---|---|---|
committer | Orangerot <purple@orangerot.dev> | 2024-06-27 12:11:14 +0200 |
commit | 5b8851b6c268d0e93c158908fbfae9f8473db5ff (patch) | |
tree | 7010eb85d86fa2da06ea4ffbcdb01a685d502ae8 /docker-compose.yml |
Diffstat (limited to 'docker-compose.yml')
-rw-r--r-- | docker-compose.yml | 104 |
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: |