A Robyn workspace with batteries included.
Python 3.14 + uv, modular discovery, OpenAPI/ReDoc and a slim Docker build. Open the folder in VS Code, accept the container, press F5.
- Python 3.14
- Robyn 0.x
- uv
- Docker
- MIT
Why use this template
Structure that stays out of your way.
-
uv for everything
uv synccreates the virtualenv and installs from the committeduv.lock. -
Modular by design
Every folder in
app/modulesis discovered at startup; each module owns its router, routes, models and services. -
OpenAPI + ReDoc
Routes are registered with OpenAPI metadata, and ReDoc is served by the app.
-
Docker included
A slim, locked,
--no-devimage and a Compose file for deployment. -
Ruff + pytest
Linting, formatting and tests are configured in
pyproject.toml. -
Debug ready
F5→ Debug - DEV on port40001, inside the container.
Quick start
Four steps, no local Python install.
1. Click "Use this template" → "Create a new repository"
2. Clone your new repository and open the folder in VS Code
3. Accept "Reopen in Container" when prompted
4. Press F5 → "Debug - DEV" and open http://127.0.0.1:40001
Requirements: Docker running, VS Code and the Dev Containers extension.
.
├── .devcontainer/devcontainer.json # Python 3.14 + uv, extensions, port 40001
├── app/
│ ├── api/__init__.py # Robyn app + OpenAPI metadata
│ ├── extensions/ # logger + routes loader
│ ├── modules/ # hello_world, redoc, status
│ ├── constants.py # BASE_PATH
│ └── run.py # module discovery + entry point
├── Dockerfile
├── dockercompose.yml
├── pyproject.toml
└── uv.lock
Routes and run modes
Small surface, easy to extend.
| Method | Path | What it does |
|---|---|---|
| GET | /app/status | Health payload. |
| POST | /app/hello_world | Returns Hello, world!. |
| GET | /redoc | Serves the ReDoc page. |
| Action | How | URL |
|---|---|---|
| Dev container | F5 → Debug - DEV / FAST | 127.0.0.1:40001 |
| Terminal | ROBYN_PORT=40001 uv run python app/run.py | 127.0.0.1:40001 |
| Docker Compose | docker compose -f dockercompose.yml up --build | localhost:50001 |
BASE_PATH in app/constants.py controls the /app
prefix. The app reads ROBYN_HOST, ROBYN_PORT,
ROBYN_LOG_LEVEL, ROBYN_PROCESSES and
ROBYN_WORKERS from the environment.