HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/agentcloud/docker-compose.yml
name: agentcloud

services:

  docker_rabbitmq:
    image: rabbitmq:3.13.1-management
    environment:
      RABBITMQ_DEFAULT_USER: guest
      RABBITMQ_DEFAULT_PASS: guest
    ports:
      - "127.0.0.1:5672:5672"
      - "127.0.0.1:15672:15672"

  docker_mongo:
    restart: always
    image: mongo:latest
    ports:
      - "127.0.0.1:27017:27017"
    volumes:
      - mongodb_data_container:/data/db

  docker_redis:
    restart: always
    image: redis:latest
    ports:
      - "127.0.0.1:6379:6379"
    volumes:
      - redis_data:/data

  webapp_next:
    restart: always
    build:
      context: webapp/
      args:
        - GOOGLE_KEYPATH=keyfile.json
        - SHORT_COMMIT_HASH=${SHORT_COMMIT_HASH}
        # - NEXT_PUBLIC_ENABLE_GOOGLE_OAUTH=
        # - NEXT_PUBLIC_ENABLE_GITHUB_OAUTH=
        - NEXT_PUBLIC_GCS_BUCKET_NAME=${GCS_BUCKET_NAME}
        - NEXT_PUBLIC_HUBSPOT_MEETING_LINK=https://meetings.hubspot.com/andrew520
        - POSTHOG_KEY=
        - GOOGLE_APPLICATION_CREDENTIALS=/app/keyfile.json
    ports:
      - "0.0.0.0:3500:3000"
    depends_on:
      - docker_rabbitmq
      - docker_mongo
      - docker_redis
    environment:
      - AMAZON_ACCESS_KEY=AKIASTOGE57REXWV5NSA
      - AMAZON_SECRET_ACCESS_KEY=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
      - GOOGLE_APPLICATION_CREDENTIALS=/app/keyfile.json
      - RABBITMQ_HOST=docker_rabbitmq
      - RABBITMQ_PORT=5672
      - RABBITMQ_STREAM=streaming
      - RABBITMQ_EXCHANGE=agentcloud
      - RABBITMQ_ROUTING_KEY=key
      - RABBITMQ_USERNAME=guest
      - RABBITMQ_PASSWORD=guest
      - EXPRESS_HOST=0.0.0.0
      - EXPRESS_PORT=3000
      - NODE_ENV=development
      - DB_URL=mongodb://docker_mongo:27017/test
      - REDIS_HOST=docker_redis
      - REDIS_PASS=
      - JWT_SECRET=changeme
      - COOKIE_SECRET=changeme
      - AGENT_BACKEND_SOCKET_TOKEN=changeme
      - PROJECT_ID=${PROJECT_ID}
      - SMTP_HOST=houston.panomity.com
      - SMTP_PORT=587
      - SMTP_SECURE=false # true for port 465, false for other ports
      - SMTP_USER=noreply@teamki.de
      - SMTP_PASS=nrtki4482  
      - FROM_EMAIL_ADDRESS=noreply@teamki.de
      - URL_APP=https://teamki.de
      - DEBUG=webapp:*
      - STRIPE_WEBHOOK_SECRET=
      - STRIPE_ACCOUNT_SECRET=
      - NEXT_PUBLIC_GCS_BUCKET_NAME=${GCS_BUCKET_NAME}
      - OAUTH_GITHUB_CLIENT_ID=
      - OAUTH_GITHUB_CLIENT_SECRET=
      - OAUTH_GOOGLE_CLIENT_ID=
      - OAUTH_GOOGLE_CLIENT_SECRET=
      - VECTOR_APP_URL=http://vector_db_proxy:9001
      - AIRBYTE_WEB_URL=http://airbyte-proxy:8000
      - AIRBYTE_API_URL=http://airbyte-proxy:8006
      - AIRBYTE_ADMIN_WORKSPACE_ID=${AIRBYTE_ADMIN_WORKSPACE_ID}
      - AIRBYTE_ADMIN_DESTINATION_ID=${AIRBYTE_ADMIN_DESTINATION_ID}
      - AIRBYTE_USERNAME=airbyte
      - AIRBYTE_PASSWORD=password
      - GCS_BUCKET_NAME=${GCS_BUCKET_NAME}
      - GCS_BUCKET_LOCATION=${GCS_BUCKET_LOCATION}
      - STRIPE_FREE_PLAN_PRICE_ID=price_1P0zlRDxQ9GZKzvoYUAzWMSv
      - STRIPE_PRO_PLAN_PRICE_ID=price_1OAMHSDxQ9GZKzvoBbDryhiZ
      - STRIPE_TEAMS_PLAN_PRICE_ID=price_1P0xEGDxQ9GZKzvoTDfMJK6f
      - STRIPE_ADDON_USERS_PRICE_ID=price_1PFnQmDxQ9GZKzvoS4cRlCtt
      - STRIPE_ADDON_STORAGE_PRICE_ID=price_1PGClWDxQ9GZKzvoiB8SNOrV      
      - STRIPE_FREE_PLAN_PRODUCT_ID=prod_Pqh9LfvzCal4Ux
      - STRIPE_PRO_PLAN_PRODUCT_ID=prod_OyItEyf2n0TZGj
      - STRIPE_TEAMS_PLAN_PRODUCT_ID=prod_PqeXHjZLXeuzyr
      - STRIPE_ADDON_USERS_PRODUCT_ID=prod_PqgU2ZCIJqDDRf
      - STRIPE_ADDON_STORAGE_PRODUCT_ID=prod_Q6Pao7IJyTNLYv
      - NEXT_PUBLIC_STORAGE_PROVIDER=local
      - NEXT_PUBLIC_SECRET_PROVIDER=local
      - UPLOADS_BASE_PATH=/tmp
    volumes:
      - datasource_files:/tmp

  agent_backend:
    restart: always
    build:
      context: agent-backend/
      args:
        - SHORT_COMMIT_HASH=${SHORT_COMMIT_HASH}
    ports:
      - '127.0.0.1:8080:8080'
    depends_on:
      - webapp_next
    image: agent_backend
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - LOCAL=True
      - MAX_THREADS=50
      - BASE_PATH=/app
      - SOCKET_URL=http://webapp_next:3000/
      - DB_URL=mongodb://docker_mongo:27017/test
      - REDIS_HOST=docker_redis
      - QDRANT_HOST=qdrant
      - MONGO_DB_NAME=test
      - MAX_RETRIES=10
      - AGENT_BACKEND_SOCKET_TOKEN=changeme

  vector_db_proxy:
    restart: always
    depends_on:
      - docker_rabbitmq
      - qdrant
    build:
      context: vector-db-proxy/
      args:
        - RELEASE=${RELEASE}
        - GOOGLE_KEYPATH=keyfile.json
        - SHORT_COMMIT_HASH=${SHORT_COMMIT_HASH}
    ports:
      - '127.0.0.1:9001:9001'
    image: vector_db_proxy
    environment:
      - HOST=0.0.0.0
      - PORT=9001
      - MONGO_URI=mongodb://docker_mongo:27017
      - RABBITMQ_HOST=docker_rabbitmq
      - RABBITMQ_PORT=5672
      - RABBITMQ_STREAM=streaming
      - RABBITMQ_EXCHANGE=agentcloud
      - RABBITMQ_ROUTING_KEY=key
      - RABBITMQ_USERNAME=guest
      - RABBITMQ_PASSWORD=guest
      - QDRANT_URI=http://qdrant:6334
      - REDIS_HOST=docker_redis
      - REDIS_PORT=6379
      - WEBAPP_HOST=webapp_next
      - THREAD_PERCENTAGE_UTILISATION=0.8
      - USE_GPU=false
      - LOGGING_LEVEL=debug

    volumes:
      - datasource_files:/tmp

  qdrant:
    ports:
      - '127.0.0.1:6333:6333'
      - '127.0.0.1:6334:6334'
    image: qdrant/qdrant
    environment:
      - QDRANT__LOG_LEVEL=DEBUG
    volumes:
      - qdrant_data:/qdrant_data

volumes:
  mongodb_data_container:
  redis_data:
  datasource_files:
  qdrant_data:

networks:
  default:
    external: true
    name: airbyte_airbyte_internal