Commit Graph

16 Commits

Author SHA1 Message Date
db923db446 Fix Dokploy port configuration with unique Traefik labels
Based on DOKPLOY.md documentation:
- Update Traefik router/service names to be unique (dt-netcoptech-prod)
- This prevents conflicts with other services on the same Dokploy server
- Add alternative compose file without Traefik labels for Domain UI method
- Both approaches should resolve port/routing issues

Try Method A first (current file), then Method B if needed.
2025-09-11 18:24:01 +05:30
5845f9ee13 Add health check endpoint for debugging
- Add /health/ endpoint that returns JSON without templates
- Shows Django settings, file existence, and configuration
- Use this to test if Django is running: https://dt.netcoptech.com/health/
- Helps diagnose if issue is templates, static files, or server config
2025-09-11 18:19:41 +05:30
7f9093741b Fix missing Tailwind CSS file causing 500 error
- Build Tailwind CSS locally to create missing styles.css file
- Improve Docker build process to properly install and build Tailwind
- Update build.py settings to include all required apps
- Remove debugging from entrypoint script

The 500 error was caused by missing css/dist/styles.css file that the
{% tailwind_css %} template tag was trying to load. Now the file exists
and the Docker build process ensures it's created during build.
2025-09-11 18:12:07 +05:30
23f9778964 Add debugging for environment variables and Django settings
- Fix production.py settings to properly read environment variables with defaults
- Add debug_settings management command to troubleshoot environment variable issues
- Add debugging output to entrypoint.sh to see what settings are loaded
- This will help identify why ALLOWED_HOSTS and CSRF_TRUSTED_ORIGINS may not be working
2025-09-11 18:04:23 +05:30
31ab604b7c Add CSRF_TRUSTED_ORIGINS support for domain configuration
- Add CSRF_TRUSTED_ORIGINS setting to read from environment variable
- Update docker-compose.dokploy.yml with correct domain dt.netcoptech.com
- Update dokploy.json with proper domain configuration
- Fix 500 error by supporting CSRF trusted origins for production domains
2025-09-11 18:02:06 +05:30
aa94261cb8 Skip Tailwind build at runtime to avoid npm permission warnings
Since Tailwind CSS is already built during Docker build, we don't need to rebuild
it at runtime which avoids npm permission issues with Docker volumes.
2025-09-11 17:50:23 +05:30
1567b84104 Fix Dokploy deployment issues with static files
- Add build-time static file collection to handle Docker volume permission issues
- Create django_project/settings/build.py for minimal build-time settings
- Enhance entrypoint.sh with graceful fallback when collectstatic fails
- Improve Dockerfile permissions and add Tailwind build during Docker build
- Add WARP.md with comprehensive development guidance
- Include test-docker-build.sh script for local testing
- Update docker-compose.dokploy.yml with build optimizations

Fixes permission denied errors during static file collection on Dokploy deployments.
2025-09-11 17:47:15 +05:30
Django Template
04223730d3 Refactor Docker configuration to follow 2025 industry best practices
## Major Refactoring Based on Research:

###  **Removed Over-Engineered Approach**:
- Removed `gosu` dependency (unnecessary complexity)
- Removed complex user switching in entrypoint
- Removed root operations during runtime
- Simplified permission management

###  **Implemented 2025 Best Practices**:

#### 1. **Simplified Dockerfile Pattern**:
- Create directories with proper ownership in build stage
- Set `USER django` once and keep it throughout
- No complex user switching or runtime permission changes
- Clean, standard Docker layering

#### 2. **Industry-Standard Entrypoint**:
- Simple script that runs as non-root user
- Standard `exec "$@"` pattern
- No permission operations during runtime
- Follows container orchestration best practices

#### 3. **Proper Architecture Documentation**:
- Django/Gunicorn for dynamic content only
- Nginx serves static files (6000+ req/sec vs Django's much lower)
- Non-root user throughout for security
- Clean service separation

## Benefits of This Approach:
-  **Security**: Non-root user throughout application lifecycle
-  **Simplicity**: Standard Docker patterns, no complex scripts
-  **Performance**: Nginx handles static files efficiently
-  **Maintainability**: Follows industry conventions
-  **Reliability**: Proven patterns used by major companies

## Research Sources:
Based on 2025 best practices from:
- TestDriven.io Django Docker patterns
- Better Stack community guides
- Official Django deployment documentation
- Docker security best practices

This follows the KISS principle while maintaining production-grade security and performance.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 16:32:02 +05:30
Django Template
c4a0769185 Comprehensive fix for Docker static files permission issues
## Problem Analysis:
- Static files collection failing with permission errors in Docker containers
- Non-root user cannot create directories in container filesystem
- Previous fix didn't handle runtime permission management properly

## Comprehensive Solution:

### 1. Enhanced Dockerfile:
- Added `gosu` package for secure user switching
- Removed premature USER directive - run setup as root first
- Improved directory permissions with proper chmod/chown

### 2. Robust Entrypoint Script:
- Runs initial setup (migrations, static collection) as root
- Explicitly sets directory permissions for static/media files
- Uses `gosu` to securely switch to django user for main application
- Ensures proper ownership before application starts

### 3. Updated Docker Compose Volume:
- Changed volume mapping to use ../files/staticfiles (more descriptive)
- Ensures persistent storage for static files across deployments

## Security & Best Practices:
-  Maintains security with non-root application runtime
-  Handles setup operations with necessary root permissions
-  Uses gosu for secure user switching (better than su/sudo)
-  Explicit permission management for container directories

## Benefits:
- Resolves all static files permission errors
- Works reliably in containerized environments
- Maintains security best practices
- Compatible with Dokploy and other orchestration platforms

This should completely resolve the collectstatic permission issues.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 16:26:49 +05:30
Django Template
e1fd61561e Fix Docker static files permissions for production deployment
## Issue Fixed:
- Static files collection failing with permission error in Docker container
- Error: `PermissionError: [Errno 13] Permission denied: '/app/staticfiles/js'`
- Occurs when running `python manage.py collectstatic` in production

## Solution Applied:
1. **Enhanced Dockerfile**:
   - Create `/app/staticfiles` and `/app/media` directories explicitly
   - Set proper ownership with `chown -R django:django /app`
   - Ensures directories exist with correct permissions before user switch

2. **Improved entrypoint.sh**:
   - Added `mkdir -p` to ensure directories exist at runtime
   - Creates directories before attempting static files collection
   - Provides fallback if directories weren't created in Docker build

3. **Updated Documentation**:
   - Added troubleshooting section for static files permission error
   - Explains the fix and prevention methods

## Benefits:
-  Resolves Docker container permission issues
-  Works with non-root user (security best practice)
-  Handles both build-time and runtime directory creation
-  Maintains proper file ownership for Django operations

This should resolve the collectstatic permission error in Dokploy deployment.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 16:22:16 +05:30
Django Template
2c277d13f6 Fix Django logging configuration for Docker containers
## Issue Fixed:
- Django production logging was trying to write to `/var/log/django/django.log`
- This directory doesn't exist in Docker containers, causing deployment failures
- Error: `FileNotFoundError: [Errno 2] No such file or directory: '/var/log/django/django.log'`

## Solution:
- **Modified production.py**: Switched from file-based to console-only logging
- **Docker-friendly logging**: All logs now go to stdout/stderr for container compatibility
- **Dokploy integration**: Logs are now visible in Dokploy's log viewer
- **Added troubleshooting**: Updated DOKPLOY.md with this specific error and solution

## Benefits:
-  Works seamlessly with Docker containers
-  Integrates with Dokploy log viewing system
-  No file permissions or directory creation issues
-  Standard practice for containerized applications

This fixes the deployment failure identified in the Dokploy logs.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 16:19:38 +05:30
Django Template
07dd7b0e47 Add comprehensive Dokploy deployment configuration and guide
## New Files Added:
- **docker-compose.dokploy.yml** - Dokploy-optimized compose file with:
  - dokploy-network integration for all services
  - Traefik labels for SSL and domain routing
  - Persistent volumes using ../files/ directory
  - Production-ready Django, PostgreSQL, and Redis configuration

- **DOKPLOY.md** - Complete step-by-step deployment guide including:
  - 10-step deployment process with exact form fields
  - Domain configuration and DNS setup
  - Environment variables for production
  - Post-deployment Django setup commands
  - Comprehensive troubleshooting section
  - Production checklist and monitoring guidance

## Key Features:
- **Production-ready** configuration with SSL certificates
- **Persistent data** storage across deployments
- **Detailed troubleshooting** for common issues
- **Copy-paste configurations** for immediate use
- **Security best practices** implemented

This enables one-click deployment of the Django template on any Dokploy server with professional-grade configuration.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 15:46:12 +05:30
Django Template
f5e6d0d560 Add comprehensive QUICKSTART.md guide for new projects
This guide enables developers to get started with the Django template in just 5 minutes:

## Features:
- **5-Minute Setup Process** - Clone, configure, and run steps
- **Copy-Paste Commands** - Ready-to-execute terminal commands
- **Essential Customizations** - Project name, styling, business logic
- **Developer Commands** - Reference for daily development tasks
- **Troubleshooting** - Solutions for common setup issues

## Target Audience:
Developers who want to immediately start building without reading extensive documentation first.

## Structure:
- Prerequisites and setup steps
- Database and user account creation
- Tailwind CSS development server setup
- First customization checklist
- Common next steps and commands
- Troubleshooting section

This makes the Django template even more accessible for rapid project initialization.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 15:24:25 +05:30
Django Template
cde04c8dbe Migrate from Bootstrap to Tailwind CSS with comprehensive UI improvements
This commit represents a complete migration from Bootstrap to Tailwind CSS with modern, professional UI design:

## Major Changes:
- **Tailwind CSS Integration**: Added django-tailwind package with Node.js 18.x support
- **UI Redesign**: Complete template migration to modern black/white theme
- **Responsive Design**: Mobile-first approach with improved navigation
- **Database Enhancement**: Added DATABASE_URL support for external services (Neon, Supabase, Railway, etc.)
- **Documentation**: Updated README.md and DEPLOYMENT.md with Tailwind and database guidance

## Technical Improvements:
- Hot-reloading during development with django-browser-reload
- Production-optimized CSS builds with purging and minification
- Professional card layouts and components
- Sticky footer implementation
- Mobile-responsive navigation with hamburger menu
- Modern alert/message styling

## Files Modified:
- All HTML templates converted to Tailwind utility classes
- Added theme app with Tailwind configuration
- Updated Docker configuration for Node.js support
- Enhanced settings for third-party database services
- Comprehensive documentation updates

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 15:10:35 +05:30
Django Template
85f68a8df9 Complete authentication system with modern UI
- Add modern authentication templates with black/white theme
- Implement email/password and Google OAuth login/signup
- Configure SMTP email delivery for verification emails
- Create clean, rectangular authentication cards
- Remove Facebook integration, keep Google only
- Add responsive auth design with reduced font sizes
- Fix Django settings for production-ready email backend
- Update Google OAuth credentials and callback URLs
- Generate secure SECRET_KEY for production

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 12:26:22 +05:30
Django Template
4bbc56a08f Initial commit: Django boilerplate with authentication, Docker, and Dokploy support
 Features:
- Complete Django project with authentication
- Email/password and social login (Google, Facebook)
- Role-based access control (admin, staff, user)
- Docker and Docker Compose setup
- Production-ready configuration
- Static file handling with WhiteNoise
- PostgreSQL database integration
- Comprehensive documentation
- GitHub CI/CD workflows
- Dokploy deployment configuration

🚀 Ready for deployment on Dokploy, Heroku, Railway, and other platforms
2025-09-11 09:36:55 +05:30