Skip to main content

A professional Python project bootstrapper CLI supporting multiple frameworks.

Project description

setupci logo

Stop setting up boilerplate from scratch. Launch your next production-ready Python project in seconds with zero configuration.

PyPI version Tests status Python Versions License: MIT GitHub Stars Downloads


โœจ Features

  • ๐Ÿ’ป Interactive CLI Interface โ€” Elegant, user-friendly interactive prompt powered by questionary and styled with rich.
  • โšก FastAPI Support โ€” Instantly scaffold modern, high-performance, asynchronous REST API architectures.
  • ๐ŸŒถ๏ธ Flask Support โ€” Spin up lightweight, factory-pattern-based WSGI apps with pre-configured settings.
  • ๐ŸŽธ Django Support โ€” Initialize modular Django and Django REST Framework structures with pre-split apps folder.
  • ๐Ÿ General Python โ€” Setup clean general-purpose Python CLI, library, or script templates using modern pyproject.toml packaging.
  • ๐Ÿ—๏ธ Professional Backend Structure โ€” Generate comprehensive production-ready layouts that separate configuration, routing, schemas, and databases.
  • ๐Ÿ—„๏ธ Interactive Database Auto-Setup โ€” Choose SQLite, PostgreSQL, or MySQL; dependencies and environment variables get configured automatically.
  • ๐Ÿณ Docker Ready โ€” Fully-featured multi-stage Dockerfile configurations included automatically.
  • ๐Ÿ”‘ Environment Configured โ€” Out-of-the-box support for dotenv (.env and .env.example) parsing.
  • ๐Ÿ› ๏ธ CRUD Starter Templates โ€” Pre-written SQLAlchemy models, Pydantic schemas, and sample routers to let you write business logic immediately.
  • โš™๏ธ 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:

  1. Framework Selection โ€” Choose between FastAPI, Flask, Django, or General Python.
  2. 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.
  3. Database Selection (Only for Backend types) โ€” Choose between SQLite, PostgreSQL, or MySQL. The script auto-injects drivers and sets up .env connection 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, Masonite, and Pynecone.

๐Ÿค 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

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

setupci-0.1.3.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

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

setupci-0.1.3-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

Details for the file setupci-0.1.3.tar.gz.

File metadata

  • Download URL: setupci-0.1.3.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for setupci-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c3c2b6ec2b5bd27bccaa75c885dad5e4e02d2dd0f0288d0be0d4d82cdaf2b96f
MD5 aa98b09cfe065f835c64324e82cd2c4e
BLAKE2b-256 96d5e35ab656bd69cd9950469a5cff43e7389e8a04a4b08a3f8d7fc91bbf66f6

See more details on using hashes here.

File details

Details for the file setupci-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: setupci-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 44.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for setupci-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 48da319e6189ffec9b5a9146ff3d785d17e41090391f5b450c682bb9dc3febe1
MD5 03645df7fb0aeda29504904f61ba77b8
BLAKE2b-256 a46b3f1b9937d34c2c80495e35b12c9fae7cb2c7c86bbeb51484e19167297b78

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