Complete Django AI agent marketplace with security optimizations and clean deployment documentation without any API keys or secrets. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
9.5 KiB
CapRover Deployment Guide for Quantum Tasks AI
Overview
This guide provides step-by-step instructions for deploying the Quantum Tasks AI Django application on CapRover.
Prerequisites
- CapRover installed and running on your VPS
- Git repository with the Quantum Tasks AI project
- Basic understanding of Django and CapRover
Part 1: Project Files Overview
The project includes the following CapRover-specific files:
Required Files
quantum_render/
├── captain-definition # CapRover configuration
├── Dockerfile.captain # Production Docker configuration
├── .dockerignore # Docker build optimization
├── requirements.txt # Python dependencies (production-ready)
└── netcop_hub/settings.py # Django settings with CapRover support
Key Configuration Features
- CapRover Auto-detection: Automatic host configuration via
CAPROVER_GIT_COMMIT_SHA - Database Flexibility: Supports SQLite (dev), PostgreSQL (production)
- Static Files: WhiteNoise configuration for production
- Security: Comprehensive security headers and middleware
- Environment Variables: Production-ready configuration
Part 2: Deploy PostgreSQL Database
2.1 Deploy PostgreSQL
- CapRover Dashboard → Apps → One-Click Apps/Databases
- Search:
PostgreSQL - Configure:
- App Name:
quantum-ai-db - Version:
14.5(recommended) - Username:
quantum_user - Password:
secure_password_123 - Default Database:
quantum_ai
- App Name:
- Click Deploy
2.2 Note Connection Details
After deployment, note the internal hostname:
- Format:
srv-captain--quantum-ai-db:5432 - Full URL:
postgres://quantum_user:secure_password_123@srv-captain--quantum-ai-db:5432/quantum_ai
Part 3: Deploy Quantum Tasks AI Application
3.1 Create Django App
- CapRover Dashboard → Apps → Create New App
- App Name:
quantum-tasks-ai - Check: "Has Persistent Data" (for media files)
- Click: "Create New App"
3.2 Configure Git Deployment
- Go to your app → Deployment tab
- Select: "Method 3: Deploy from Github/Bitbucket/Gitlab"
- Repository URL:
https://github.com/yourusername/quantum_render.git - Branch:
main - Click: "Save & Update"
3.3 Set Environment Variables
Go to: App Configs → Environment Variables
Required Variables:
SECRET_KEY=your-generated-secret-key
DEBUG=false
ALLOWED_HOSTS=quantum-tasks-ai.captain.your-domain.com
DATABASE_URL=postgres://quantum_user:secure_password_123@srv-captain--quantum-ai-db:5432/quantum_ai
# Email Configuration
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password
# Stripe Configuration
STRIPE_SECRET_KEY=sk_live_your-stripe-secret-key
STRIPE_WEBHOOK_SECRET=whsec_your-webhook-secret
# AI API Keys
GROQ_API_KEY=your-groq-api-key
OPENAI_API_KEY=your-openai-api-key
# Webhook URLs for N8N integrations
N8N_WEBHOOK_DATA_ANALYZER=https://your-n8n-instance.com/webhook/data-analyzer
N8N_WEBHOOK_FIVE_WHYS=https://your-n8n-instance.com/webhook/five-whys
N8N_WEBHOOK_JOB_POSTING=https://your-n8n-instance.com/webhook/job-posting
N8N_WEBHOOK_SOCIAL_ADS=https://your-n8n-instance.com/webhook/social-ads
# Optional: Redis for caching
REDIS_URL=redis://srv-captain--redis:6379/1
Generate SECRET_KEY:
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
3.4 Deploy Application
- Deployment tab → Force Build
- Monitor logs for successful deployment
Part 4: Post-Deployment Setup
4.1 Install Portainer (For Container Management)
- Apps → One-Click Apps → Search
Portainer - Deploy with default settings
- Access:
https://portainer.captain.your-domain.com - Create admin account
4.2 Run Django Management Commands
Via Portainer Console:
- Containers → Find your Django container
- Console →
/bin/bash→ Connect - Run commands:
# Apply database migrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
# Test the application
python manage.py check
# Collect static files (if needed)
python manage.py collectstatic --noinput
Via SSH (Alternative):
# SSH into your server
ssh root@your-server-ip
# Find container ID
docker ps | grep quantum-tasks-ai
# Run management commands
docker exec -it [container-id] python manage.py migrate
docker exec -it [container-id] python manage.py createsuperuser
4.3 Install pgAdmin (Database Management)
- Apps → One-Click Apps → Search
pgAdmin - Configure:
- Email:
admin@example.com - Password:
secure_password
- Email:
- Deploy
- Access:
https://pgadmin.captain.your-domain.com
4.4 Connect pgAdmin to PostgreSQL
- Login to pgAdmin
- Add Server:
- Name:
Quantum AI DB - Host:
srv-captain--quantum-ai-db - Port:
5432 - Username:
quantum_user - Password:
secure_password_123
- Name:
Part 5: Production Optimization
5.1 Enable HTTPS
- Your app → HTTP Settings
- Enable: Force HTTPS
- Enable: Websocket Support (if needed)
5.2 Configure Custom Domain
- Your app → HTTP Settings
- Add: Custom Domain
- Update ALLOWED_HOSTS environment variable
5.3 Set up Redis (Optional - For Performance)
- Apps → One-Click Apps → Search
Redis - Deploy with app name:
quantum-ai-redis - Update environment variable:
REDIS_URL=redis://srv-captain--quantum-ai-redis:6379/1
Part 6: Application-Specific Configuration
6.1 Agent System Configuration
The Quantum Tasks AI platform uses a file-based agent system with dual integrations:
Webhook Agents (N8N):
- Configure N8N webhook URLs in environment variables
- Test agent execution through the marketplace interface
Direct Access Agents:
- Configure external form URLs in agent JSON files
- Test payment flow and form redirection
6.2 Stripe Integration Setup
- Configure Stripe webhook endpoint:
https://your-domain.com/wallet/stripe/webhook/ - Set webhook events:
payment_intent.succeededpayment_intent.payment_failedinvoice.payment_succeededinvoice.payment_failed
6.3 Email Verification Setup
- Configure email settings in environment variables
- Test email delivery from Django admin
- Set REQUIRE_EMAIL_VERIFICATION=true for production
Part 7: Monitoring and Maintenance
7.1 Health Checks
The application includes built-in health monitoring:
- Health endpoint:
/admin/(requires authentication) - Agent marketplace:
/agents/(public) - API endpoints:
/agents/api/(for execution)
7.2 Log Management
Monitor application logs via:
- CapRover Dashboard: App logs
- Portainer: Container logs
- File logs:
/app/logs/in container
7.3 Database Backups
# Create backup
docker exec [postgres-container] pg_dump -U quantum_user quantum_ai > backup_$(date +%Y%m%d).sql
# Restore backup
docker exec -i [postgres-container] psql -U quantum_user quantum_ai < backup_file.sql
Part 8: Troubleshooting
8.1 Common Issues
Build Failures:
- Check
Dockerfile.captainsyntax - Verify
requirements.txtdependencies - Check
captain-definitionformat
Database Connection Errors:
- Verify
DATABASE_URLformat - Check PostgreSQL container is running
- Confirm environment variables
Agent Execution Issues:
- Verify N8N webhook URLs
- Check API keys configuration
- Monitor execution logs in Django admin
Email Issues:
- Test SMTP configuration
- Check email credentials
- Verify firewall settings
8.2 Useful Commands
# Check container logs
docker logs [container-id]
# Database connection test
docker exec [container-id] python manage.py check_db
# Agent system test
docker exec [container-id] python manage.py shell -c "from agents.services import AgentFileService; print(AgentFileService.get_agent_stats())"
# Test webhooks
curl -X POST https://your-domain.com/agents/api/execute/ \
-H "Content-Type: application/json" \
-d '{"agent_slug": "test-agent", "form_data": {}}'
Security Best Practices
Environment Variables
- Never commit secrets to Git
- Use strong passwords for all services
- Rotate SECRET_KEY regularly
- Use separate API keys for production
Database Security
- Use specific database users per app
- Restrict database permissions
- Enable connection encryption
- Regular backups
Application Security
- Keep Django updated
- Use HTTPS in production
- Configure proper ALLOWED_HOSTS
- Monitor security logs
Quick Reference
Essential URLs
- CapRover:
https://captain.your-domain.com - Quantum Tasks AI:
https://quantum-tasks-ai.captain.your-domain.com - Portainer:
https://portainer.captain.your-domain.com - pgAdmin:
https://pgadmin.captain.your-domain.com
Key Management Commands
# Django management
python manage.py migrate
python manage.py collectstatic
python manage.py createsuperuser
python manage.py check_db
# Agent system
python manage.py shell -c "from agents.services import AgentFileService; print('Agents:', AgentFileService.list_agents())"
# Docker
docker ps
docker logs [container-id]
docker exec -it [container-id] /bin/bash
This guide provides a complete deployment process for the Quantum Tasks AI platform on CapRover, taking advantage of the application's production-ready configuration and dual agent integration system.