services:
  mongo:
    image: mongo
    environment:
      # Change with your database username
      MONGO_INITDB_ROOT_USERNAME: litlyx
      # Change with your database password
      MONGO_INITDB_ROOT_PASSWORD: litlyx
    # Uncomment to expose database
    # ports:
    #   - 27017:27017
    volumes:
      - mongo-data:/data/db

  cache:
    image: redis:alpine
    restart: always
    # Uncomment to expose redis
    # ports:
    #   - "6379:6379"
    # Change with "--requirepass YOUR_REDIS_PASSWORD"
    command: redis-server --save 20 1 --loglevel warning --requirepass litlyx

  producer:
    image: litlyx-producer
    restart: always
    ports:
      - "3099:3099"
    environment:
      PORT: "3099"
      REDIS_URL: "redis://cache"
      REDIS_USERNAME: "default"
      # Change with your redis password
      REDIS_PASSWORD: "litlyx"
      STREAM_NAME: "LITLYX"
    build:
      dockerfile: ./producer/Dockerfile

  consumer:
    image: litlyx-consumer
    restart: always
    environment:
      # Optional - Used to send welcome and quota emails
      # EMAIL_SERVICE: "Brevo"      
      # BREVO_API_KEY: ""
      # Change "litlyx:litlyx" with "mongodb://YOUR_MONGO_USERNAME:YOUR_MONGO_PASSWORD"
      MONGO_CONNECTION_STRING: "mongodb://litlyx:litlyx@mongo:27017/SimpleMetrics?readPreference=primaryPreferred&authSource=admin"
      REDIS_URL: "redis://cache"
      REDIS_USERNAME: "default"
       # Change with your redis password
      REDIS_PASSWORD: "litlyx"
      STREAM_NAME: "LITLYX"
      GROUP_NAME: "DATABASE"
    build:
      dockerfile: ./consumer/Dockerfile 

  dashboard:
    image: litlyx-dashboard
    restart: always
    ports:
      - "3000:3000"
    environment:
      NUXT_PORT: "3000"
      # Change "litlyx:litlyx" with "mongodb://YOUR_MONGO_USERNAME:YOUR_MONGO_PASSWORD"
      NUXT_MONGO_CONNECTION_STRING: 'mongodb://litlyx:litlyx@mongo:27017/SimpleMetrics?readPreference=primaryPreferred&authSource=admin'
      NUXT_REDIS_URL: "redis://cache"
      NUXT_REDIS_USERNAME: "default"
      # Change with your redis password
      NUXT_REDIS_PASSWORD: "litlyx"

      # Optional - Used for Lit, the AI analyst
      # NUXT_AI_ORG: 'OPEN_AI_ORGANIZATION'
      # NUXT_AI_PROJECT: 'OPEN_AI_PROJECT'
      # NUXT_AI_KEY: 'OPEN_AI_KEY'

      # Optional - Used to send welcome and quota emails
      # NUXT_EMAIL_SERVICE: "Brevo"      
      # NUXT_BREVO_API_KEY: ""

      # Change with your jwt secret
      NUXT_AUTH_JWT_SECRET: "litlyx_jwt_secret"

      # Optional - Used to register / login via google
      # NUXT_GOOGLE_AUTH_CLIENT_ID: ""
      # NUXT_GOOGLE_AUTH_CLIENT_SECRET: ""

      # NO_AUTH or GOOGLE
      NUXT_PUBLIC_AUTH_MODE: 'NO_AUTH'

      # Default user created in NO_AUTH mode
      NUXT_NOAUTH_USER_EMAIL: 'default@user.com'
      NUXT_NOAUTH_USER_NAME: "defaultuser"

      # Optional - Used for tests
      # NUXT_STRIPE_SECRET_TEST: ""
      # NUXT_STRIPE_WH_SECRET_TEST: ""

      # Optional - Stripe secret - Used to change plans of the projects
      # NUXT_STRIPE_SECRET: ""
      # NUXT_STRIPE_WH_SECRET: ""

    build:
      dockerfile: ./dashboard/Dockerfile 
      #args:
        # Optional - Used to register / login via google
        # GOOGLE_AUTH_CLIENT_ID: ""

volumes:
  mongo-data:
