feat(root): scaffold Django project with djinit

Add initial project skeleton using djinit to enable rapid development, CI integration, and deployment setup.

New Features
- Create .djinit with unified project structure and Tailwind/HTMX enabled.
- Add .env.sample with default Django, database, and frontend URLs.
- Generate comprehensive .gitignore covering Python, Django, OS, and secret files.
- Provide Procfile for Gunicorn web process and release migrations.
- Scaffold README.md with project overview and features.
- Add manage.py enhanced with environ for .env support.
- Initialize pyproject.toml with modern metadata and ruff linting config.
- Add requirements.txt mirroring dependencies.
- Include runtime.txt pinning Python 3.13.
- Update uv.lock to lock dependency versions.

Enhancements
- Upgrade to latest Django 6.0.5 and DRF ecosystem.
- Configure ruff with line-length 88 and isort settings.
- Use gunicorn with optimal worker configuration.
- Include dj-database-url and psycopg binary for robust PostgreSQL connectivity.

Bug Fixes
- None.
This commit is contained in:
sankalp committed 2026-05-27 23:15:10 +05:45
1 parent c461084ad7
commit 1095c6b6a7
11 files changed
+1164

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
# Procfile for .
# Used for deploying to PaaS platforms like Heroku, Railway, Render, etc.
# Web server process (using Gunicorn)
# Adjust workers based on your needs: (2 x CPU cores) + 1
web: gunicorn core.wsgi:application --bind 0.0.0.0:$PORT --workers 2 --timeout 120 --access-logfile - --error-logfile - --log-level info
# Alternative web server configurations (uncomment to use):
# web: gunicorn core.wsgi:application --bind 0.0.0.0:$PORT --workers 4 --threads 2 --timeout 120
# web: gunicorn core.wsgi:application --bind 0.0.0.0:$PORT --workers 2 --worker-class gevent --worker-connections 1000 --timeout 120
# Release task (runs migrations before deployment)
release: python manage.py migrate --noinput && python manage.py collectstatic --noinput
# Uncomment below to run scheduled tasks (if using Celery)
# worker: celery -A core worker --loglevel=info
# beat: celery -A core beat --loglevel=info
# Development server (for local testing with Foreman/Overmind)
# web: python manage.py runserver 0.0.0.0:$PORT