# Comments are provided throughout this file to help you get started. # If you need more help, visit the Docker Compose reference guide at # https://docs.docker.com/go/compose-spec-reference/ # Here the instructions define your application as a service called "server". # This service is built from the Dockerfile in the current directory. # You can add other services your application may depend on here, such as a # database or a cache. For examples, see the Awesome Compose repository: # https://github.com/docker/awesome-compose x-common-variables: &common-variables DB_HOST: db DB_USER: luke DB_PASS: 'Skywalker!' DB_NAME: eveai DB_PORT: '5432' FLASK_ENV: development FLASK_DEBUG: true SECRET_KEY: '97867c1491bea5ee6a8e8436eb11bf2ba6a69ff53ab1b17ecba450d0f2e572e1' SECURITY_PASSWORD_SALT: '228614859439123264035565568761433607235' MAIL_USERNAME: eveai_super@flow-it.net MAIL_PASSWORD: '$$6xsWGbNtx$$CFMQZqc*' MAIL_SERVER: mail.flow-it.net MAIL_PORT: 465 OPENAI_API_KEY: 'sk-proj-8R0jWzwjL7PeoPyMhJTZT3BlbkFJLb6HfRB2Hr9cEVFWEhU7' GROQ_API_KEY: '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' ANTHROPIC_API_KEY: 'sk-ant-api03-c2TmkzbReeGhXBO5JxNH6BJNylRDonc9GmZd0eRbrvyekec2' PORTKEY_API_KEY: 'T2Dt4QTpgCvWxa1OftYCJtj7NcDZ' JWT_SECRET_KEY: 'bsdMkmQ8ObfMD52yAFg4trrvjgjMhuIqg2fjDpD/JqvgY0ccCcmlsEnVFmR79WPiLKEA3i8a5zmejwLZKl4v9Q==' API_ENCRYPTION_KEY: 'xfF5369IsredSrlrYZqkM9ZNrfUASYYS6TCcAR9UKj4=' MINIO_ENDPOINT: minio:9000 MINIO_ACCESS_KEY: minioadmin MINIO_SECRET_KEY: minioadmin NGINX_SERVER_NAME: 'localhost http://macstudio.ask-eve-ai-local.com/' networks: eveai-network: driver: bridge services: nginx: image: josakola/nginx:latest build: context: .. dockerfile: ./docker/nginx/Dockerfile platforms: - linux/amd64 - linux/arm64 ports: - 80:80 - 8080:8080 environment: <<: *common-variables volumes: - ../nginx:/etc/nginx - ../nginx/sites-enabled:/etc/nginx/sites-enabled - ../nginx/static:/etc/nginx/static - ../nginx/public:/etc/nginx/public - ./logs/nginx:/var/log/nginx depends_on: - eveai_app - eveai_chat networks: - eveai-network eveai_app: image: josakola/eveai_app:latest build: context: .. dockerfile: ./docker/eveai_app/Dockerfile platforms: - linux/amd64 - linux/arm64 ports: - 5001:5001 environment: <<: *common-variables COMPONENT_NAME: eveai_app volumes: - ../eveai_app:/app/eveai_app - ../common:/app/common - ../config:/app/config - ../migrations:/app/migrations - ../scripts:/app/scripts - ../patched_packages:/app/patched_packages - eveai_logs:/app/logs depends_on: db: condition: service_healthy redis: condition: service_healthy minio: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5001/health"] interval: 10s timeout: 5s retries: 5 # entrypoint: ["scripts/entrypoint.sh"] # command: ["scripts/start_eveai_app.sh"] networks: - eveai-network eveai_workers: image: josakola/eveai_workers:latest build: context: .. dockerfile: ./docker/eveai_workers/Dockerfile platforms: - linux/amd64 - linux/arm64 # ports: # - 5001:5001 environment: <<: *common-variables COMPONENT_NAME: eveai_workers volumes: - ../eveai_workers:/app/eveai_workers - ../common:/app/common - ../config:/app/config - ../scripts:/app/scripts - ../patched_packages:/app/patched_packages - eveai_logs:/app/logs depends_on: db: condition: service_healthy redis: condition: service_healthy minio: condition: service_healthy # healthcheck: # test: [ "CMD", "curl", "-f", "http://localhost:5001/health" ] # interval: 10s # timeout: 5s # retries: 5 # entrypoint: [ "sh", "-c", "scripts/entrypoint.sh" ] # command: [ "sh", "-c", "scripts/start_eveai_workers.sh" ] networks: - eveai-network eveai_chat: image: josakola/eveai_chat:latest build: context: .. dockerfile: ./docker/eveai_chat/Dockerfile platforms: - linux/amd64 - linux/arm64 ports: - 5002:5002 environment: <<: *common-variables COMPONENT_NAME: eveai_chat volumes: - ../eveai_chat:/app/eveai_chat - ../common:/app/common - ../config:/app/config - ../scripts:/app/scripts - ../patched_packages:/app/patched_packages - eveai_logs:/app/logs depends_on: db: condition: service_healthy redis: condition: service_healthy healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:5002/health" ] # Adjust based on your health endpoint interval: 10s timeout: 5s retries: 5 # entrypoint: [ "sh", "-c", "scripts/entrypoint.sh" ] # command: ["sh", "-c", "scripts/start_eveai_chat.sh"] networks: - eveai-network eveai_chat_workers: image: josakola/eveai_chat_workers:latest build: context: .. dockerfile: ./docker/eveai_chat_workers/Dockerfile platforms: - linux/amd64 - linux/arm64 # ports: # - 5001:5001 environment: <<: *common-variables COMPONENT_NAME: eveai_chat_workers volumes: - ../eveai_chat_workers:/app/eveai_chat_workers - ../common:/app/common - ../config:/app/config - ../scripts:/app/scripts - ../patched_packages:/app/patched_packages - eveai_logs:/app/logs depends_on: db: condition: service_healthy redis: condition: service_healthy # healthcheck: # test: [ "CMD", "curl", "-f", "http://localhost:5001/health" ] # interval: 10s # timeout: 5s # retries: 5 # entrypoint: [ "sh", "-c", "scripts/entrypoint.sh" ] # command: [ "sh", "-c", "scripts/start_eveai_chat_workers.sh" ] networks: - eveai-network db: hostname: db image: ankane/pgvector ports: - 5432:5432 restart: always environment: - POSTGRES_DB=eveai - POSTGRES_USER=luke - POSTGRES_PASSWORD=Skywalker! volumes: - ./db/postgresql:/var/lib/postgresql/data - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql healthcheck: test: [ "CMD-SHELL", "pg_isready -d eveai -U luke" ] interval: 10s timeout: 5s retries: 5 networks: - eveai-network redis: image: redis:7.2.5 restart: always expose: - 6379 volumes: - ./db/redis:/data healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 10s timeout: 5s retries: 5 networks: - eveai-network minio: image: minio/minio ports: - "9000:9000" - "9001:9001" expose: - 9000 volumes: - ./minio/data:/data - ./minio/config:/root/.minio environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin} command: server /data --console-address ":9001" healthcheck: test: [ "CMD", "mc", "ready", "local" ] interval: 30s timeout: 20s retries: 3 start_period: 30s networks: - eveai-network volumes: minio_data: eveai_logs: # db-data: # redis-data: # tenant-files: #secrets: # db-password: # file: ./db/password.txt