Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
194 changes: 186 additions & 8 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,17 +1,34 @@
# =============================================================================
# AJOB4AGENT Environment Configuration
# =============================================================================
# Copy this file to .env and fill in your values
# Never commit .env files to version control!
# =============================================================================

# -----------------------------------------------------------------------------
# Database Configuration
# -----------------------------------------------------------------------------
DATABASE_URL=postgresql://jobagent:password@postgres:5432/jobagent
POSTGRES_USER=jobagent
POSTGRES_PASSWORD=password
POSTGRES_DB=jobagent

# -----------------------------------------------------------------------------
# LLM Service Configuration
# -----------------------------------------------------------------------------
# OpenAI API key - required for AI-powered resume tailoring
OPENAI_API_KEY=your_openai_api_key_here

# Model settings
LLM_MODEL=gpt-4
LLM_MAX_TOKENS=4000
LLM_TEMPERATURE=0.7

# -----------------------------------------------------------------------------
# Platform Agent Credentials
# LinkedIn (required for LinkedIn agent)
# -----------------------------------------------------------------------------

# LinkedIn (required for LinkedIn automation)
[email protected]
LINKEDIN_PASSWORD=your_linkedin_password

Expand All @@ -22,57 +39,218 @@ GLASSDOOR_KEY=your_glassdoor_key
# Wellfound/AngelList (optional)
WELLFOUND_ACCESS_TOKEN=your_wellfound_token

# Indeed (optional)
INDEED_API_KEY=your_indeed_api_key

# Google Talent (optional)
GOOGLE_TALENT_API_KEY=your_google_talent_api_key

# -----------------------------------------------------------------------------
# OAuth Configuration (for social login)
# -----------------------------------------------------------------------------
# Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

# GitHub OAuth
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret

# LinkedIn OAuth
LINKEDIN_CLIENT_ID=your_linkedin_client_id
LINKEDIN_CLIENT_SECRET=your_linkedin_client_secret

# -----------------------------------------------------------------------------
# Security Configuration
# -----------------------------------------------------------------------------
# JWT secret - minimum 32 characters, use a strong random string
JWT_SECRET=your_very_secure_jwt_secret_here_minimum_32_chars

# Internal service API key
API_KEY=your_internal_api_key_here

# Session secret for cookie encryption
SESSION_SECRET=your_session_secret_here

# Redis Configuration (for caching and sessions)
# Webhook signature secret
WEBHOOK_SECRET=your_webhook_secret_here

# Encryption key for sensitive data at rest
ENCRYPTION_KEY=your_32_character_encryption_key

# -----------------------------------------------------------------------------
# Redis Configuration (caching and sessions)
# -----------------------------------------------------------------------------
REDIS_URL=redis://redis:6379
REDIS_PASSWORD=

# Message Queue Configuration
# Redis cluster mode (optional)
REDIS_CLUSTER_ENABLED=false
REDIS_CLUSTER_NODES=

# -----------------------------------------------------------------------------
# Message Queue Configuration (RabbitMQ)
# -----------------------------------------------------------------------------
RABBITMQ_URL=amqp://guest:guest@rabbitmq:5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_MANAGEMENT_URL=http://rabbitmq:15672

# Service Ports (for development)
# -----------------------------------------------------------------------------
# Service Configuration
# -----------------------------------------------------------------------------
# Service ports (for development/debugging)
DASHBOARD_PORT=3001
ORCHESTRATOR_PORT=8080
LLM_SERVICE_PORT=8000
MONITORING_PORT=8001
AUTH_SERVICE_PORT=8003

# Service URLs (for inter-service communication)
LLM_SERVICE_URL=http://llm-service:8000
ORCHESTRATOR_URL=http://agent-orchestrator:8080
MONITORING_URL=http://agent-monitoring-service:8001
NEXT_PUBLIC_API_URL=http://localhost:8080

# Email Configuration (for notifications)
# -----------------------------------------------------------------------------
# Email Configuration (notifications and alerts)
# -----------------------------------------------------------------------------
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
[email protected]
SMTP_PASSWORD=your_app_password
[email protected]
SMTP_FROM_NAME=AJOB4AGENT

# SendGrid (alternative email provider)
SENDGRID_API_KEY=your_sendgrid_api_key

# -----------------------------------------------------------------------------
# Monitoring and Logging
# -----------------------------------------------------------------------------
# Log level: debug, info, warn, error
LOG_LEVEL=info

# Sentry error tracking
SENTRY_DSN=https://[email protected]/project_id

# Enable structured JSON logging (production)
LOG_FORMAT=json

# DataDog (optional APM)
DD_API_KEY=your_datadog_api_key
DD_ENV=development

# -----------------------------------------------------------------------------
# Rate Limiting Configuration
# -----------------------------------------------------------------------------
# Window duration in milliseconds (15 minutes = 900000)
RATE_LIMIT_WINDOW_MS=900000

# Maximum requests per window
RATE_LIMIT_MAX_REQUESTS=100

# Login rate limit
LOGIN_RATE_LIMIT_MAX=5
LOGIN_RATE_LIMIT_WINDOW_MS=60000

# -----------------------------------------------------------------------------
# Application Settings
# -----------------------------------------------------------------------------
# Environment: development, staging, production
APP_ENV=development
NODE_ENV=development

# Application metadata
APP_NAME=AJOB4AGENT
APP_VERSION=1.0.0

# Application URL (used for callbacks, emails, etc.)
APP_URL=http://localhost:3001

# CORS allowed origins (comma-separated)
ALLOWED_ORIGINS=http://localhost:3001,http://localhost:3000

# Allowed hosts for security middleware
ALLOWED_HOSTS=localhost,127.0.0.1,llm-service,agent-orchestrator

# -----------------------------------------------------------------------------
# Browser Automation Settings
# -----------------------------------------------------------------------------
# Run browsers in headless mode
HEADLESS_BROWSER=true

# Browser timeout in milliseconds
BROWSER_TIMEOUT=30000

# Maximum concurrent browser instances
MAX_CONCURRENT_AGENTS=3

# Playwright browser (chromium, firefox, webkit)
BROWSER_TYPE=chromium

# User agent for automation (Chrome on Windows)
USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

# -----------------------------------------------------------------------------
# Job Search Configuration
# -----------------------------------------------------------------------------
# Maximum jobs to return per search
MAX_JOBS_PER_SEARCH=50

# Search interval (how often to run automated searches)
SEARCH_INTERVAL_HOURS=24

# Delay between application submissions (rate limiting)
APPLICATION_DELAY_MS=5000

# Webhook Configuration (for external integrations)
WEBHOOK_SECRET=your_webhook_secret_here
# Minimum match score to apply (0-1)
MIN_MATCH_SCORE=0.7

# -----------------------------------------------------------------------------
# Feature Flags
# -----------------------------------------------------------------------------
# Enable/disable features
FEATURE_AUTO_APPLY=true
FEATURE_OUTREACH=true
FEATURE_ANALYTICS=true
FEATURE_EMAIL_REPORTS=false

# -----------------------------------------------------------------------------
# Payment Integration (Stripe)
# -----------------------------------------------------------------------------
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret
STRIPE_PUBLISHABLE_KEY=pk_test_your_stripe_publishable_key
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret

# Stripe price IDs for subscription plans
STRIPE_PRICE_BASIC=price_basic_id
STRIPE_PRICE_PRO=price_pro_id
STRIPE_PRICE_ENTERPRISE=price_enterprise_id

# -----------------------------------------------------------------------------
# Cloud Storage (for resumes, documents)
# -----------------------------------------------------------------------------
# AWS S3
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_REGION=us-east-1
AWS_S3_BUCKET=ajob4agent-uploads

# Google Cloud Storage (alternative)
GCS_BUCKET=ajob4agent-uploads
GCS_PROJECT_ID=your_gcp_project_id

# -----------------------------------------------------------------------------
# Docker/Registry Configuration (for CI/CD)
# -----------------------------------------------------------------------------
REGISTRY=ghcr.io
IMAGE_NAME=groupthinking/ajob4agent
TAG=latest

# -----------------------------------------------------------------------------
# NextAuth Configuration (Dashboard authentication)
# -----------------------------------------------------------------------------
NEXTAUTH_SECRET=${JWT_SECRET}
NEXTAUTH_URL=${APP_URL}
Loading
Loading