mirror of
https://github.com/openmhz/trunk-server.git
synced 2026-11-09 15:27:30 -05:00
187 lines
4.2 KiB
YAML
187 lines
4.2 KiB
YAML
version: "3"
|
|
services:
|
|
nginx:
|
|
build:
|
|
context: ./nginx-proxy
|
|
args:
|
|
STAGE: ${STAGE}
|
|
environment:
|
|
- DOMAIN_NAME
|
|
image: "nginx:${TAG}-${STAGE}"
|
|
networks:
|
|
- proxy
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "5602:5602"
|
|
restart: always
|
|
volumes:
|
|
- ${PWD}/data/log/syslog:/var/log/syslog
|
|
- ${PWD}/data/log/nginx:/var/log/nginx
|
|
- ${PWD}/data/certbot/www/:/var/www/certbot/:ro
|
|
- ${PWD}/data/certbot/conf/:/etc/letsencrypt/:ro
|
|
depends_on:
|
|
- backend
|
|
- frontend
|
|
- account
|
|
- admin
|
|
command: /bin/bash -c "envsubst '$$DOMAIN_NAME' < /etc/nginx/conf.d/site.template > /etc/nginx/conf.d/default.conf && while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g 'daemon off;'"
|
|
|
|
certbot:
|
|
image: certbot/certbot:latest
|
|
volumes:
|
|
- ${PWD}/data/certbot/www/:/var/www/certbot/:rw
|
|
- ${PWD}/data/certbot/conf/:/etc/letsencrypt/:rw
|
|
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
|
|
|
|
mongo:
|
|
build:
|
|
context: ./mongo
|
|
environment:
|
|
- FREE_PLAN
|
|
- PRO_PLAN
|
|
- FREE_PLAN_ARCHIVE
|
|
- PRO_PLAN_ARCHIVE
|
|
image: "mongo:${TAG}-${STAGE}"
|
|
volumes:
|
|
- ${PWD}/data/mongo:/data/db
|
|
networks:
|
|
- node
|
|
restart: always
|
|
logging:
|
|
driver: syslog
|
|
options:
|
|
tag: "mongo"
|
|
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
image: "backend:${TAG}-${STAGE}"
|
|
pid: "host"
|
|
environment:
|
|
- MONGO_NODE_DRIVER_HOST=mongo
|
|
- MAILJET_KEY
|
|
- MAILJET_SECRET
|
|
- REACT_APP_ADMIN_EMAIL
|
|
- REACT_APP_SITE_NAME
|
|
- NODE_ENV
|
|
- REACT_APP_BACKEND_SERVER
|
|
- REACT_APP_ADMIN_SERVER
|
|
- REACT_APP_FRONTEND_SERVER
|
|
- REACT_APP_ACCOUNT_SERVER
|
|
- S3_ENDPOINT
|
|
- S3_BUCKET
|
|
- S3_PROFILE
|
|
- S3_REGION
|
|
volumes:
|
|
- "~/.aws:/home/app/.aws"
|
|
depends_on:
|
|
- mongo
|
|
ports:
|
|
- "3005:3005"
|
|
networks:
|
|
- node
|
|
- proxy
|
|
restart: always
|
|
logging:
|
|
driver: syslog
|
|
options:
|
|
tag: "backend"
|
|
|
|
admin:
|
|
build:
|
|
context: ./admin
|
|
args:
|
|
- REACT_APP_BACKEND_SERVER
|
|
- REACT_APP_ADMIN_SERVER
|
|
- REACT_APP_ACCOUNT_SERVER
|
|
- REACT_APP_FRONTEND_SERVER
|
|
- REACT_APP_SITE_NAME
|
|
- REACT_APP_ADMIN_EMAIL
|
|
- NODE_ENV
|
|
image: "admin:${TAG}-${STAGE}"
|
|
environment:
|
|
- REACT_APP_BACKEND_SERVER
|
|
- REACT_APP_ADMIN_SERVER
|
|
- REACT_APP_ACCOUNT_SERVER
|
|
- REACT_APP_FRONTEND_SERVER
|
|
- REACT_APP_SITE_NAME
|
|
- MONGO_NODE_DRIVER_HOST=mongo
|
|
- NODE_ENV
|
|
depends_on:
|
|
- mongo
|
|
networks:
|
|
- node
|
|
- proxy
|
|
restart: always
|
|
logging:
|
|
driver: syslog
|
|
options:
|
|
tag: "admin"
|
|
|
|
account:
|
|
build:
|
|
context: ./account
|
|
args:
|
|
- REACT_APP_BACKEND_SERVER
|
|
- REACT_APP_ADMIN_SERVER
|
|
- REACT_APP_ACCOUNT_SERVER
|
|
- REACT_APP_FRONTEND_SERVER
|
|
- REACT_APP_SITE_NAME
|
|
- REACT_APP_ADMIN_EMAIL
|
|
- NODE_ENV
|
|
image: "acount:${TAG}-${STAGE}"
|
|
environment:
|
|
- MONGO_NODE_DRIVER_HOST=mongo
|
|
- MAILJET_KEY
|
|
- MAILJET_SECRET
|
|
- REACT_APP_BACKEND_SERVER
|
|
- REACT_APP_ADMIN_SERVER
|
|
- REACT_APP_ACCOUNT_SERVER
|
|
- REACT_APP_FRONTEND_SERVER
|
|
- REACT_APP_SITE_NAME
|
|
- REACT_APP_ADMIN_EMAIL
|
|
- REACT_APP_COOKIE_DOMAIN
|
|
- NODE_ENV
|
|
depends_on:
|
|
- mongo
|
|
networks:
|
|
- node
|
|
- proxy
|
|
restart: always
|
|
logging:
|
|
driver: syslog
|
|
options:
|
|
tag: "account"
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
args:
|
|
- REACT_APP_BACKEND_SERVER
|
|
- REACT_APP_FRONTEND_SERVER
|
|
- REACT_APP_SITE_NAME
|
|
- REACT_APP_GOOGLE_ANALYTICS
|
|
- NODE_ENV
|
|
image: "frontend:${TAG}-${STAGE}"
|
|
environment:
|
|
- MONGO_NODE_DRIVER_HOST=mongo
|
|
- REACT_APP_BACKEND_SERVER
|
|
- REACT_APP_FRONTEND_SERVER
|
|
- REACT_APP_SITE_NAME
|
|
- REACT_APP_GOOGLE_ANALYTICS
|
|
depends_on:
|
|
- mongo
|
|
networks:
|
|
- node
|
|
- proxy
|
|
restart: always
|
|
logging:
|
|
driver: syslog
|
|
options:
|
|
tag: "frontend"
|
|
|
|
networks:
|
|
proxy:
|
|
node:
|