This repository has been archived on 2022-10-07. You can view files and clone it, but cannot push or open issues or pull requests.
skynet-webportal/docker-compose.yml

311 lines
8.0 KiB
YAML
Raw Normal View History

version: "3.7"
2020-11-03 14:43:55 +00:00
x-logging: &default-logging
driver: json-file
options:
max-size: "10m"
max-file: "3"
networks:
shared:
2020-09-08 14:30:54 +00:00
ipam:
driver: default
config:
- subnet: 10.10.10.0/24
2020-07-30 12:23:49 +00:00
volumes:
webapp:
services:
sia:
2020-07-30 10:23:24 +00:00
build:
context: ./docker/sia
dockerfile: Dockerfile
args:
branch: v1.5.4
container_name: sia
2020-07-30 10:00:58 +00:00
restart: unless-stopped
logging: *default-logging
environment:
- SIA_MODULES=gctwr
env_file:
- .env
volumes:
2020-07-30 21:21:00 +00:00
- ./docker/data/sia:/sia-data
networks:
2020-09-08 14:30:54 +00:00
shared:
ipv4_address: 10.10.10.10
expose:
- 9980
caddy:
build:
2020-07-27 13:40:26 +00:00
context: ./docker/caddy
dockerfile: Dockerfile
container_name: caddy
2020-07-30 10:00:58 +00:00
restart: unless-stopped
logging: *default-logging
env_file:
- .env
volumes:
- ./docker/data/caddy/data:/data
- ./docker/data/caddy/config:/config
- ./docker/caddy/Caddyfile:/etc/caddy/Caddyfile
networks:
2020-09-08 14:30:54 +00:00
shared:
ipv4_address: 10.10.10.20
ports:
- "80:80"
- "443:443"
depends_on:
- nginx
nginx:
build:
context: ./docker/nginx
dockerfile: Dockerfile
container_name: nginx
2020-07-30 10:00:58 +00:00
restart: unless-stopped
logging: *default-logging
2020-07-27 13:40:26 +00:00
env_file:
- .env
volumes:
2020-07-30 12:57:34 +00:00
- ./docker/nginx/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro
- ./docker/nginx/conf.d:/etc/nginx/conf.d:ro
- ./docker/data/nginx/cache:/data/nginx/cache
- ./docker/data/nginx/logs:/usr/local/openresty/nginx/logs
- ./docker/data/nginx/skynet:/data/nginx/skynet:ro
- ./docker/data/sia/apipassword:/data/sia/apipassword:ro
2020-07-30 12:23:49 +00:00
- webapp:/var/www/webportal:ro
networks:
2020-09-08 14:30:54 +00:00
shared:
ipv4_address: 10.10.10.30
expose:
- 80
depends_on:
- sia
- health-check
- handshake-api
2020-07-30 12:23:49 +00:00
webapp:
build:
context: ./packages/webapp
dockerfile: Dockerfile
container_name: webapp
restart: unless-stopped
logging: *default-logging
2020-07-30 12:23:49 +00:00
tty: true
volumes:
- webapp:/usr/app/public
2020-07-27 09:30:55 +00:00
handshake:
build:
context: ./docker/handshake
dockerfile: Dockerfile
container_name: handshake
2020-07-30 10:00:58 +00:00
restart: unless-stopped
logging: *default-logging
2020-07-27 09:30:55 +00:00
environment:
2020-07-30 10:00:58 +00:00
- HSD_LOG_CONSOLE=false
2020-07-27 09:30:55 +00:00
- HSD_HTTP_HOST=0.0.0.0
- HSD_NETWORK=main
- HSD_PORT=12037
env_file:
- .env
volumes:
- ./docker/data/handshake/.hsd:/root/.hsd
networks:
2020-09-08 14:30:54 +00:00
shared:
ipv4_address: 10.10.10.40
2020-07-27 09:30:55 +00:00
expose:
- 12037
handshake-api:
build:
2020-07-30 12:23:49 +00:00
context: ./packages/handshake-api
2020-07-30 10:56:18 +00:00
dockerfile: Dockerfile
2020-07-27 09:30:55 +00:00
container_name: handshake-api
2020-07-30 10:00:58 +00:00
restart: unless-stopped
logging: *default-logging
2020-07-27 09:30:55 +00:00
environment:
2020-08-01 15:04:23 +00:00
- HOSTNAME=0.0.0.0
2020-07-27 09:30:55 +00:00
- HSD_HOST=handshake
- HSD_NETWORK=main
- HSD_PORT=12037
env_file:
- .env
2020-07-30 10:00:58 +00:00
networks:
2020-09-08 14:30:54 +00:00
shared:
ipv4_address: 10.10.10.50
2020-07-27 09:30:55 +00:00
expose:
- 3100
depends_on:
- handshake
health-check:
build:
2020-07-30 12:23:49 +00:00
context: ./packages/health-check
2020-07-30 10:56:18 +00:00
dockerfile: Dockerfile
container_name: health-check
2020-07-30 10:00:58 +00:00
restart: unless-stopped
logging: *default-logging
volumes:
- ./docker/data/health-check/state:/usr/app/state
networks:
2020-09-08 14:30:54 +00:00
shared:
ipv4_address: 10.10.10.60
environment:
2020-08-01 15:04:23 +00:00
- HOSTNAME=0.0.0.0
2020-07-27 13:40:26 +00:00
- PORTAL_URL=nginx
expose:
- 3100
depends_on:
- handshake
- handshake-api
2020-10-30 18:00:58 +00:00
2020-12-10 17:52:50 +00:00
accounts:
build:
2020-12-11 09:42:41 +00:00
context: ./docker/accounts
2020-12-11 14:06:57 +00:00
dockerfile: Dockerfile
2020-12-10 17:52:50 +00:00
container_name: accounts
restart: unless-stopped
logging: *default-logging
env_file:
- .env
2020-12-10 17:52:50 +00:00
environment:
2020-12-11 09:42:41 +00:00
- SKYNET_DB_HOST=mongo
- SKYNET_DB_PORT=27017
2020-12-10 17:52:50 +00:00
- SKYNET_DB_USER=${SKYNET_DB_USER}
- SKYNET_DB_PASS=${SKYNET_DB_PASS}
2021-01-08 11:04:15 +00:00
- COOKIE_DOMAIN=${COOKIE_DOMAIN}
- COOKIE_HASH_KEY=${COOKIE_HASH_KEY}
- COOKIE_ENC_KEY=${COOKIE_ENC_KEY}
2020-12-10 17:52:50 +00:00
expose:
- 3000
networks:
shared:
2020-12-10 17:54:18 +00:00
ipv4_address: 10.10.10.70
2020-12-10 17:52:50 +00:00
depends_on:
- mongo
- oathkeeper
2020-10-30 18:00:58 +00:00
mongo:
image: mongo:4.4.1
command: --keyFile=/data/mgkey --replSet=skynet
container_name: mongo
restart: unless-stopped
logging: *default-logging
volumes:
- ./docker/data/mongo/db:/data/db
- ./docker/data/mongo/mgkey:/data/mgkey:rw
networks:
shared:
2020-12-10 17:52:50 +00:00
ipv4_address: 10.10.10.71
2020-10-30 18:00:58 +00:00
ports:
- "27017:27017"
2020-12-04 16:09:47 +00:00
kratos-migrate:
image: oryd/kratos:v0.5.4-alpha.1
container_name: kratos-migrate
restart: on-failure
2020-12-04 16:09:47 +00:00
logging: *default-logging
environment:
2021-01-08 16:40:25 +00:00
- DSN=cockroach://root@cockroach:26257/defaultdb?max_conns=20&max_idle_conns=4&sslmode=verify-full&sslcert=/certs/node.crt&sslkey=/certs/node.key&sslrootcert=/certs/ca.crt
2020-12-09 14:58:31 +00:00
- SQA_OPT_OUT=true
2020-12-04 16:09:47 +00:00
volumes:
- ./docker/kratos/config:/etc/config/kratos
2020-12-14 16:08:12 +00:00
- ./docker/data/cockroach/sqlite:/var/lib/sqlite
2021-01-08 16:40:25 +00:00
- ./docker/kratos/cr_certs:/certs
2020-12-04 16:09:47 +00:00
command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes
networks:
shared:
ipv4_address: 10.10.10.80
kratos:
image: oryd/kratos:v0.5.4-alpha.1
container_name: kratos
restart: unless-stopped
logging: *default-logging
ports:
- "4433:4433" # public
- "4434:4434" # admin
2020-12-04 16:09:47 +00:00
expose:
- 4433 # public
- 4434 # admin
environment:
2021-01-08 16:40:25 +00:00
- DSN=cockroach://root@cockroach:26257/defaultdb?max_conns=20&max_idle_conns=4&sslmode=verify-full&sslcert=/certs/node.crt&sslkey=/certs/node.key&sslrootcert=/certs/ca.crt
2020-12-04 16:09:47 +00:00
- LOG_LEVEL=trace
2020-12-16 12:08:51 +00:00
- SERVE_PUBLIC_BASE_URL=/.ory/kratos/public/
2020-12-09 14:58:31 +00:00
- SQA_OPT_OUT=true
2020-12-04 16:09:47 +00:00
command: serve -c /etc/config/kratos/kratos.yml
volumes:
- ./docker/kratos/config:/etc/config/kratos
2020-12-14 16:08:12 +00:00
- ./docker/data/cockroach/sqlite:/var/lib/sqlite
2021-01-08 16:40:25 +00:00
- ./docker/kratos/cr_certs:/certs
2020-12-04 16:09:47 +00:00
networks:
shared:
ipv4_address: 10.10.10.81
depends_on:
- kratos-migrate
kratos-selfservice-ui-node:
image: oryd/kratos-selfservice-ui-node:v0.5.0-alpha.1
container_name: kratos-selfservice-ui-node
restart: on-failure
2020-12-04 16:09:47 +00:00
logging: *default-logging
2020-12-14 11:49:35 +00:00
volumes:
- ./docker/kratos-selfservice-ui-node/main.hbs:/usr/src/app/views/layouts/main.hbs:ro
2020-12-14 14:59:30 +00:00
- ./docker/kratos-selfservice-ui-node/login.hbs:/usr/src/app/views/login.hbs:ro
2020-12-17 11:59:31 +00:00
- ./docker/kratos-selfservice-ui-node/dashboard.hbs:/usr/src/app/views/dashboard.hbs:ro
2020-12-14 14:59:30 +00:00
- ./docker/kratos-selfservice-ui-node/registration.hbs:/usr/src/app/views/registration.hbs:ro
2020-12-14 14:53:39 +00:00
- ./docker/kratos-selfservice-ui-node/icon_logo.hbs:/usr/src/app/views/partials/icon_logo.hbs:ro
2020-12-14 11:49:35 +00:00
- ./docker/kratos-selfservice-ui-node/branding.css:/usr/src/app/public/branding.css:ro
2020-12-14 14:53:39 +00:00
- ./docker/kratos-selfservice-ui-node/favico.png:/usr/src/app/public/favico.png:ro
2020-12-04 16:09:47 +00:00
environment:
2020-12-09 12:50:17 +00:00
- PORT=4435
- SECURITY_MODE=jwks
2020-12-14 16:10:27 +00:00
- PROJECT_NAME=Skynet
2020-12-16 12:08:51 +00:00
- BASE_URL=/
- KRATOS_BROWSER_URL=/.ory/kratos/public
2020-12-09 12:50:17 +00:00
- JWKS_URL=http://oathkeeper:4456/.well-known/jwks.json
2020-12-04 16:09:47 +00:00
- KRATOS_PUBLIC_URL=http://kratos:4433/
- KRATOS_ADMIN_URL=http://kratos:4434/
2020-12-09 14:58:31 +00:00
- SQA_OPT_OUT=true
2020-12-04 16:09:47 +00:00
networks:
shared:
ipv4_address: 10.10.10.82
2020-12-09 12:50:17 +00:00
oathkeeper:
image: oryd/oathkeeper:v0.38
2020-12-15 16:24:41 +00:00
container_name: oathkeeper
2020-12-09 12:50:17 +00:00
depends_on:
- kratos
expose:
- 4455
- 4456
2020-12-15 16:24:41 +00:00
command: serve proxy -c "/etc/config/oathkeeper/oathkeeper.yml"
2020-12-09 12:50:17 +00:00
environment:
- LOG_LEVEL=debug
volumes:
- ./docker/kratos/oathkeeper:/etc/config/oathkeeper
restart: on-failure
networks:
shared:
ipv4_address: 10.10.10.83
2020-12-14 16:08:12 +00:00
cockroach:
image: cockroachdb/cockroach:v20.2.3
2020-12-14 16:08:12 +00:00
container_name: cockroach
env_file:
- .env
2021-01-08 16:40:25 +00:00
command: start --advertise-addr=${CR_IP} --join=${CR_CLUSTER_NODES} --certs-dir=/certs --listen-addr=0.0.0.0:26257 --http-addr=0.0.0.0:8080
2020-12-08 15:50:27 +00:00
volumes:
2020-12-14 16:08:12 +00:00
- ./docker/data/cockroach/sqlite:/cockroach/cockroach-data
2021-01-08 16:40:25 +00:00
- ./docker/cockroach/certs:/certs
ports:
2021-01-20 13:58:44 +00:00
- "4080:8080"
- "26257:26257"
2020-12-04 16:09:47 +00:00
networks:
shared:
2020-12-10 17:52:50 +00:00
ipv4_address: 10.10.10.84