Scaffold lean, batteries-included FastAPI backends — like django-admin, for FastAPI.
Project description
shaapi
Scaffold lean, batteries-included FastAPI backends — like django-admin, for FastAPI.
Beginners shouldn't have to architect a production backend from scratch. shaapi
gives you a clean, opinionated FastAPI project — async SQLAlchemy + Alembic,
Postgres, Redis, JWT auth, Casbin RBAC, file storage, and a one-command Docker
workflow — generated in seconds.
pip install shaapi
shaapi create-project "my api"
cd my_api
./docker-run.sh up
→ API live at http://localhost:8000, Swagger at http://localhost:8000/admin/api/v1/docs.
What you get
- FastAPI (async) with a clean layered architecture (
app/,common/,core/,crud/,models/,schemas/) - SQLAlchemy 2 + Alembic migrations, Postgres (auto-create in dev, migrations in prod)
- Redis cache + rate limiting
- JWT auth + Casbin RBAC (users, roles, permissions)
- File storage (MinIO / S3 / GCS)
- Docker: multi-stage slim image built with uv, hot-reload in dev (source bind-mount),
docker-run.shorchestration - Opt-in observability (
--monitoring): Prometheus, Grafana, Tempo, Loki
CLI
shaapi create-project "my api" # interactive
shaapi create-project "my api" -y # accept defaults
shaapi create-project "my api" --monitoring --no-git
shaapi --version
In your generated project
./docker-run.sh up # build + start everything (dev: hot-reload)
./docker-run.sh up --monitoring
./docker-run.sh logs # tail logs
./docker-run.sh migrate # alembic upgrade head
./docker-run.sh makemigrations "add posts table"
./docker-run.sh down
Documentation
📖 Full documentation site (EN/FR): https://shalom-302.github.io/shaapi/
Highlights:
The Markdown sources live in docs/ (English *.md, French *.fr.md).
Example
examples/todolist — a complete authenticated Todo API
(JWT, per-user ownership, admin-only endpoint) built on top of shaapi in 5 files.
Status
Alpha. See the repo for roadmap and contribution guidelines.
License
MIT
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 shaapi-0.2.0.tar.gz.
File metadata
- Download URL: shaapi-0.2.0.tar.gz
- Upload date:
- Size: 272.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
276e205fa31dcce53e3002119cb5617fb70e004849a875e2fc7aeeca608319bd
|
|
| MD5 |
57ae3704c7268306aaad7ab5c24ba246
|
|
| BLAKE2b-256 |
88c6bd6a1f75e9319a449161465a4f80d92d29a97554f1b07929aa3d4a4e71a7
|
Provenance
The following attestation bundles were made for shaapi-0.2.0.tar.gz:
Publisher:
publish.yml on Shalom-302/shaapi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shaapi-0.2.0.tar.gz -
Subject digest:
276e205fa31dcce53e3002119cb5617fb70e004849a875e2fc7aeeca608319bd - Sigstore transparency entry: 1756748709
- Sigstore integration time:
-
Permalink:
Shalom-302/shaapi@70ad4068c17c8f8040b94238797abc0450094a5a -
Branch / Tag:
refs/tags/v.0.2.0 - Owner: https://github.com/Shalom-302
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@70ad4068c17c8f8040b94238797abc0450094a5a -
Trigger Event:
release
-
Statement type:
File details
Details for the file shaapi-0.2.0-py3-none-any.whl.
File metadata
- Download URL: shaapi-0.2.0-py3-none-any.whl
- Upload date:
- Size: 333.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e67f780bd6df25eb4be74f9733afb5804829b8d1e6238adc891f33b04e47cca
|
|
| MD5 |
1b1b36f996b7a56bb91679faf895da7d
|
|
| BLAKE2b-256 |
c95f4a06aeafed715341543cae414193864e5957cba12c679d3368222d24a71c
|
Provenance
The following attestation bundles were made for shaapi-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on Shalom-302/shaapi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shaapi-0.2.0-py3-none-any.whl -
Subject digest:
1e67f780bd6df25eb4be74f9733afb5804829b8d1e6238adc891f33b04e47cca - Sigstore transparency entry: 1756748719
- Sigstore integration time:
-
Permalink:
Shalom-302/shaapi@70ad4068c17c8f8040b94238797abc0450094a5a -
Branch / Tag:
refs/tags/v.0.2.0 - Owner: https://github.com/Shalom-302
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@70ad4068c17c8f8040b94238797abc0450094a5a -
Trigger Event:
release
-
Statement type: