version: '3.7'

services:
  server:
    secrets:
      - NODE_ENV
      - APP_PORT
      - APP_PROTOCOL
      - APP_HOST
      - BCRYPT_SALT
      - JWT_SECRET
      - SMTP_HOST
      - SMTP_PORT
      - SMTP_USER
      - SMTP_PASS
      - REDIS_HOST
      - REDIS_PORT
      - DB_HOST
      - DB_USER
      - DB_PASS
      - DB_NAME
      - DB_PORT
      - DATABASE_URL
    environment:
      - NODE_ENV_FILE=/run/secrets/NODE_ENV
      - APP_PORT_FILE=/run/secrets/APP_PORT
      - APP_PROTOCOL_FILE=/run/secrets/APP_PROTOCOL
      - APP_HOST_FILE=/run/secrets/APP_HOST
      - BCRYPT_SALT_FILE=/run/secrets/BCRYPT_SALT
      - JWT_SECRET_FILE=/run/secrets/JWT_SECRET
      - SMTP_HOST_FILE=/run/secrets/SMTP_HOST
      - SMTP_PORT_FILE=/run/secrets/SMTP_PORT
      - SMTP_USER_FILE=/run/secrets/SMTP_USER
      - SMTP_PASS_FILE=/run/secrets/SMTP_PASS
      - REDIS_HOST_FILE=/run/secrets/REDIS_HOST
      - REDIS_PORT_FILE=/run/secrets/REDIS_PORT
      - DB_HOST_FILE=/run/secrets/DB_HOST
      - DB_USER_FILE=/run/secrets/DB_USER
      - DB_PASS_FILE=/run/secrets/DB_PASS
      - DB_NAME_FILE=/run/secrets/DB_NAME
      - DB_PORT_FILE=/run/secrets/DB_PORT
      - DATABASE_URL_FILE=/run/secrets/DATABASE_URL

  mysqldb:
    secrets:
      - DB_USER
      - DB_PASS
      - DB_NAME
    environment:
      - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/DB_PASS
      - MYSQL_DATABASE_FILE=/run/secrets/DB_NAME
      - MYSQL_USER_FILE=/run/secrets/DB_USER
      - MYSQL_PASSWORD_FILE=/run/secrets/DB_PASS

secrets:
  NODE_ENV:
    file: ./secrets/NODE_ENV
  APP_PORT:
    file: ./secrets/APP_PORT
  APP_PROTOCOL:
    file: ./secrets/APP_PROTOCOL
  APP_HOST:
    file: ./secrets/APP_HOST
  BCRYPT_SALT:
    file: ./secrets/BCRYPT_SALT
  JWT_SECRET:
    file: ./secrets/JWT_SECRET
  SMTP_HOST:
    file: ./secrets/SMTP_HOST
  SMTP_PORT:
    file: ./secrets/SMTP_PORT
  SMTP_USER:
    file: ./secrets/SMTP_USER
  SMTP_PASS:
    file: ./secrets/SMTP_PASS
  REDIS_HOST:
    file: ./secrets/REDIS_HOST
  REDIS_PORT:
    file: ./secrets/REDIS_PORT
  DB_HOST:
    file: ./secrets/DB_HOST
  DB_USER:
    file: ./secrets/DB_USER
  DB_PASS:
    file: ./secrets/DB_PASS
  DB_NAME:
    file: ./secrets/DB_NAME
  DB_PORT:
    file: ./secrets/DB_PORT
  DATABASE_URL:
    file: ./secrets/DATABASE_URL
