One command to generate a production-ready Django REST backend
Project description
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.
🛠️ Technology Stack
⭐ Star us on GitHub — your support motivates us a lot! 🙏😊
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
.envfiles, 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
Dockerfileanddocker-compose.ymlfor 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.pyand automatically generated.envfile. - 📝 Swagger API Ready: Instant API documentation with
drf-yasgso 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
.gitignoreso 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
🚩 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/orai-apps/in their own folders next to the backend. - Simplified Orchestration: Any new service can be integrated into the root
docker-compose.ymland CI/CD pipelines, ensuring your entire ecosystem remains easy to deploy in the cloud.
🤝 Contribution
We welcome contributions!
- Fork the repo.
- Clone it clearly.
- Install dependencies:
uv syncorpip install -e . - Add a new generator in
one_click_drf/generators.pyor new templates inone_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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file one_click_drf-0.1.0.tar.gz.
File metadata
- Download URL: one_click_drf-0.1.0.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3606befd513628db873a5856b6026f70eca4974bb021519cc5175d9d2c0bd103
|
|
| MD5 |
3c7db26a46809a0d55b86421ac86373e
|
|
| BLAKE2b-256 |
29991fc3846020ed275f274d028e2151a9c1202326b1de2fe5d5b1d38644fcd7
|
File details
Details for the file one_click_drf-0.1.0-py3-none-any.whl.
File metadata
- Download URL: one_click_drf-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17fcfc87f6fe407ac8d8232276f87b3fbd7a7cc6185ee781aaff969875132d40
|
|
| MD5 |
4f48c85263d45a7c10fd879315d04e07
|
|
| BLAKE2b-256 |
66932c22b5fb3c6fc750c121078386765e1cfcdbb5a81a8a106d46e420660ebf
|