108 lines
3.2 KiB
YAML
108 lines
3.2 KiB
YAML
|
|
version: '3'
|
||
|
|
|
||
|
|
services:
|
||
|
|
|
||
|
|
traefik:
|
||
|
|
image: "traefik:v2.9"
|
||
|
|
container_name: "traefik"
|
||
|
|
restart: always
|
||
|
|
environment:
|
||
|
|
EMAIL: ${EMAIL}
|
||
|
|
command:
|
||
|
|
- "--log.level=ERROR"
|
||
|
|
- "--api.insecure=false"
|
||
|
|
- "--providers.docker=true"
|
||
|
|
- "--providers.docker.exposedbydefault=false"
|
||
|
|
- "--entrypoints.web.address=:80"
|
||
|
|
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
|
||
|
|
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
|
||
|
|
- "--entrypoints.websecure.address=:443"
|
||
|
|
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
||
|
|
- "--certificatesresolvers.myresolver.acme.email=${EMAIL}"
|
||
|
|
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||
|
|
ports:
|
||
|
|
- "443:443"
|
||
|
|
- "80:80"
|
||
|
|
volumes:
|
||
|
|
- "./letsencrypt:/letsencrypt"
|
||
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||
|
|
|
||
|
|
postgres:
|
||
|
|
image: groonga/pgroonga:3.1.6-alpine-15
|
||
|
|
container_name: postgres
|
||
|
|
restart: always
|
||
|
|
environment:
|
||
|
|
POSTGRES_USER: ${DB_USER}
|
||
|
|
POSTGRES_PASSWORD: ${DB_PASS}
|
||
|
|
volumes:
|
||
|
|
- postgres-data:/var/lib/postgresql/data
|
||
|
|
command: >
|
||
|
|
-c work_mem=4MB
|
||
|
|
shm_size: '128mb'
|
||
|
|
|
||
|
|
redis:
|
||
|
|
image: redis:alpine
|
||
|
|
container_name: redis
|
||
|
|
restart: always
|
||
|
|
|
||
|
|
nise-backend:
|
||
|
|
image: git.gengo.tech/gengotech/nise-backend:latest
|
||
|
|
container_name: nise-backend
|
||
|
|
environment:
|
||
|
|
SPRING_PROFILES_ACTIVE: postgres,discord,updater
|
||
|
|
# App configuration
|
||
|
|
OLD_SCORES_PAGE_SIZE: 5000
|
||
|
|
# Origin
|
||
|
|
ORIGIN: "https://nise.moe"
|
||
|
|
# Postgres
|
||
|
|
POSTGRES_HOST: ${DB_HOST}
|
||
|
|
POSTGRES_USER: ${DB_USER}
|
||
|
|
POSTGRES_PASS: ${DB_PASS}
|
||
|
|
POSTGRES_DB: ${DB_NAME}
|
||
|
|
# redis
|
||
|
|
REDIS_DB: 4
|
||
|
|
# Discord
|
||
|
|
WEBHOOK_URL: ${WARNINGS_WEBHOOK_URL}
|
||
|
|
SCORES_WEBHOOK_URL: ${SCORES_WEBHOOK_URL}
|
||
|
|
# osu!api
|
||
|
|
OSU_API_KEY: ${OSU_API_KEY}
|
||
|
|
OSU_CLIENT_ID: ${OSU_CLIENT_ID}
|
||
|
|
OSU_CLIENT_SECRET: ${OSU_CLIENT_SECRET}
|
||
|
|
# Internal API
|
||
|
|
CIRCLEGUARD_API_URL: http://nise-circleguard:5000
|
||
|
|
restart: always
|
||
|
|
labels:
|
||
|
|
- "traefik.enable=true"
|
||
|
|
- "traefik.http.routers.nise.rule=Host(`nise.moe`) && PathPrefix(`/api/`)"
|
||
|
|
- "traefik.http.routers.nise.middlewares=nise-stripprefix"
|
||
|
|
- "traefik.http.middlewares.nise-stripprefix.stripprefix.prefixes=/api/"
|
||
|
|
- "traefik.http.services.nise.loadbalancer.server.port=8080"
|
||
|
|
- "traefik.http.routers.nise.entrypoints=websecure"
|
||
|
|
- "traefik.http.routers.nise.tls.certresolver=myresolver"
|
||
|
|
depends_on:
|
||
|
|
- postgres
|
||
|
|
- redis
|
||
|
|
|
||
|
|
nise-circleguard:
|
||
|
|
image: git.gengo.tech/nuff/nise-circleguard:latest
|
||
|
|
container_name: nise-circleguard
|
||
|
|
environment:
|
||
|
|
OSU_API_KEY: ${OSU_API_KEY}
|
||
|
|
restart: always
|
||
|
|
volumes:
|
||
|
|
- ./nise-data:/app/dbs
|
||
|
|
|
||
|
|
nise-frontend:
|
||
|
|
image: git.gengo.tech/gengotech/nise-frontend:latest
|
||
|
|
container_name: nise-frontend
|
||
|
|
restart: always
|
||
|
|
labels:
|
||
|
|
- "traefik.enable=true"
|
||
|
|
- "traefik.http.routers.nise-frontend.rule=Host(`nise.moe`) && PathPrefix(`/`)"
|
||
|
|
- "traefik.http.services.nise-frontend.loadbalancer.server.port=80"
|
||
|
|
- "traefik.http.routers.nise-frontend.entrypoints=websecure"
|
||
|
|
- "traefik.http.routers.nise-frontend.tls.certresolver=myresolver"
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
postgres-data:
|