Skip to main content

One command to generate a production-ready Django REST backend

Project description

heading image

One Click DRF (OCD) 🚀

বাংলায় README ফাইলটি পড়ে দেখুন এখানে (README.bn.md)

One Click DRF is a powerful CLI tool designed to bootstrap production-ready Django REST Framework projects in seconds.

PyPI version License GitHub Stars PyPI Downloads

🛠️ Technology Stack

Python Django Docker Terraform Ansible GitHub Actions Nginx

Coming Soon

Kubernetes Prometheus Grafana Azure Google Cloud

Star us on GitHub — your support motivates us a lot! 🙏😊

Follow Shemanto Sharkar Share on LinkedIn


Stop copy-pasting code from old projects. Start with a solid foundation.

🌟 The Story Behind One Click DRF

Every time a new project starts at the office, I see a familiar cycle: developers need to start everything from scratch, from ground zero, through repetitive and manual work like this:

  • Repetitive Installations: Manually installing djangorestframework, django-cors-headers, drf-yasg(Swagger), and other essential packages every single time.
  • Settings Fatigue: Manually tweaking settings, creating .env files, and mapping them to variables.
  • The Hunt: Going to GitHub just to find a standard Python .gitignore.
  • Human Error: Forgetting something critical—like CORS settings—only to realize it hours later when the frontend developer can't connect.
  • Confidence Gap: Even after hours of setup, no one is 100% sure if the environment is truly "perfect" or "production-ready."

One Click DRF was born to solve this. It automates these repetitive tasks and guarantees a battle-tested, production-ready foundation in seconds. No more copy-pasting, no more forgotten settings—just one command to start building what actually matters.

🚀 What you get with ocd

When you initialize a project with ocd, you’re not just getting a folder—you’re getting a full production environment:

  • 🐳 Docker Ready: Multi-stage Dockerfile and docker-compose.yml for development and production.
  • ⚙️ CI/CD (GitHub Actions): Pre-configured workflows for automated testing, linting, and deployment.
  • 🏗️ Infrastructure as Code (IaC): Terraform templates to manage your cloud resource effortlessly.
  • ☁️ AWS Deployment Ready: Built-in configurations to deploy your backend to AWS with confidence.
  • 📊 Monitoring & Observability: Integrated Prometheus and Grafana setup to keep an eye on your app's health.
  • 🛠️ Production Settings & .env: Professionally split settings.py and automatically generated .env file.
  • 📝 Swagger API Ready: Instant API documentation with drf-yasg so you're ready to test immediately.
  • 📂 Organized Apps Folder: A clean architecture where all your Django apps live in a dedicated apps/ directory.
  • 🔒 Standard .gitignore: A pre-configured, standard Python .gitignore so you don't have to find one.
  • 🚀 GitHub Integration: Option to automatically initialize a git repo and push to a new GitHub repository in one go.

📦 Installation

Since one-click-drf is a CLI tool, it is recommended to install it globally using uv:

uv tool install one-click-drf

If your system doesn't have uv yet, follow the installation guide here.

Alternatively, you can use pip:

pip install one-click-drf

🚀 Usage

Initialize a new project

ocd init myproject

This creates a new folder myproject with a production-ready structure.

Initialize in current directory

ocd init .

Enable Optional Features

You can mix and match flags:

ocd init myproject --docker --ci-cd

Or enable everything:

ocd init myproject --all

Check Version

ocd --version
# or
ocd version

Keep Your Package Updated

ocd update

🚩 CLI Flags

Flag Description
--docker Adds Dockerfile and docker-compose.yml
--ci-cd Adds GitHub Actions workflow for testing & linting
--iac Adds Terraform skeleton for AWS
--observability Adds Prometheus configuration
--all Enables all above features

📂 Project Structure

We follow a clean, modular structure where the Django backend is isolated in its own directory, and infrastructure/deployment files are organized at the root:

project-root/
├── backend/              # Django backend source code
│   ├── core/             # Project configuration (settings.py, urls.py, etc.)
│   ├── apps/             # Your Django apps live here
│   ├── manage.py         # Django management CLI
│   ├── .env              # Environment variables
│   ├── .gitignore        # Backend-specific ignore rules
│   ├── Dockerfile        # Backend container definition
│   ├── erd.sh            # ERD generation utility
│   └── requirements/     # Dependencies split (base, dev, prod)
├── nginx/                # Nginx proxy configuration
├── .github/              # CI/CD (GitHub Actions workflows)
├── infra/                # Infrastructure as Code (Terraform & Ansible)
├── monitoring/           # Observability (Prometheus/Grafana)
├── docker-compose.yml    # Root orchestration for all services
└── DEVELOPMENT_GUIDE.md  # Detailed guide to get started

🚀 Built for the Future (Extensibility)

This structure is intentionally designed for scaling into a full-stack or microservices architecture:

  • Full-Stack Ready: Need a frontend? Simply add a frontend/ folder (React, Next.js, Vue, etc.) at the root.
  • Microservices/AI Ready: You can easily plug in other services like ml-service/ or ai-apps/ in their own folders next to the backend.
  • Simplified Orchestration: Any new service can be integrated into the root docker-compose.yml and CI/CD pipelines, ensuring your entire ecosystem remains easy to deploy in the cloud.

🤝 Contribution

We welcome contributions!

  1. Fork the repo.
  2. Clone it clearly.
  3. Install dependencies: uv sync or pip install -e .
  4. Add a new generator in one_click_drf/generators.py or new templates in one_click_drf/templates/.

⚙️ Configuration

On first run, ocd will ask for your GitHub and DockerHub usernames. These are saved in ~/.config/one-click-drf/config.toml so you don't have to type them again.


Back to Top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

one_click_drf-1.1.5.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

one_click_drf-1.1.5-py3-none-any.whl (43.6 kB view details)

Uploaded Python 3

File details

Details for the file one_click_drf-1.1.5.tar.gz.

File metadata

  • Download URL: one_click_drf-1.1.5.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for one_click_drf-1.1.5.tar.gz
Algorithm Hash digest
SHA256 54b51b3f693373ef5b4c682a6c184fdea43fdcc08b987dfe02a4b14575ab498a
MD5 121aff2eef39577f72ee1170d92faff2
BLAKE2b-256 59afb83973095171fff48116a2a0f3e2b72c7305a6c5a809eba54e2d0eb2ebd4

See more details on using hashes here.

File details

Details for the file one_click_drf-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: one_click_drf-1.1.5-py3-none-any.whl
  • Upload date:
  • Size: 43.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for one_click_drf-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 70ca3316969063dbcad1215f96306363a753bd2aab486e52bb81ceef999d37df
MD5 5f1155f8e732e28c150d988551de4520
BLAKE2b-256 8a156a7c68e1d9164e5172c0778f01fc04e04eac317326b2ec96ff0e629fafec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page