A professional Python project bootstrapper CLI supporting multiple frameworks.
Project description
Stop setting up boilerplate from scratch. Launch your next production-ready Python project in seconds with zero configuration.
โจ Features
- ๐ป Interactive CLI Interface โ Elegant, user-friendly interactive prompt powered by
questionaryand styled withrich. - ๐ฆ Package Manager Selection โ Choose between
pip,uv, orPoetryto manage project dependencies automatically. - โก Framework Support โ FastAPI, Flask, Django, Litestar, Sanic, and Masonite templates out-of-the-box.
- ๐๏ธ Professional Backend Structure โ Generate comprehensive production-ready layouts that separate configuration, routing, schemas, and databases.
- ๐ Authentication Integration โ Pre-configured JWT or OAuth2 flows for FastAPI, Flask, and Django backends.
- ๐๏ธ Interactive Database Auto-Setup โ Choose SQLite, PostgreSQL, or MySQL; dependencies and environment variables get configured automatically.
- โ๏ธ Frontend Pairing โ Bootstrap a Vite React/Vue 3/Svelte frontend alongside your backend automatically.
- ๐ค AI-Powered Templates โ Initialize custom structures based on conversational prompts using Google Gemini.
- ๐ณ Docker Ready โ Fully-featured multi-stage
Dockerfileconfigurations included automatically. - โ๏ธ Zero Boilerplate โ Get linting, testing, and dependency configurations setup automatically.
๐ฆ Installation
To get started, install setupci from PyPI using pip:
pip install setupci
๐ Keep Up-to-date
Upgrade to the latest version to get the newest features and templates:
pip install --upgrade setupci
๐ Usage
Navigate to your workspace and initialize a new project in the current directory (or specify a subfolder):
setupci init .
๐ Interactive Workflow
Once the CLI starts, it walks you through two simple configuration choices:
- Framework Selection โ Choose between
FastAPI,Flask,Django, orGeneral Python. - Project Type Selection โ
- Backend: Generates a professional, production-ready structure complete with databases, docker files, environment separation, and CRUD examples.
- Simple: A streamlined, minimal boilerplate template ideal for simple scripts, quick spikes, or lightweight integrations.
- Database Selection (Only for Backend types) โ Choose between
SQLite,PostgreSQL, orMySQL. The script auto-injects drivers and sets up.envconnection strings.
๐ป Terminal Demo
Below is an example of what running setupci init looks like in your terminal:
$ setupci init .
โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโ โโโ โโโ โโโโโโโโโโโโโโ โโโ
โโโโโโโโโโโโโโ โโโ โโโ โโโโโโโโโโ โโโ โโโ
โโโโโโโโโโโโโโโโ โโโ โโโโโโโโโโโโ โโโโโโโโโโโ
โโโโโโโโโโโโโโโโ โโโ โโโโโโโ โโโ โโโโโโโโโโ
Python Project Bootstrapper โข v0.1.2
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ Getting Started โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Answer a few questions and your project structure will be ready in seconds. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
? Which framework would you like to use?
โ FastAPI โ Async Python API framework
โ Flask โ Lightweight micro-framework
โ Django โ Full-stack web framework
โ General Python โ Library, script, or CLI project
? Which project type would you like?
โ Backend โ Professional structure, Docker, env config
โ Simple โ Minimal boilerplate, quick start
? Which database would you like to configure?
โ SQLite โ Lightweight, file-based, zero setup
โ PostgreSQL โ Robust, enterprise SQL database
โ MySQL โ Popular relational SQL database
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ Project Summary โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Framework: FastAPI โ
โ Type: Backend โ
โ Database: SQLite โ
โ Location: E:\my-new-project โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Generating project files...
โ Your FastAPI backend project is ready!
๐๏ธ Generated Structures
setupci designs clean layouts adhering to industry standards. Here is what gets generated:
โก FastAPI โ Backend
A clean modular design using Pydantic, SQLAlchemy, and dependency injection.
app/
โโโ main.py # App entrypoint with middleware, routing, & setup
โโโ core/
โ โโโ config.py # Settings management loading configs from .env using Pydantic
โโโ api/
โ โโโ router.py # Global API router aggregating separate endpoints
โ โโโ endpoints/
โ โโโ items.py # Implements complete mock CRUD endpoints (GET, POST, etc.)
โโโ models/
โ โโโ item.py # SQLAlchemy Database model definitions
โโโ schemas/
โ โโโ item.py # Pydantic schemas validating API payloads
โโโ db/
โโโ session.py # DB connection setup and SessionLocal generator
requirements.txt # Main API dependencies
Dockerfile # Multi-stage Docker build config
.env.example # Template database and system environment variables
๐ถ๏ธ Flask โ Backend
A structure implementing the flask factory pattern, Blueprints, and Flask-SQLAlchemy.
app/
โโโ __init__.py # Application factory setup & extension loading
โโโ config.py # Configuration classes (Development, Production)
โโโ api/
โ โโโ items.py # Blueprint definition mapping API routes
โโโ models/
โโโ item.py # Database model mapping using Flask-SQLAlchemy
wsgi.py # Entry point script to run the server
requirements.txt # Web server, Flask, and DB drivers
Dockerfile # Gunicorn-based production Docker setup
.env.example # Flask configurations template
๐ธ Django โ Backend
A modernized Django layout splitting apps, tracking settings with django-environ, and API-ready with DRF.
config/
โโโ settings.py # Core settings reading environment values from .env
โโโ urls.py # Main URL configurations
โโโ wsgi.py # WSGI entrypoint for web servers
โโโ asgi.py # ASGI entrypoint for async channels or servers
apps/
โโโ items/ # Pre-configured DRF API App
โโโ models.py # Sample DB model definitions
โโโ views.py # REST views implementing ModelViewSet
โโโ serializers.py # Serializers converting model data to JSON
โโโ urls.py # App-level routing definitions
manage.py # Django execution utility
requirements.txt # Django + DRF and dependencies
Dockerfile # Lightweight container setup for deployment
.env.example # Configurable Django secret key and DB environment settings
๐ General Python โ Backend
A standard workspace ready for library publication or tool development.
src/
โโโ __init__.py # Main package initializer
โโโ main.py # Main execution script
tests/
โโโ test_main.py # Standard pytest script
pyproject.toml # Modern setup configuration for packaging/publishing
README.md # Basic user guide for the created package
โ Why setupci?
Developers spend too much time repeating the same boilerplate setups. setupci bridges this gap:
- ๐ Saves Time: Avoid copying config files, writing database connections, or creating dockerfiles. Get to coding in 5 seconds.
- ๐ก๏ธ Production-Ready: Implements industry best-practices such as configuration-code separation, factory patterns, environment variables, and Docker containerization.
- ๐ฐ Beginner & Pro Friendly: Gives beginners a clear architecture to build on, and professionals a consistent, zero-fluff starter template.
๐บ๏ธ Roadmap
We are constantly improving setupci. Check out our planned roadmap:
- Database Scaffolding โ Auto-configure SQLite, PostgreSQL, or MySQL (MongoDB/others planned).
- Authentication Integration โ Bootstrap JWT/OAuth2 flows out-of-the-box.
- AI-Powered Templates โ Prompt-to-structure project initialization.
- Full-stack Support โ Pair backend frameworks with React, Vue, or Svelte frontends.
- Extended Frameworks โ Support for Litestar, Sanic, and Masonite.
- Extended Authentication โ Support for Auth0, Cognito, and Firebase Auth.
๐ค Contributing
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please see our CONTRIBUTING.md to understand details on submitting PRs, setting up local tests, and reporting bugs.
๐ License
Distributed under the MIT License. See LICENSE for more information.
๐ Links
- ๐ GitHub Repository: github.com/syed-mujtaba-stack/setupci
- ๐ฆ PyPI Package: pypi.org/project/setupci
- ๐ Issues & Requests: github.com/syed-mujtaba-stack/setupci/issues
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
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 setupci-0.2.0.tar.gz.
File metadata
- Download URL: setupci-0.2.0.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be76985d97f2193f979b8c075eb4bd6387cf09241b6b516b4e0378dd694f21b3
|
|
| MD5 |
7e51c87a8c4ee165ea413db9e3e96639
|
|
| BLAKE2b-256 |
b7becd1633d6ba239f3c83b88b29cf2cfe789e5e5181fe1b513edd9f6c287b6e
|
File details
Details for the file setupci-0.2.0-py3-none-any.whl.
File metadata
- Download URL: setupci-0.2.0-py3-none-any.whl
- Upload date:
- Size: 63.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fdd1449b990a37b45dbad03f3b894f49b0fd6207c4a0ffb52e82122b881479e
|
|
| MD5 |
6fd8eb69b4afdcf1687939501b82a535
|
|
| BLAKE2b-256 |
f53178402cb91208b28a8446a0990099ca680c5c2be3a50c9ca754fc5d026db8
|