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: