version: '3.7'

services:
  noctbot:
    image: noctbot
    build:
      context: ./
      dockerfile: ./bot/Dockerfile
    restart: unless-stopped
    depends_on:
      - db
      - facedetect
    env_file: 
      - .env
      - db.env
    volumes: 
      - ./bot/stickers:/app/bot/stickers
    environment:
      NODE_ENV: production
      BOT_TOKEN: ${BOT_TOKEN}
      FORUM_PASS: ${FORUM_PASS}
      FORUM_API_KEY: ${FORUM_API_KEY}
      IGNORE_CHANGED_NEWS: ${IGNORE_CHANGED_NEWS}
      NPM_CONFIG_LOGLEVEL: info
      TYPEORM_USERNAME: ${DB_USERNAME}
      TYPEORM_PASSWORD: ${DB_PASSWORD}
      TYPEORM_DATABASE: ${DB_NAME}
      FACEDETECT_URL: facedetect

  facedetect:
    image: facedetect
    build:
      context: ./
      dockerfile: ./facedetect/Dockerfile
    restart: unless-stopped

  web:
    image: noctbot_web
    build:
      context: ./
      dockerfile: ./web/Dockerfile
    restart: unless-stopped
    depends_on:
      - db
    env_file:
      - .env
      - db.env
    environment:
      NODE_ENV: production
      TYPEORM_USERNAME: ${DB_USERNAME}
      TYPEORM_PASSWORD: ${DB_PASSWORD}
      TYPEORM_DATABASE: ${DB_NAME}
    ports:
      - 3020:3000

  db:
    image: postgres
    restart: unless-stopped
    env_file:
      - ./db.env
    environment: 
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
    volumes:
      - db-data:/var/lib/postgresql/data

  adminer:
    image: adminer
    restart: unless-stopped
    ports:
      - 3030:8080

volumes:
  db-data: