services:
  maildev:
    build:
      context: .
      dockerfile: maildev.Dockerfile
    ports:
      - ${MAIL_CLIENT_PORT}:1080
      - ${MAIL_PORT}:1025

  mongo:
    image: mongo:7.0.6
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${DATABASE_USERNAME}
      MONGO_INITDB_ROOT_PASSWORD: ${DATABASE_PASSWORD}
    volumes:
      - boilerplate-mongo-db:/data/db
    ports:
      - ${DATABASE_PORT}:27017

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_BASICAUTH_USERNAME: ${DATABASE_USERNAME}
      ME_CONFIG_BASICAUTH_PASSWORD: ${DATABASE_PASSWORD}
      ME_CONFIG_MONGODB_URL: mongodb://${DATABASE_USERNAME}:${DATABASE_PASSWORD}@mongo:${DATABASE_PORT}/

  # Uncomment to use redis
  # redis:
  #   image: redis:7-alpine
  #   ports:
  #     - 6379:6379

  api:
    build:
      context: .
      dockerfile: document.Dockerfile
    ports:
      - ${APP_PORT}:${APP_PORT}

volumes:
  boilerplate-mongo-db:
