mirror of
https://github.com/thecyberlearn/quantumtaskai-caprover.git
synced 2026-08-18 20:32:55 +00:00
🎉 Dokploy deployment working + comprehensive WARP.md
✅ DOKPLOY DEPLOYMENT FIXED: - Issue was Django ALLOWED_HOSTS configuration, not Dokploy routing - Container and port 3000 were working correctly - Debug configuration resolved the routing issues ✅ PRODUCTION READY: - Switch back to production Dockerfile (Dockerfile.dokploy) - Proper environment variables with domain-specific ALLOWED_HOSTS - Debug mode disabled for production 📋 COMPREHENSIVE WARP.md ADDED: - Complete project overview and architecture - Development commands and workflows - Agent system architecture and configuration - Deployment guides for both CapRover and Dokploy - Troubleshooting section with Dokploy 404 fix - Environment variables and security features - File-based agent configuration system explained The application is now successfully deployed and documented for future development.
This commit is contained in:
parent
01d3854194
commit
f55da45794
212
WARP.md
Normal file
212
WARP.md
Normal file
@ -0,0 +1,212 @@
|
|||||||
|
# WARP.md
|
||||||
|
|
||||||
|
This file provides guidance to WARP (warp.dev) when working with code in this repository.
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
|
||||||
|
**Quantum Tasks AI** is a Django-based AI agent marketplace that allows users to browse, execute, and interact with various AI-powered tools and services. The application is designed for deployment on container platforms like CapRover and Dokploy.
|
||||||
|
|
||||||
|
### Core Architecture
|
||||||
|
|
||||||
|
- **Framework**: Django 5.2.4 with Django REST Framework
|
||||||
|
- **Database**: SQLite (development) / PostgreSQL (production)
|
||||||
|
- **Static Files**: WhiteNoise for production serving
|
||||||
|
- **Agent System**: File-based JSON configuration system
|
||||||
|
- **Authentication**: Custom User model with email verification
|
||||||
|
- **Payments**: Stripe integration for agent execution fees
|
||||||
|
- **Deployment**: Containerized with Docker, optimized for CapRover/Dokploy
|
||||||
|
|
||||||
|
### Application Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
├── agents/ # AI agent marketplace and execution system
|
||||||
|
├── authentication/ # User management and authentication
|
||||||
|
├── core/ # Homepage, health checks, and utilities
|
||||||
|
├── wallet/ # Stripe payment integration
|
||||||
|
├── netcop_hub/ # Django project settings and configuration
|
||||||
|
├── static/ # Static assets (CSS, JS, images)
|
||||||
|
├── templates/ # Django HTML templates
|
||||||
|
└── agents/configs/ # File-based agent configurations
|
||||||
|
├── agents/ # Individual agent JSON files
|
||||||
|
└── categories/ # Agent categories configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development Commands
|
||||||
|
|
||||||
|
### Local Development Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install dependencies
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
# Database setup
|
||||||
|
python manage.py migrate
|
||||||
|
python manage.py createsuperuser
|
||||||
|
|
||||||
|
# Development server
|
||||||
|
python manage.py runserver
|
||||||
|
# OR use the development script
|
||||||
|
./run_dev.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testing and Quality
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run Django checks
|
||||||
|
python manage.py check
|
||||||
|
|
||||||
|
# Test database connection
|
||||||
|
python manage.py check --database default
|
||||||
|
|
||||||
|
# Clear agent cache (useful during development)
|
||||||
|
python manage.py shell -c "from agents.services import AgentFileService; AgentFileService.clear_cache()"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Static Files and Assets
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Collect static files for production
|
||||||
|
python manage.py collectstatic --noinput
|
||||||
|
|
||||||
|
# Clear cache table
|
||||||
|
python manage.py createcachetable
|
||||||
|
```
|
||||||
|
|
||||||
|
## Agent System Architecture
|
||||||
|
|
||||||
|
### File-Based Configuration
|
||||||
|
The application uses a file-based agent system instead of database models for agent configurations:
|
||||||
|
|
||||||
|
- **Agent configs**: `agents/configs/agents/*.json`
|
||||||
|
- **Categories**: `agents/configs/categories/categories.json`
|
||||||
|
- **Service class**: `AgentFileService` handles loading and caching
|
||||||
|
|
||||||
|
### Agent Configuration Format
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"slug": "agent-identifier",
|
||||||
|
"name": "Human Readable Name",
|
||||||
|
"description": "Detailed description",
|
||||||
|
"category": "category-slug",
|
||||||
|
"price": 0.0,
|
||||||
|
"agent_type": "form",
|
||||||
|
"system_type": "webhook",
|
||||||
|
"webhook_url": "https://external-service.com/webhook",
|
||||||
|
"form_schema": {
|
||||||
|
"fields": [
|
||||||
|
{"name": "input", "type": "text", "label": "Input Field"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Agent Execution Flow
|
||||||
|
1. User selects agent from marketplace (`/agents/`)
|
||||||
|
2. Fills out dynamic form based on `form_schema`
|
||||||
|
3. Payment processed via Stripe (if price > 0)
|
||||||
|
4. Request sent to agent's `webhook_url`
|
||||||
|
5. Response stored in `AgentExecution` model
|
||||||
|
6. Results displayed to user
|
||||||
|
|
||||||
|
## Deployment Configurations
|
||||||
|
|
||||||
|
### CapRover Deployment
|
||||||
|
- **Docker file**: `Dockerfile.captain`
|
||||||
|
- **Configuration**: `captain-definition`
|
||||||
|
- **Port**: 80
|
||||||
|
- **Startup**: Direct gunicorn execution
|
||||||
|
|
||||||
|
### Dokploy Deployment
|
||||||
|
- **Docker file**: `Dockerfile.dokploy`
|
||||||
|
- **Configuration**: `dokploy.json`
|
||||||
|
- **Port**: 3000
|
||||||
|
- **Startup**: `start-dokploy.sh` script with migrations
|
||||||
|
|
||||||
|
### Environment Variables
|
||||||
|
|
||||||
|
**Required for Production:**
|
||||||
|
```env
|
||||||
|
SECRET_KEY=your-secret-key-here
|
||||||
|
DEBUG=false
|
||||||
|
ALLOWED_HOSTS=yourdomain.com,www.yourdomain.com
|
||||||
|
```
|
||||||
|
|
||||||
|
**Optional:**
|
||||||
|
```env
|
||||||
|
DATABASE_URL=postgres://user:pass@host:5432/db
|
||||||
|
EMAIL_HOST_USER=your-email@gmail.com
|
||||||
|
EMAIL_HOST_PASSWORD=your-app-password
|
||||||
|
STRIPE_SECRET_KEY=sk_live_your_stripe_key
|
||||||
|
```
|
||||||
|
|
||||||
|
**Platform-Specific:**
|
||||||
|
```env
|
||||||
|
# CapRover auto-detection
|
||||||
|
CAPROVER_GIT_COMMIT_SHA=auto-set-by-caprover
|
||||||
|
|
||||||
|
# Dokploy auto-detection
|
||||||
|
DOKPLOY_PROJECT_NAME=your-project-name
|
||||||
|
```
|
||||||
|
|
||||||
|
## Key Application Features
|
||||||
|
|
||||||
|
### Authentication System
|
||||||
|
- Custom User model with email verification
|
||||||
|
- Password reset functionality
|
||||||
|
- User wallet balance tracking
|
||||||
|
- Session management with security headers
|
||||||
|
|
||||||
|
### Payment Integration
|
||||||
|
- Stripe checkout for agent executions
|
||||||
|
- Wallet balance system
|
||||||
|
- Transaction logging
|
||||||
|
- Webhook handling for payment confirmations
|
||||||
|
|
||||||
|
### Agent Marketplace
|
||||||
|
- Category-based organization
|
||||||
|
- Search and filtering capabilities
|
||||||
|
- Dynamic form generation based on agent schemas
|
||||||
|
- Execution history tracking
|
||||||
|
|
||||||
|
### Security Features
|
||||||
|
- CSRF protection with trusted origins
|
||||||
|
- Rate limiting on critical endpoints
|
||||||
|
- Security headers (CSP, XSS protection)
|
||||||
|
- Input validation and sanitization
|
||||||
|
- Error handling with custom error pages
|
||||||
|
|
||||||
|
## Troubleshooting Common Issues
|
||||||
|
|
||||||
|
### Dokploy 404 Errors
|
||||||
|
If getting 404 errors on Dokploy:
|
||||||
|
1. Ensure `ALLOWED_HOSTS` includes the Dokploy domain
|
||||||
|
2. Check that port 3000 is correctly configured
|
||||||
|
3. Verify health check endpoint `/health/` is accessible
|
||||||
|
4. Use debug configuration temporarily: `Dockerfile.dokploy.debug`
|
||||||
|
|
||||||
|
### Database Issues
|
||||||
|
- SQLite is used for development (no setup required)
|
||||||
|
- PostgreSQL for production (requires `DATABASE_URL`)
|
||||||
|
- Run migrations after deployment: `python manage.py migrate`
|
||||||
|
|
||||||
|
### Static Files Problems
|
||||||
|
- Ensure `python manage.py collectstatic` runs during build
|
||||||
|
- WhiteNoise handles static file serving in production
|
||||||
|
- Check `STATIC_ROOT` and `STATICFILES_DIRS` configuration
|
||||||
|
|
||||||
|
### Agent Loading Issues
|
||||||
|
- Agent configs are cached for performance
|
||||||
|
- Clear cache during development: `AgentFileService.clear_cache()`
|
||||||
|
- Check JSON syntax in agent configuration files
|
||||||
|
- Ensure required fields are present in agent schemas
|
||||||
|
|
||||||
|
## Important File Locations
|
||||||
|
|
||||||
|
- **Main settings**: `netcop_hub/settings.py`
|
||||||
|
- **URL configuration**: `netcop_hub/urls.py`
|
||||||
|
- **Agent service**: `agents/services.py`
|
||||||
|
- **Health check**: `core/views.py` (health_check_view)
|
||||||
|
- **Error handlers**: `core/error_views.py`
|
||||||
|
- **Production startup**: `start-dokploy.sh`
|
||||||
|
|
||||||
|
This Django application is optimized for containerized deployment with focus on AI agent marketplace functionality, file-based configuration management, and production-ready security features.
|
||||||
@ -1,16 +1,16 @@
|
|||||||
{
|
{
|
||||||
"name": "quantum-tasks-ai",
|
"name": "quantum-tasks-ai",
|
||||||
"type": "dockerfile",
|
"type": "dockerfile",
|
||||||
"dockerfile": "./Dockerfile.dokploy.debug",
|
"dockerfile": "./Dockerfile.dokploy",
|
||||||
"port": 3000,
|
"port": 3000,
|
||||||
"healthCheck": "/health/",
|
"healthCheck": "/health/",
|
||||||
"buildArgs": {},
|
"buildArgs": {},
|
||||||
"buildOptions": ["--no-cache"],
|
"buildOptions": ["--no-cache"],
|
||||||
"env": {
|
"env": {
|
||||||
"PYTHONUNBUFFERED": "1",
|
"PYTHONUNBUFFERED": "1",
|
||||||
"DEBUG": "true",
|
"DEBUG": "false",
|
||||||
"SECRET_KEY": "debug-key-change-in-production-123456789",
|
"SECRET_KEY": "production-key-change-this-123456789",
|
||||||
"ALLOWED_HOSTS": "website-quantumtaskai-wrczik-cc50ac-31-97-62-205.traefik.me,localhost,127.0.0.1,*",
|
"ALLOWED_HOSTS": "website-quantumtaskai-wrczik-cc50ac-31-97-62-205.traefik.me,*",
|
||||||
"DOKPLOY_PROJECT_NAME": "quantum-tasks-ai"
|
"DOKPLOY_PROJECT_NAME": "quantum-tasks-ai"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user