modern-django-starter/QUICK_DEPLOY.md
amitrana01 876ce06634 🧹 MAJOR CLEANUP: Remove all debugging files and confusion
 CLEANED FILES:
- Removed 5 duplicate docker-compose files → kept 1 working docker-compose.dokploy.yml
- Deleted debugging files: debug_settings.py, test-docker-build.sh, cookies.txt, entrypoint.sh
- Removed redundant docs: DOKPLOY.md, DEPLOYMENT.md, QUICKSTART.md, Dockerfile.simple
- Fixed all file references to use docker-compose.dokploy.yml consistently

📚 CLEAN DOCUMENTATION STRUCTURE:
- README.md: Overview with quick links to deployment guides
- QUICK_DEPLOY.md: 3-step deployment guide (zero code changes needed)
- DEPLOYMENT_CHECKLIST.md: Complete troubleshooting reference
- WARP.md: Developer/agent guidance

🎯 RESULT:
- Clean, confusion-free project structure
- Single source of truth for deployment
- Zero hardcoded values - everything uses environment variables
- Clone-and-deploy ready with minimal setup

The project is now production-ready and maintainable! 🚀
2025-09-11 19:19:40 +05:30

3.0 KiB

🚀 Quick Deploy Guide - Zero Changes Needed!

This Django template is designed to deploy without any code changes - just set environment variables!

Clone and Deploy in 3 Steps

Step 1: Clone Repository

git clone https://github.com/your-username/django-template.git
cd django-template

Step 2: Set Environment Variables in Dokploy

Set these 4 required variables in Dokploy environment tab:

DOMAIN_NAME=yourdomain.com
ALLOWED_HOSTS=yourdomain.com,www.yourdomain.com
CSRF_TRUSTED_ORIGINS=https://yourdomain.com
SECRET_KEY=your-secret-key-here

Optional variables:

DEBUG=False
SECURE_SSL_REDIRECT=True
GOOGLE_OAUTH2_CLIENT_ID=your-google-client-id
GOOGLE_OAUTH2_CLIENT_SECRET=your-google-client-secret

Step 3: Deploy

  1. Dokploy Compose Path: ./docker-compose.dokploy.yml
  2. Domain: Set in Dokploy UI (service=web, port=8000)
  3. Deploy 🚀

🎯 That's It! No Code Changes Required!

Default Values (works out-of-the-box for testing):

  • DOMAIN_NAME: localhost
  • ALLOWED_HOSTS: localhost,127.0.0.1
  • CSRF_TRUSTED_ORIGINS: http://localhost:8000
  • SECRET_KEY: Development key (change for production!)
  • DEBUG: True (change to False for production)

What Happens Automatically:

Database migrations run
User groups created (admin, staff, user)
Site configured with your domain
Social apps set up
Static files collected
Gunicorn starts serving your app

🔧 For Different Deployment Platforms

Included Database (Default)

  • Compose file: docker-compose.dokploy.yml
  • Database: Included PostgreSQL container
  • Storage: Docker volumes for persistence

External Database

  • Compose file: docker-compose.dokploy.yml + set DATABASE_URL
  • Examples: Neon, Supabase, Railway, etc.

🧪 Test Locally First (Optional)

# 1. Set environment variables
export DOMAIN_NAME=localhost
export ALLOWED_HOSTS=localhost,127.0.0.1
export SECRET_KEY=test-secret-key

# 2. Test with Docker
docker-compose -f docker-compose.dokploy.yml up

# 3. Visit http://localhost:8000

🎉 Environment Variable Examples

For myapp.com:

DOMAIN_NAME=myapp.com
ALLOWED_HOSTS=myapp.com,www.myapp.com
CSRF_TRUSTED_ORIGINS=https://myapp.com,https://www.myapp.com
SECRET_KEY=super-long-secret-key-generate-new-one
DEBUG=False
SECURE_SSL_REDIRECT=True

For app.example.org:

DOMAIN_NAME=app.example.org
ALLOWED_HOSTS=app.example.org
CSRF_TRUSTED_ORIGINS=https://app.example.org
SECRET_KEY=another-unique-secret-key
DEBUG=False
SECURE_SSL_REDIRECT=True

Why This Works

  • No hardcoded domains - everything uses environment variables
  • Sensible defaults - works locally without any setup
  • Production ready - just change a few env vars
  • Platform agnostic - works on Dokploy, Railway, Heroku, etc.

Clone ➜ Set 4 env vars ➜ Deploy ➜ Done! 🚀