diff --git a/docker-compose.yml b/docker-compose.yml index 2dbc4eee98..74df42d9ca 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,183 +1,183 @@ services: - reverse-proxy: - image: traefik:v2.10 - command: --api.dashboard=true --api.insecure=true --providers.docker --entrypoints.web.address=:80 - ports: - - "80:80" - - "8080:8080" - volumes: - - /var/run/docker.sock:/var/run/docker.sock - networks: - - agenta-network - restart: always + reverse-proxy: + image: traefik:v2.10 + command: --api.dashboard=true --api.insecure=true --providers.docker --entrypoints.web.address=:80 + ports: + - "80:80" + - "8080:8080" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + networks: + - agenta-network + restart: always - backend: - build: ./agenta-backend - environment: - - POSTGRES_URI=postgresql+asyncpg://username:password@postgres:5432/agenta_oss - - REDIS_URL=redis://redis:6379/0 - - ENVIRONMENT=development - - DATABASE_MODE=v2 - - BARE_DOMAIN_NAME=localhost - - ALEMBIC_CFG_PATH=/app/agenta_backend/migrations/postgres/alembic.oss.ini - - DOMAIN_NAME=http://localhost - - FEATURE_FLAG=oss - - AGENTA_TEMPLATE_REPO=agentaai/templates_v2 - - POSTHOG_API_KEY=phc_hmVSxIjTW1REBHXgj2aw4HW9X6CXb6FzerBgP9XenC7 - - CELERY_BROKER_URL=amqp://guest@rabbitmq// - - CELERY_RESULT_BACKEND=redis://redis:6379/0 - - TEMPLATES_BASE_URL=https://llm-app-json.s3.eu-central-1.amazonaws.com - - REGISTRY_REPO_NAME=agentaai - - DOCKER_HUB_URL=https://hub.docker.com/v2/repositories - volumes: - - ./agenta-backend/agenta_backend:/app/agenta_backend - - ./agenta-backend/migrations:/app/migrations - - ./agenta-backend/tests:/app/tests - - /var/run/docker.sock:/var/run/docker.sock - - ./agenta-backend/db:/db - labels: - - "traefik.http.routers.backend.rule=PathPrefix(`/api/`)" - - "traefik.http.routers.backend.entrypoints=web" - - "traefik.http.middlewares.backend-strip.stripprefix.prefixes=/api" - - "traefik.http.middlewares.backend-strip.stripprefix.forceslash=true" - - "traefik.http.routers.backend.middlewares=backend-strip" - - "traefik.http.services.backend.loadbalancer.server.port=8000" - - "traefik.http.routers.backend.service=backend" - networks: - - agenta-network - extra_hosts: - - "host.docker.internal:host-gateway" - command: - [ - "uvicorn", - "agenta_backend.main:app", - "--host", - "0.0.0.0", - "--port", - "8000", - "--reload", - "--log-level", - "info", - "--root-path", - "/api", - ] - depends_on: - postgres: - condition: service_healthy - restart: always + backend: + build: ./agenta-backend + environment: + - POSTGRES_URI=postgresql+asyncpg://username:password@postgres:5432/agenta_oss + - REDIS_URL=redis://redis:6379/0 + - ENVIRONMENT=development + - DATABASE_MODE=v2 + - BARE_DOMAIN_NAME=localhost + - ALEMBIC_CFG_PATH=/app/agenta_backend/migrations/postgres/alembic.oss.ini + - DOMAIN_NAME=http://localhost + - FEATURE_FLAG=oss + - AGENTA_TEMPLATE_REPO=agentaai/templates_v2 + - POSTHOG_API_KEY=phc_hmVSxIjTW1REBHXgj2aw4HW9X6CXb6FzerBgP9XenC7 + - CELERY_BROKER_URL=amqp://guest@rabbitmq// + - CELERY_RESULT_BACKEND=redis://redis:6379/0 + - TEMPLATES_BASE_URL=https://llm-app-json.s3.eu-central-1.amazonaws.com + - REGISTRY_REPO_NAME=agentaai + - DOCKER_HUB_URL=https://hub.docker.com/v2/repositories + volumes: + - ./agenta-backend/agenta_backend:/app/agenta_backend + - ./agenta-backend/migrations:/app/migrations + - ./agenta-backend/tests:/app/tests + - /var/run/docker.sock:/var/run/docker.sock + - ./agenta-backend/db:/db + labels: + - "traefik.http.routers.backend.rule=PathPrefix(`/api/`)" + - "traefik.http.routers.backend.entrypoints=web" + - "traefik.http.middlewares.backend-strip.stripprefix.prefixes=/api" + - "traefik.http.middlewares.backend-strip.stripprefix.forceslash=true" + - "traefik.http.routers.backend.middlewares=backend-strip" + - "traefik.http.services.backend.loadbalancer.server.port=8000" + - "traefik.http.routers.backend.service=backend" + networks: + - agenta-network + extra_hosts: + - "host.docker.internal:host-gateway" + command: + [ + "uvicorn", + "agenta_backend.main:app", + "--host", + "0.0.0.0", + "--port", + "8000", + "--reload", + "--log-level", + "info", + "--root-path", + "/api", + ] + depends_on: + postgres: + condition: service_healthy + restart: always - agenta-web: - build: - context: ./agenta-web - dockerfile: dev.Dockerfile - volumes: - - ./agenta-web/src:/app/src - - ./agenta-web/public:/app/public - - .nextjs_cache:/app/.next - ports: - - "3000:3000" - networks: - - agenta-network - labels: - - "traefik.http.routers.agenta-web.rule=PathPrefix(`/`)" - - "traefik.http.routers.agenta-web.entrypoints=web" - - "traefik.http.services.agenta-web.loadbalancer.server.port=3000" - environment: - - NEXT_PUBLIC_POSTHOG_API_KEY=phc_hmVSxIjTW1REBHXgj2aw4HW9X6CXb6FzerBgP9XenC7 - restart: always + agenta-web: + build: + context: ./agenta-web + dockerfile: dev.Dockerfile + volumes: + - ./agenta-web/src:/app/src + - ./agenta-web/public:/app/public + - .nextjs_cache:/app/.next + ports: + - "3000:3000" + networks: + - agenta-network + labels: + - "traefik.http.routers.agenta-web.rule=PathPrefix(`/`)" + - "traefik.http.routers.agenta-web.entrypoints=web" + - "traefik.http.services.agenta-web.loadbalancer.server.port=3000" + environment: + - NEXT_PUBLIC_POSTHOG_API_KEY=phc_hmVSxIjTW1REBHXgj2aw4HW9X6CXb6FzerBgP9XenC7 + restart: always - redis: - image: redis:latest - networks: - - agenta-network - volumes: - - redis_data:/data - restart: always + redis: + image: redis:latest + networks: + - agenta-network + volumes: + - redis_data:/data + restart: always - rabbitmq: - image: rabbitmq:3-management - ports: - - "5672:5672" - - "15672:15672" - volumes: - - ./rabbitmq_data:/var/lib/rabbitmq - environment: - RABBITMQ_DEFAULT_USER: "guest" - RABBITMQ_DEFAULT_PASS: "guest" - networks: - - agenta-network + rabbitmq: + image: rabbitmq:3-management + ports: + - "5672:5672" + - "15672:15672" + volumes: + - ./rabbitmq_data:/var/lib/rabbitmq + environment: + RABBITMQ_DEFAULT_USER: "guest" + RABBITMQ_DEFAULT_PASS: "guest" + networks: + - agenta-network - celery_worker: - build: ./agenta-backend - command: > - watchmedo auto-restart --directory=./agenta_backend --pattern=*.py --recursive -- celery -A agenta_backend.main.celery_app worker --concurrency=1 --loglevel=INFO - environment: - - POSTGRES_URI=postgresql+asyncpg://username:password@postgres:5432/agenta_oss - - REDIS_URL=redis://redis:6379/0 - - CELERY_BROKER_URL=amqp://guest@rabbitmq// - - ALEMBIC_CFG_PATH=/app/agenta_backend/migrations/postgres/alembic.oss.ini - - CELERY_RESULT_BACKEND=redis://redis:6379/0 - - FEATURE_FLAG=oss - volumes: - - ./agenta-backend/agenta_backend:/app/agenta_backend - - /var/run/docker.sock:/var/run/docker.sock - depends_on: - - postgres - - rabbitmq - - redis - extra_hosts: - - "host.docker.internal:host-gateway" - networks: - - agenta-network + celery_worker: + build: ./agenta-backend + command: > + watchmedo auto-restart --directory=./agenta_backend --pattern=*.py --recursive -- celery -A agenta_backend.main.celery_app worker --concurrency=1 --loglevel=INFO + environment: + - POSTGRES_URI=postgresql+asyncpg://username:password@postgres:5432/agenta_oss + - REDIS_URL=redis://redis:6379/0 + - CELERY_BROKER_URL=amqp://guest@rabbitmq// + - ALEMBIC_CFG_PATH=/app/agenta_backend/migrations/postgres/alembic.oss.ini + - CELERY_RESULT_BACKEND=redis://redis:6379/0 + - FEATURE_FLAG=oss + volumes: + - ./agenta-backend/agenta_backend:/app/agenta_backend + - /var/run/docker.sock:/var/run/docker.sock + depends_on: + - postgres + - rabbitmq + - redis + extra_hosts: + - "host.docker.internal:host-gateway" + networks: + - agenta-network - postgres: - image: postgres:16.2 - container_name: postgres - restart: always - environment: - POSTGRES_USER: username - POSTGRES_PASSWORD: password - POSTGRES_DB: agenta_oss - ports: - - "5432:5432" - networks: - - agenta-network - volumes: - - postgresdb-data:/var/lib/postgresql/data/ - - ./docker-assets/postgres/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql - healthcheck: - test: ["CMD-SHELL", "pg_isready -U postgres"] - interval: 10s - timeout: 5s - retries: 5 + postgres: + image: postgres:16.2 + container_name: postgres + restart: always + environment: + POSTGRES_USER: username + POSTGRES_PASSWORD: password + POSTGRES_DB: agenta_oss + ports: + - "5432:5432" + networks: + - agenta-network + volumes: + - postgresdb-data:/var/lib/postgresql/data/ + - ./docker-assets/postgres/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + timeout: 5s + retries: 5 - pgadmin: - image: dpage/pgadmin4 - restart: always - environment: - PGADMIN_DEFAULT_EMAIL: "admin@example.com" - PGADMIN_DEFAULT_PASSWORD: "password" - PGADMIN_SERVER_HOST: "postgres" - PGADMIN_SERVER_PORT: 5432 - PGADMIN_SERVER_USER: "username" - PGADMIN_SERVER_PASSWORD: "password" - PGADMIN_SERVER_DB: agenta_oss - ports: - - "5050:80" - networks: - - agenta-network - volumes: - - pgadmin-data:/var/lib/pgadmin - depends_on: - postgres: - condition: service_healthy + pgadmin: + image: dpage/pgadmin4 + restart: always + environment: + PGADMIN_DEFAULT_EMAIL: "admin@example.com" + PGADMIN_DEFAULT_PASSWORD: "password" + PGADMIN_SERVER_HOST: "postgres" + PGADMIN_SERVER_PORT: 5432 + PGADMIN_SERVER_USER: "username" + PGADMIN_SERVER_PASSWORD: "password" + PGADMIN_SERVER_DB: agenta_oss + ports: + - "5050:80" + networks: + - agenta-network + volumes: + - pgadmin-data:/var/lib/pgadmin + depends_on: + postgres: + condition: service_healthy networks: - agenta-network: - name: agenta-network + agenta-network: + name: agenta-network volumes: - redis_data: - nextjs_cache: - postgresdb-data: - pgadmin-data: + redis_data: + nextjs_cache: + postgresdb-data: + pgadmin-data: