Shared Config

.env & .env.example

Rename .env.example to .env and update the ??? values.

# USER CONFIG
# ------------------------------------------------------------------------------

# Required.
DISCORD_TOKEN=???

# (Optional) OpenAI API key for AI middleware.
OPENAI_KEY=???

# SYSTEM CONFIG
# ------------------------------------------------------------------------------

# REDIS
REDIS_HOST=redis
REDIS_PORT=6379

docker-compose.yml

services:

  redis:
    image: redis/redis-stack-server
    container_name: pbot-redis
    ports:
    - '6379:6379'
    # platform: linux/arm64
    volumes:
     - redis_data:/data
    networks:
    - backend

  redis-insight:
    image: redis/redisinsight:latest
    container_name: pbot-redis-insight
    ports:
    - '5540:5540'
    # platform: linux/arm64
    depends_on:
    - redis
    networks:
    - frontend
    - backend
    volumes:
     - redis_insight:/data

  bot:
    container_name: pbot-bot
    build:
      context: ../
      dockerfile: services/bot/Dockerfile
    volumes:
    - ../services/bot/src:/src
    depends_on:
    - redis
    networks:
    - backend
    environment:
      - OPENAI_KEY=${OPENAI_KEY}
      - REDIS_HOST=${REDIS_HOST}
      - REDIS_PORT=${REDIS_PORT}

  transceiver:
    container_name: pbot-transceiver
    build:
      context: ../
      dockerfile: services/transceiver/Dockerfile
    volumes:
    - ../services/transceiver/src:/src
    depends_on:
    - redis
    networks:
    - backend
    environment:
      - DISCORD_TOKEN=${DISCORD_TOKEN}
      - REDIS_HOST=${REDIS_HOST}
      - REDIS_PORT=${REDIS_PORT}

      - REDIS_KEY_RESPONSES=${REDIS_KEY_RESPONSES}
      - REDIS_KEY_RESPONSE_PREFIX=${REDIS_KEY_RESPONSE_PREFIX}
      - TRANSCEIVER_LOG_FILENAME=${TRANSCEIVER_LOG_FILENAME}
      - TRANSCEIVER_RESPONSE_DELAY=${TRANSCEIVER_RESPONSE_DELAY}

volumes:
  redis_data:
  redis_insight:

networks:
  backend:
  frontend: