mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-04-30 03:00:41 -04: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>
188 lines
5.4 KiB
Plaintext
188 lines
5.4 KiB
Plaintext
DB_USER=postgres
|
|
DB_PASS=your-super-secret-and-long-postgres-password
|
|
DB_NAME=postgres
|
|
DB_PORT=5432
|
|
DATABASE_URL="postgresql://${DB_USER}:${DB_PASS}@localhost:${DB_PORT}/${DB_NAME}?connect_timeout=60&schema=platform"
|
|
PRISMA_SCHEMA="postgres/schema.prisma"
|
|
|
|
BACKEND_CORS_ALLOW_ORIGINS=["http://localhost:3000"]
|
|
|
|
# generate using `from cryptography.fernet import Fernet;Fernet.generate_key().decode()`
|
|
ENCRYPTION_KEY='dvziYgz0KSK8FENhju0ZYi8-fRTfAdlz6YLhdB_jhNw='
|
|
UNSUBSCRIBE_SECRET_KEY = 'HlP8ivStJjmbf6NKi78m_3FnOogut0t5ckzjsIqeaio='
|
|
|
|
REDIS_HOST=localhost
|
|
REDIS_PORT=6379
|
|
REDIS_PASSWORD=password
|
|
|
|
ENABLE_CREDIT=false
|
|
STRIPE_API_KEY=
|
|
STRIPE_WEBHOOK_SECRET=
|
|
|
|
# What environment things should be logged under: local dev or prod
|
|
APP_ENV=local
|
|
# What environment to behave as: "local" or "cloud"
|
|
BEHAVE_AS=local
|
|
PYRO_HOST=localhost
|
|
SENTRY_DSN=
|
|
|
|
# Email For Postmark so we can send emails
|
|
POSTMARK_SERVER_API_TOKEN=
|
|
POSTMARK_SENDER_EMAIL=invalid@invalid.com
|
|
POSTMARK_WEBHOOK_TOKEN=
|
|
|
|
## User auth with Supabase is required for any of the 3rd party integrations with auth to work.
|
|
ENABLE_AUTH=true
|
|
SUPABASE_URL=http://localhost:8000
|
|
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
|
|
SUPABASE_JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long
|
|
|
|
# RabbitMQ credentials -- Used for communication between services
|
|
RABBITMQ_HOST=localhost
|
|
RABBITMQ_PORT=5672
|
|
RABBITMQ_DEFAULT_USER=rabbitmq_user_default
|
|
RABBITMQ_DEFAULT_PASS=k0VMxyIJF9S35f3x2uaw5IWAl6Y536O7
|
|
|
|
## GCS bucket is required for marketplace and library functionality
|
|
MEDIA_GCS_BUCKET_NAME=
|
|
|
|
## For local development, you may need to set FRONTEND_BASE_URL for the OAuth flow
|
|
## for integrations to work. Defaults to the value of PLATFORM_BASE_URL if not set.
|
|
# FRONTEND_BASE_URL=http://localhost:3000
|
|
|
|
## PLATFORM_BASE_URL must be set to a *publicly accessible* URL pointing to your backend
|
|
## to use the platform's webhook-related functionality.
|
|
## If you are developing locally, you can use something like ngrok to get a publc URL
|
|
## and tunnel it to your locally running backend.
|
|
PLATFORM_BASE_URL=http://localhost:3000
|
|
|
|
## == INTEGRATION CREDENTIALS == ##
|
|
# Each set of server side credentials is required for the corresponding 3rd party
|
|
# integration to work.
|
|
|
|
# For the OAuth callback URL, use <your_frontend_url>/auth/integrations/oauth_callback,
|
|
# e.g. http://localhost:3000/auth/integrations/oauth_callback
|
|
|
|
# GitHub OAuth App server credentials - https://github.com/settings/developers
|
|
GITHUB_CLIENT_ID=
|
|
GITHUB_CLIENT_SECRET=
|
|
|
|
# Google OAuth App server credentials - https://console.cloud.google.com/apis/credentials, and enable gmail api and set scopes
|
|
# https://console.cloud.google.com/apis/credentials/consent ?project=<your_project_id>
|
|
|
|
# You'll need to add/enable the following scopes (minimum):
|
|
# https://console.developers.google.com/apis/api/gmail.googleapis.com/overview ?project=<your_project_id>
|
|
# https://console.cloud.google.com/apis/library/sheets.googleapis.com/ ?project=<your_project_id>
|
|
GOOGLE_CLIENT_ID=
|
|
GOOGLE_CLIENT_SECRET=
|
|
|
|
# Twitter (X) OAuth 2.0 with PKCE Configuration
|
|
# 1. Create a Twitter Developer Account:
|
|
# - Visit https://developer.x.com/en and sign up
|
|
# 2. Set up your application:
|
|
# - Navigate to Developer Portal > Projects > Create Project
|
|
# - Add a new app to your project
|
|
# 3. Configure app settings:
|
|
# - App Permissions: Read + Write + Direct Messages
|
|
# - App Type: Web App, Automated App or Bot
|
|
# - OAuth 2.0 Callback URL: http://localhost:3000/auth/integrations/oauth_callback
|
|
# - Save your Client ID and Client Secret below
|
|
TWITTER_CLIENT_ID=
|
|
TWITTER_CLIENT_SECRET=
|
|
|
|
# Linear App
|
|
# Make a new workspace for your OAuth APP -- trust me
|
|
# https://linear.app/settings/api/applications/new
|
|
# Callback URL: http://localhost:3000/auth/integrations/oauth_callback
|
|
LINEAR_CLIENT_ID=
|
|
LINEAR_CLIENT_SECRET=
|
|
|
|
# To obtain Todoist API credentials:
|
|
# 1. Create a Todoist account at todoist.com
|
|
# 2. Visit the Developer Console: https://developer.todoist.com/appconsole.html
|
|
# 3. Click "Create new app"
|
|
# 4. Once created, copy your Client ID and Client Secret below
|
|
TODOIST_CLIENT_ID=
|
|
TODOIST_CLIENT_SECRET=
|
|
|
|
## ===== OPTIONAL API KEYS ===== ##
|
|
|
|
# LLM
|
|
OPENAI_API_KEY=
|
|
ANTHROPIC_API_KEY=
|
|
GROQ_API_KEY=
|
|
OPEN_ROUTER_API_KEY=
|
|
|
|
# Reddit
|
|
# Go to https://www.reddit.com/prefs/apps and create a new app
|
|
# Choose "script" for the type
|
|
# Fill in the redirect uri as <your_frontend_url>/auth/integrations/oauth_callback, e.g. http://localhost:3000/auth/integrations/oauth_callback
|
|
REDDIT_CLIENT_ID=
|
|
REDDIT_CLIENT_SECRET=
|
|
REDDIT_USER_AGENT="AutoGPT:1.0 (by /u/autogpt)"
|
|
|
|
# Discord
|
|
DISCORD_BOT_TOKEN=
|
|
|
|
# SMTP/Email
|
|
SMTP_SERVER=
|
|
SMTP_PORT=
|
|
SMTP_USERNAME=
|
|
SMTP_PASSWORD=
|
|
|
|
# D-ID
|
|
DID_API_KEY=
|
|
|
|
# Open Weather Map
|
|
OPENWEATHERMAP_API_KEY=
|
|
|
|
# SMTP
|
|
SMTP_SERVER=
|
|
SMTP_PORT=
|
|
SMTP_USERNAME=
|
|
SMTP_PASSWORD=
|
|
|
|
# Medium
|
|
MEDIUM_API_KEY=
|
|
MEDIUM_AUTHOR_ID=
|
|
|
|
# Google Maps
|
|
GOOGLE_MAPS_API_KEY=
|
|
|
|
# Replicate
|
|
REPLICATE_API_KEY=
|
|
|
|
# Ideogram
|
|
IDEOGRAM_API_KEY=
|
|
|
|
# Fal
|
|
FAL_API_KEY=
|
|
|
|
# Exa
|
|
EXA_API_KEY=
|
|
|
|
# E2B
|
|
E2B_API_KEY=
|
|
|
|
# Mem0
|
|
MEM0_API_KEY=
|
|
|
|
# Nvidia
|
|
NVIDIA_API_KEY=
|
|
|
|
# Apollo
|
|
APOLLO_API_KEY=
|
|
|
|
# SmartLead
|
|
SMARTLEAD_API_KEY=
|
|
|
|
# ZeroBounce
|
|
ZEROBOUNCE_API_KEY=
|
|
|
|
# Logging Configuration
|
|
LOG_LEVEL=INFO
|
|
ENABLE_CLOUD_LOGGING=false
|
|
ENABLE_FILE_LOGGING=false
|
|
# Use to manually set the log directory
|
|
# LOG_DIR=./logs
|