mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-09 15:17:59 -05:00
<!-- Clearly explain the need for these changes: --> Per chat with toran, we want one click unsubscribe to work in things like gmail to reduce spam. This implements the one click unsubscribe feature, but it is difficult to test due to not being able to control when it is shown. ### Changes 🏗️ - Adds one click unsub - Casually fix google reauth by checking the correct variables (approved to be in pr by Toran) <!-- Concisely describe all of the changes made in this pull request: --> ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Send an email - [x] Open headers on email and pull the link out - [x] `curl -X POST <link>` and ensure unsubscribed from all messages. Note that we can't control when the box is shown on various providers so we just verify it works on our side for now by checking the headers #### Configuration changes Infra pr coming separately, but we did add the secret default to the .env.example and the docker compose --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
214 lines
7.2 KiB
YAML
214 lines
7.2 KiB
YAML
services:
|
|
migrate:
|
|
build:
|
|
context: ../
|
|
dockerfile: autogpt_platform/backend/Dockerfile
|
|
target: server
|
|
command: ["sh", "-c", "poetry run prisma migrate deploy"]
|
|
develop:
|
|
watch:
|
|
- path: ./
|
|
target: autogpt_platform/backend/migrations
|
|
action: rebuild
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
- DATABASE_URL=postgresql://postgres:your-super-secret-and-long-postgres-password@db:5432/postgres?connect_timeout=60&schema=platform
|
|
networks:
|
|
- app-network
|
|
restart: on-failure
|
|
healthcheck:
|
|
test: ["CMD", "poetry", "run", "prisma", "migrate", "status"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:latest
|
|
command: redis-server --requirepass password
|
|
ports:
|
|
- "6379:6379"
|
|
networks:
|
|
- app-network
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
rabbitmq:
|
|
image: rabbitmq:management
|
|
container_name: rabbitmq
|
|
healthcheck:
|
|
test: rabbitmq-diagnostics -q ping
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 10s
|
|
environment:
|
|
- RABBITMQ_DEFAULT_USER=rabbitmq_user_default
|
|
- RABBITMQ_DEFAULT_PASS=k0VMxyIJF9S35f3x2uaw5IWAl6Y536O7 # CHANGE THIS TO A RANDOM PASSWORD IN PRODUCTION -- everywhere lol
|
|
ports:
|
|
- "5672:5672"
|
|
- "15672:15672"
|
|
|
|
rest_server:
|
|
build:
|
|
context: ../
|
|
dockerfile: autogpt_platform/backend/Dockerfile
|
|
target: server
|
|
command: ["python", "-m", "backend.rest"]
|
|
develop:
|
|
watch:
|
|
- path: ./
|
|
target: autogpt_platform/backend/
|
|
action: rebuild
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
db:
|
|
condition: service_healthy
|
|
migrate:
|
|
condition: service_completed_successfully
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
environment:
|
|
- SUPABASE_URL=http://kong:8000
|
|
- SUPABASE_JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long
|
|
- SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
|
|
- DATABASE_URL=postgresql://postgres:your-super-secret-and-long-postgres-password@db:5432/postgres?connect_timeout=60&schema=platform
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- RABBITMQ_HOST=rabbitmq
|
|
- RABBITMQ_PORT=5672
|
|
- RABBITMQ_DEFAULT_USER=rabbitmq_user_default
|
|
- RABBITMQ_DEFAULT_PASS=k0VMxyIJF9S35f3x2uaw5IWAl6Y536O7
|
|
- REDIS_PASSWORD=password
|
|
- ENABLE_AUTH=true
|
|
- PYRO_HOST=0.0.0.0
|
|
- EXECUTIONSCHEDULER_HOST=rest_server
|
|
- EXECUTIONMANAGER_HOST=executor
|
|
- NOTIFICATIONMANAGER_HOST=rest_server
|
|
- FRONTEND_BASE_URL=http://localhost:3000
|
|
- BACKEND_CORS_ALLOW_ORIGINS=["http://localhost:3000"]
|
|
- ENCRYPTION_KEY=dvziYgz0KSK8FENhju0ZYi8-fRTfAdlz6YLhdB_jhNw= # DO NOT USE IN PRODUCTION!!
|
|
- UNSUBSCRIBE_SECRET_KEY=HlP8ivStJjmbf6NKi78m_3FnOogut0t5ckzjsIqeaio= # DO NOT USE IN PRODUCTION!!
|
|
ports:
|
|
- "8006:8006"
|
|
- "8007:8007"
|
|
- "8003:8003" # execution scheduler
|
|
networks:
|
|
- app-network
|
|
|
|
executor:
|
|
build:
|
|
context: ../
|
|
dockerfile: autogpt_platform/backend/Dockerfile
|
|
target: server
|
|
command: ["python", "-m", "backend.exec"]
|
|
develop:
|
|
watch:
|
|
- path: ./
|
|
target: autogpt_platform/backend/
|
|
action: rebuild
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
db:
|
|
condition: service_healthy
|
|
migrate:
|
|
condition: service_completed_successfully
|
|
environment:
|
|
- SUPABASE_URL=http://kong:8000
|
|
- SUPABASE_JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long
|
|
- SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
|
|
- DATABASE_URL=postgresql://postgres:your-super-secret-and-long-postgres-password@db:5432/postgres?connect_timeout=60&schema=platform
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=password
|
|
- RABBITMQ_HOST=rabbitmq
|
|
- RABBITMQ_PORT=5672
|
|
- RABBITMQ_DEFAULT_USER=rabbitmq_user_default
|
|
- RABBITMQ_DEFAULT_PASS=k0VMxyIJF9S35f3x2uaw5IWAl6Y536O7
|
|
- ENABLE_AUTH=true
|
|
- PYRO_HOST=0.0.0.0
|
|
- AGENTSERVER_HOST=rest_server
|
|
- NOTIFICATIONMANAGER_HOST=rest_server
|
|
- ENCRYPTION_KEY=dvziYgz0KSK8FENhju0ZYi8-fRTfAdlz6YLhdB_jhNw= # DO NOT USE IN PRODUCTION!!
|
|
ports:
|
|
- "8002:8000"
|
|
networks:
|
|
- app-network
|
|
|
|
websocket_server:
|
|
build:
|
|
context: ../
|
|
dockerfile: autogpt_platform/backend/Dockerfile
|
|
target: server
|
|
command: ["python", "-m", "backend.ws"]
|
|
develop:
|
|
watch:
|
|
- path: ./
|
|
target: autogpt_platform/backend/
|
|
action: rebuild
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
# rabbitmq:
|
|
# condition: service_healthy
|
|
migrate:
|
|
condition: service_completed_successfully
|
|
environment:
|
|
- SUPABASE_JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long
|
|
- DATABASE_URL=postgresql://postgres:your-super-secret-and-long-postgres-password@db:5432/postgres?connect_timeout=60&schema=platform
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=password
|
|
# - RABBITMQ_HOST=rabbitmq
|
|
# - RABBITMQ_PORT=5672
|
|
# - RABBITMQ_DEFAULT_USER=rabbitmq_user_default
|
|
# - RABBITMQ_DEFAULT_PASS=k0VMxyIJF9S35f3x2uaw5IWAl6Y536O7
|
|
- ENABLE_AUTH=true
|
|
- PYRO_HOST=0.0.0.0
|
|
- BACKEND_CORS_ALLOW_ORIGINS=["http://localhost:3000"]
|
|
|
|
ports:
|
|
- "8001:8001"
|
|
networks:
|
|
- app-network
|
|
|
|
# frontend:
|
|
# build:
|
|
# context: ../
|
|
# dockerfile: autogpt_platform/frontend/Dockerfile
|
|
# target: dev
|
|
# depends_on:
|
|
# db:
|
|
# condition: service_healthy
|
|
# rest_server:
|
|
# condition: service_started
|
|
# websocket_server:
|
|
# condition: service_started
|
|
# migrate:
|
|
# condition: service_completed_successfully
|
|
# environment:
|
|
# - NEXT_PUBLIC_SUPABASE_URL=http://kong:8000
|
|
# - NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE
|
|
# - DATABASE_URL=postgresql://agpt_user:pass123@postgres:5432/postgres?connect_timeout=60&schema=platform
|
|
# - NEXT_PUBLIC_AGPT_SERVER_URL=http://localhost:8006/api
|
|
# - NEXT_PUBLIC_AGPT_WS_SERVER_URL=ws://localhost:8001/ws
|
|
# - NEXT_PUBLIC_AGPT_MARKETPLACE_URL=http://localhost:8015/api/v1/market
|
|
# - NEXT_PUBLIC_BEHAVE_AS=LOCAL
|
|
# ports:
|
|
# - "3000:3000"
|
|
# networks:
|
|
# - app-network
|
|
|
|
networks:
|
|
app-network:
|
|
driver: bridge
|