2
0
Fork 0
backend/docker-compose.yml

215 lines
4.1 KiB
YAML

version: "3"
services:
traefik:
image: traefik
command: --configfile=/traefik.toml
depends_on:
- core
- heartbeat
- auth
- pictures
- webrtc
- store
ports:
- "80:80"
- "443:443"
- "1837:1837"
- "8080:8080"
volumes:
- ./traefik.toml:/traefik.toml
networks:
- traefiknet
- authnet
pg:
build: ./backend-core/postgres
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD=
- POSTGRES_DB=core
ports:
- "5432:5432" # Close this for production
networks:
- pgnet
nats:
image: nats:latest
ports: # Close these for production
- "4222:4222"
- "6222:6222"
- "8222:8222"
networks:
- natsnet
redis:
image: redis:latest
ports:
- "6379:6379" # Close this for production
networks:
- redisnet
minio:
image: minio/minio:latest
environment:
- MINIO_ACCESS_KEY=MINIO_ID
- MINIO_SECRET_KEY=MINIO_KEY
ports:
- "9000:9000"
volumes:
- ./files:/export
command: minio server /export
networks:
- minionet
core:
build: ./backend-core
tty: true
restart: unless-stopped
depends_on:
- pg
environment:
- LISTEN=:80
- POSTGRES=postgresql://root@pg:5432/core?sslmode=disable
networks:
- pgnet
- traefiknet
- natsnet
heartbeat:
build: ./backend-heartbeat
tty: true
restart: unless-stopped
depends_on:
- redis
environment:
- LISTEN=:80
- REDIS=redis:6379
networks:
- redisnet
- traefiknet
login:
build: ./backend-login
tty: true
restart: unless-stopped
depends_on:
- pg
- redis
- core
volumes:
- ${PWD}/key:/key
environment:
- LISTEN=:80
- SECRET=secret
- POSTGRES=postgresql://root@pg:5432/core?sslmode=disable
- REDIS=redis:6379
- TTL=120s
- MESSAGING_SID=MG19d18fafcff1f3f34dff04c5b04c0699
- TWILIO_SID=AC22ea3eea85e5108a96b947aea8ab1320
- TWILIO_TOKEN=fb23fa1a1564aa9f62a7a3117f07b3a0
- CORE_URL=http://core/user
networks:
- traefiknet
- redisnet
- pgnet
auth:
build: ./backend-auth
tty: true
restart: unless-stopped
volumes:
- ${PWD}/key.pub:/key.pub
environment:
- LISTEN=0.0.0.0:10205
- SECRET=secret
ports:
- "10205:10205" # Remove this for production
networks:
- authnet
pictures:
build: ./backend-pictures
tty: true
restart: unless-stopped
depends_on:
- minio
environment:
- LISTEN=:80
- MINIO_ENDPOINT=minio:9000
- MINIO_ID=MINIO_ID
- MINIO_KEY=MINIO_KEY
- MINIO_BUCKET_NAME=beep
- MINIO_LOCATION=us-east-1
networks:
- traefiknet
- minionet
# Permissions
permissions:
build: ./backend-permissions
tty: true
restart: unless-stopped
depends_on:
- redis
- pg
environment:
- LISTEN=:80
- POSTGRES=postgresql://root@pg:5432/core?sslmode=disable
- REDIS=redis:6379
networks:
- pgnet
- redisnet
- permissionsnet
# Pipeline
webrtc:
build: ./backend-webrtc
tty: true
restart: unless-stopped
depends_on:
- nats
environment:
- LISTEN=:80
- NATS=nats://nats:4222
- PERMISSIONS_HOST=http://permissions
networks:
- traefiknet
- natsnet
- permissionsnet
store:
build: ./backend-store
tty: true
restart: unless-stopped
depends_on:
- nats
environment:
- NATS=nats://nats:4222
- DBPATH=/tmp/badger
- LISTEN=:80
- PERMISSIONS_HOST=http://permissions
networks:
- natsnet
- permissionsnet
transcription:
build: ./backend-transcription
tty: true
restart: unless-stopped
depends_on:
- nats
environment:
- NATS=nats://nats:4222
- API_KEY=AIzaSyDxSXDefzw9gXCQaVzOCYlRn_vcC9Da9Q0
networks:
- natsnet
networks:
authnet:
pgnet:
natsnet:
redisnet:
traefiknet:
minionet:
permissionsnet: