Skip to main content

FastAPI project scaffolder โ€” zero dependencies, one command.

Project description

๐Ÿ•Š๏ธ fullapi

FastAPI project scaffolder โ€” one command, full stack

PyPI Python License Downloads

Quick Start

pip install fullapi
fullapi new my_api --preset production
cd my_api && pip install -r requirements.txt
uvicorn main:app --reload

Visit http://localhost:8000/docs for auto-generated API documentation.

With Infrastructure

fullapi new my_api --full --db postgresql --docker --terraform
cd my_api
pip install -r requirements.txt
fullapi docker build
fullapi docker push
fullapi terraform apply

Commands

# Interactive mode
fullapi new my_api

# Use a preset
fullapi new my_api --preset production

# Add components
fullapi add router Product
fullapi add model Order

# Check project health
fullapi doctor

# List presets
fullapi preset list

# Terraform operations
fullapi terraform init
fullapi terraform plan
fullapi terraform apply
fullapi terraform destroy

# Docker operations
fullapi docker build
fullapi docker push

# Scaling
fullapi scale up
fullapi scale down
fullapi scale set medium
fullapi scale status

Presets

Preset Description
production Full setup: PostgreSQL + auth + Docker + Redis + middleware + logging
microservice Lightweight: SQLite + Docker + middleware + logging
docker-ready Full mode with PostgreSQL + Docker + logging
minimal Bare essentials, nothing else

Create custom presets in ~/.fullapi/presets.json

CLI Flags

fullapi new my_api [OPTIONS]

OPTIONS:
  --basic              Minimal structure
  --full               Production-ready structure
  --db TYPE            none | sqlite | postgresql | mysql
  --auth               JWT authentication
  --docker             Docker + docker-compose
  --redis              Redis caching
  --middleware         CORS, rate limiting, security headers
  --logging            Structured logging
  --terraform          Terraform infrastructure (AWS, GCP, Azure)
  --template PATH      Custom template directory
  --preset NAME        Use a preset configuration

Features

Zero Dependencies โ€” Pure Python stdlib
Instant Setup โ€” Complete project in seconds
Production Ready โ€” Auth, Docker, DB migrations, caching
Cloud Infrastructure โ€” Terraform for AWS, GCP, Azure
Container Ops โ€” Build and push Docker images
Auto Scaling โ€” Scale infrastructure with simple commands
Extensible โ€” Add routers/models to existing projects
Health Checks โ€” fullapi doctor validates structure
Presets โ€” Save common configurations
Custom Templates โ€” Bring your own boilerplate

What Gets Created

Basic Mode

my_project/
โ”œโ”€โ”€ main.py
โ”œโ”€โ”€ routers/health.py
โ”œโ”€โ”€ schemas/base.py
โ”œโ”€โ”€ core/config.py
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ .fullapi.json

Full Mode (--db postgresql --auth --docker --terraform)

my_project/
โ”œโ”€โ”€ main.py
โ”œโ”€โ”€ routers/
โ”‚   โ”œโ”€โ”€ health.py
โ”‚   โ””โ”€โ”€ users.py
โ”œโ”€โ”€ models/user.py
โ”œโ”€โ”€ schemas/user.py
โ”œโ”€โ”€ crud/user.py
โ”œโ”€โ”€ core/
โ”‚   โ”œโ”€โ”€ config.py
โ”‚   โ””โ”€โ”€ security.py
โ”œโ”€โ”€ db/session.py
โ”œโ”€โ”€ alembic/
โ”‚   โ”œโ”€โ”€ env.py
โ”‚   โ””โ”€โ”€ versions/
โ”œโ”€โ”€ terraform/
โ”‚   โ”œโ”€โ”€ main.tf
โ”‚   โ”œโ”€โ”€ variables.tf
โ”‚   โ”œโ”€โ”€ outputs.tf
โ”‚   โ”œโ”€โ”€ terraform.tfvars
โ”‚   โ””โ”€โ”€ README.md
โ”œโ”€โ”€ tests/test_main.py
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ docker-compose.yml
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ .env.example
โ””โ”€โ”€ .fullapi.json

Examples

# Start with a preset
fullapi new api --preset production

# Customized setup
fullapi new api --full --db mysql --auth --redis --middleware

# Basic API
fullapi new api --basic

# With cloud infrastructure
fullapi new api --full --db postgresql --docker --terraform

# Custom template
fullapi new api --template ./my_template

Infrastructure Management

Deploy your FastAPI app to AWS, GCP, or Azure with built-in Terraform support:

# Create project with infrastructure
fullapi new myapi --full --db postgresql --docker --redis --terraform

# Build and push Docker image
cd myapi
fullapi docker build
fullapi docker push

# Deploy to cloud
fullapi terraform init
fullapi terraform plan
fullapi terraform apply

# Scale resources
fullapi scale up              # Increase instance size
fullapi scale down            # Decrease instance size
fullapi scale set large       # Set specific size
fullapi scale status          # View current configuration

# Destroy infrastructure
fullapi terraform destroy

Supported Cloud Providers:

  • AWS (ECS Fargate, RDS, ElastiCache, ECR)
  • Google Cloud (Cloud Run, Cloud SQL, Memorystore, Artifact Registry)
  • Azure (Container Apps, Azure Database, Azure Cache, ACR)

Cost-Optimized Defaults:

  • Small: 1 vCPU, 2GB RAM (~$10-15/month)
  • Medium: 2 vCPU, 4GB RAM (~$25-35/month)
  • Large: 4 vCPU, 8GB RAM (~$60-80/month)

Contributing

  1. Keep it stdlib only โ€” no new dependencies
  2. Test your changes: pip install -e . && fullapi new test_project --full
  3. One feature per PR

License

MIT License โ€” see LICENSE

Created by Sahil Nayak

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

fullapi-1.1.0.tar.gz (55.2 kB view details)

Uploaded Source

Built Distribution

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

fullapi-1.1.0-py3-none-any.whl (54.6 kB view details)

Uploaded Python 3

File details

Details for the file fullapi-1.1.0.tar.gz.

File metadata

  • Download URL: fullapi-1.1.0.tar.gz
  • Upload date:
  • Size: 55.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for fullapi-1.1.0.tar.gz
Algorithm Hash digest
SHA256 288fe83bac2d0eac9ccd3a4dd760496e5c7e7cd68da7ac3f5cb4f919c060d644
MD5 6763923fba74fef3c8665f3aaa1545ad
BLAKE2b-256 bb9785deb47f418956f65845bed3f3f7bbdd059e3d4953ac0d237a6ff19403a7

See more details on using hashes here.

File details

Details for the file fullapi-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: fullapi-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 54.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for fullapi-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d8a82ab9ec91e39800599f196836270f447435705d8c13a5915093e550eb57ef
MD5 5dd39fe4f1fe52ad9c39107b8ecdbbdc
BLAKE2b-256 19593010dca1f400323fec80a957615a329faec3eb461d86488212c1f8506ce0

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