Production-ready FastAPI project generator — scaffold monoliths, microservices, and AI backends with built-in logging, Docker, Kubernetes, Celery, CI/CD, and 30+ pluggable modules in seconds.
Project description
Fastix
Production-ready FastAPI project scaffolding for teams that want a usable starting point instead of an empty repo.
What Fastix Does
Fastix is a CLI package that generates FastAPI projects with opinionated defaults for application structure, local development, testing, deployment, and common platform integrations.
It is designed for two workflows:
- Bootstrap a new FastAPI codebase quickly.
- Evolve an existing Fastix-generated project with additional modules later.
Core Capabilities
- Scaffold monolith and microservices layouts.
- Generate optional Docker or Podman assets.
- Add PostgreSQL, MySQL, or MongoDB support.
- Add Redis, Kafka, or RabbitMQ messaging integrations.
- Add Celery or RQ workers, plus Celery Beat or Kubernetes CronJob scheduling.
- Generate Helm, Kustomize, or raw Kubernetes manifests.
- Include logging, testing, editor tooling, and task runner templates.
- Inspect project state and add supported modules incrementally after generation.
Installation
pip install fastix
For the interactive prompt flow:
pip install "fastix[interactive]"
Quick Start
Create a project interactively:
fastix init
Create a project non-interactively:
fastix init my_api \
--arch monolith \
--db postgres \
--queue redis \
--worker celery \
--container docker \
--k8s helm \
--logging api_logger \
--cicd gitlab_ci
Create a microservices workspace:
fastix init platform_api \
--arch microservices \
--services gateway,users,orders \
--protocol grpc \
--db postgres \
--queue redis \
--worker celery \
--container docker \
--k8s kustomize \
--dapr
CLI Commands
fastix init
Generates a new project from the selected architecture and module set.
Examples:
fastix init billing_api --db postgres --container docker
fastix init --arch microservices
fastix inspect
Shows the manifest and active modules for an existing Fastix project.
fastix inspect .
fastix add-module
Adds or switches a supported incremental module in an existing project.
fastix add-module dapr --path .
fastix add-module container.podman --path .
fastix add-module orchestration.helm --path .
fastix list-modules
Lists modules that can be safely added to an existing generated project.
fastix list-modules
fastix info
Prints the current supported architectures, transports, and tooling options.
fastix info
Supported Options
Architectures
monolithmicroservices
Databases
postgresmysqlmongodbnone
Messaging
rediskafkarabbitmqnone
Workers and Schedulers
- Workers:
celery,rq,none - Schedulers:
celery_beat,cronjob,none
Containers and Orchestration
- Containers:
docker,podman,none - Orchestration:
helm,kustomize,raw_manifests,none
Developer Tooling
- Logging:
api_logger,none - Scripting:
makefile,justfile,taskfile,none - CI/CD option in config:
github_actions,gitlab_ci,none
Generated Project Characteristics
Fastix-generated projects can include:
- versioned API routing
- environment-based configuration
- health endpoints
- response and error helper scaffolding
- testing templates
- container and deployment assets
- messaging and background job scaffolding
- optional README and editor config files
The exact output depends on the CLI flags and architecture selected at generation time.
Local Development
python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev,interactive]'
pytest -q
Build the package locally:
python -m build
python -m twine check dist/*
Repository Automation
This repository is set up to support GitHub-based packaging and release automation.
Recommended repository secrets:
PYPI_API_TOKEN: PyPI token used for package publishing
Recommended release flow:
- Update version metadata in pyproject.toml and src/fastix/init.py.
- Update CHANGELOG.md.
- Push a version tag such as
v0.2.1. - Let GitHub Actions build, validate, and publish the package.
Contributing
Contributors should keep changes aligned with the current module registry and CLI surface.
Typical extension points:
- Add or update templates under src/fastix/templates.
- Register new modules in src/fastix/modules/register.py.
- Extend CLI options in src/fastix/cli/main.py.
- Add or update tests under tests.
Before opening a PR:
- run
pytest -q - run
python -m build - verify generated output for the feature you changed
License
MIT. See LICENSE.
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 fastix-0.2.1.tar.gz.
File metadata
- Download URL: fastix-0.2.1.tar.gz
- Upload date:
- Size: 55.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f583396a51a32ed57e53d9ea32c16bed3f170ceba760accc0603bfe253fd442
|
|
| MD5 |
50e5503407a9970d3bd5686633592795
|
|
| BLAKE2b-256 |
7e4323bcdf67bd42db872c2c89e1be13790f5ef056034eecb56e336f3d2baf3b
|
File details
Details for the file fastix-0.2.1-py3-none-any.whl.
File metadata
- Download URL: fastix-0.2.1-py3-none-any.whl
- Upload date:
- Size: 107.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cae490aa4d7aeb9e9f197c53fd53361bda45191fc103f016e061689deb330f39
|
|
| MD5 |
8454048588c38029df37bbf8247e9e98
|
|
| BLAKE2b-256 |
e8c377e84d2e87bb8fba559060a05f076e66454c237a5948012080e4a93676d7
|