Stash AI Overhaul Backend Server
Project description
AI Overhaul Backend
Minimal FastAPI backend with SQLite + Alembic migrations.
Features
- FastAPI application exposing
/api/v1/requestsCRUD (create + read/list now) - SQLite database stored under
backend/data/app.db - SQLAlchemy 2.0 style models
- Alembic migration management
- Docker dev environment with live reload (code mounted as volume)
Directory Layout
backend/
stash_ai_server/
api/ # Routers
core/ # Config
db/ # Session + base
models/ # SQLAlchemy models
schemas/ # Pydantic schemas
main.py # FastAPI entry
alembic/ # Migration scripts
alembic.ini # Alembic config
requirements.txt
Dockerfile
Run (Docker Compose)
docker compose up --build
Then visit http://localhost:4153/docs for the Swagger UI.
During development, source changes under backend/stash_ai_server auto-reload thanks to --reload and bind mount.
Manual Local Run (Without Docker)
python -m venv .venv
. .venv/Scripts/activate # Windows PowerShell: .venv\Scripts\Activate.ps1
pip install -r backend/requirements.txt
uvicorn stash_ai_server.main:app --reload
Configuration file
For secrets and a few runtime overrides (data dir, plugin dir, stash API key), copy config.sample.env to backend/config.env and edit values. This file is gitignored so your secrets won't be checked in.
Example:
cp backend/config.sample.env backend/config.env
# edit backend/config.env and then start the server
When running in Docker Compose the image expects /app/data and the compose file or secrets file should mount the appropriate host paths.
Conda / pip install users
If you install the package from PyPI (or from the built wheel), the alembic folder and alembic.ini are included in the package so you can run migrations after creating backend/config.env. For local editable installs (pip install -e .) ensure you run from the repo root so alembic is present in the working tree.
Apply Migrations
The container runs with Base.metadata.create_all() for convenience right now. To use Alembic migration fully:
# Inside container or local env (with PYTHONPATH set to backend):
alembic upgrade head
Example Requests
POST /api/v1/requests
{
"prompt": "Describe scenic imagery"
}
GET /api/v1/requests
GET /api/v1/requests/1
Next Steps
- Add status update endpoint (PATCH)
- Introduce background processing queue
- Add filtering/pagination on list endpoint
- Add CORS config if frontend fetches directly
- Authentication (API key or session) when needed
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 Distributions
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 stash_ai_server-0.1.1a13-py3-none-any.whl.
File metadata
- Download URL: stash_ai_server-0.1.1a13-py3-none-any.whl
- Upload date:
- Size: 106.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a55a44e6d547e0f47ea74dc97b9f218f096837cbf801ba201ddc7f60a6dce91f
|
|
| MD5 |
0ba672e4ea38fe66964d6ff2e1d4cccd
|
|
| BLAKE2b-256 |
d737ab3bf7fc0304e4a3ea0199788fb58048db25bc19c1d23ed2f530f64a005a
|