…
2025-10-29 13:01:01 +05:45

djinit

PyPI did not allow the original name, so the package is released as djinitx

PyPI Django Python License

A fast, interactive CLI to bootstrap a modern, production‑ready Django project in minutes — featuring split settings, DRF and JWT integration, OpenAPI docs, CORS, static file handling via WhiteNoise, Postgres‑friendly configuration, CI/CD templates, deployment helpers, and battle‑tested defaults that deliver a polished developer experience out of the box.

  • ✨ Split settings: settings/base.py, settings/development.py, settings/production.py
  • 🧱 Optional nested apps layout (e.g., apps/)
  • 🧩 App scaffolding: URLs, serializers, routes
  • 🔗 Project URLs wired automatically
  • 🧰 Utility files: .gitignore, README.md, .env.sample, requirements.txt, pyproject.toml
  • 🚀 Deploy helpers: Justfile, Procfile, runtime.txt
  • 🛠️ CI/CD: GitHub Actions and/or GitLab CI
  • 🎨 Polished UX with rich

Installation

Using pipx (recommended):

pipx install djinitx

Using pip:

pip install djinitx

Using uv:

uv tool install djinitx

From source:

git clone https://github.com/S4NKALP/djinit
cd djinit
pip install -e .

Requirements: Python 3.13+

Quick start

Run the interactive setup:

djinit setup
# or
dj setup

Prompts include:

  • Project directory
  • Django project name (used by django-admin startproject)
  • Apps layout (flat vs nested package like apps/)
  • App names (comma‑separated)
  • CI/CD choice (GitHub, GitLab, both, none)
  • Database config preference (DATABASE_URL vs individual params)

Commands

  • djinit setup or dj setup — Launch the interactive project generator
  • djinit app <names> or dj app <names> — Create one or more Django apps in an existing project
    • Examples:
      • djinit app users or dj app users
      • djinit app users,products,orders or dj app users,products,orders
      • djinit app users products orders or dj app users products orders
  • djinit secret [--count N] [--length L] or dj secret [--count N] [--length L] — Print random Django SECRET_KEY values
    • Example: djinit secret --count 5 --length 50

What gets generated

  • Django project and apps, then structure validation
  • Settings package and split settings
  • Base/development/production settings
  • Utility files
  • App files: urls.py, serializers.py, routes.py
  • Project urls.py (auto‑includes your apps)
  • Updated wsgi.py, asgi.py, manage.py
  • Justfile, Procfile, runtime.txt
  • CI/CD workflows (per your selection)

Output highlights

  • config/settings/ → __init__.py, base.py, development.py, production.py
  • apps/<app>/ → urls.py, serializers.py, routes.py
  • Project root → .gitignore, README.md, .env.sample, requirements.txt, pyproject.toml, Justfile, Procfile, runtime.txt
  • CI/CD → .github/workflows/ and/or .gitlab-ci.yml

Note: If you choose a nested apps package (e.g., apps), imports and INSTALLED_APPS entries are configured accordingly.

Included packages (by default)

Generated requirements.txt includes:

  • Django
  • python-dotenv
  • django-jazzmin
  • djangorestframework
  • djangorestframework-simplejwt
  • drf-spectacular
  • django-cors-headers
  • whitenoise
  • psycopg2-binary
  • gunicorn
  • dj-database-url (when you opt into DATABASE_URL)

These give you a ready‑to‑use stack with DRF, JWT auth, OpenAPI schema generation, CORS, static files in production, and Postgres support.

Environment and database

  • A .env.sample is generated to get you started.
  • If you opt into DATABASE_URL, production.py expects an environment variable like: postgres://user:password@host:port/database

Contributing

Contributions are welcome! Please open an issue for bugs/ideas. PRs with clear descriptions are appreciated.

Acknowledgments

  • Django and the Django community
  • Jinja2
  • rich
  • click
  • ruff

License

MIT © Sankalp Tharu

V0.3.9
Latest
2026-10-26 14:09:20 +00:00
Languages
Python 100%