Quick Start
Prerequisites
Section titled “Prerequisites”- Python 3.11+
- uv (fast Python package manager)
Optional: Redis (session store) and PostgreSQL (SQLite works by default). Both drivers come with uv sync --extra full.
Local Setup
Section titled “Local Setup”# Install uvpip install uv # or: curl -sSf https://astral.sh/uv/install.sh | bash
# Clone and setupgit clone git@github.com:level09/stk.gitcd stk./setup.sh # Installs deps + generates secure .envuv run stk create-db # Apply all migrationsuv run stk install # Create admin useruv run stk run # Start server (--port 5001 if macOS holds 5000)Visit http://localhost:5000 to see your application.
To drop the uv run prefix, activate the venv once per shell with source .venv/bin/activate, then run stk run, stk shell, stk verify. uv run stk --help lists every command, grouped by purpose.
Anything unclear about the state of your checkout? One command answers it:
uv run stk doctor # env file, secrets, database, migrations, admin, assets, browserstk smoke needs a browser for Playwright. If doctor flags it, run uv run playwright install chromium.
Then read The Build Loop for the scaffold, watch, and verify cycle.
Docker Setup
Section titled “Docker Setup”Full production stack with one command:
docker compose up --buildIncludes Redis, PostgreSQL, and Nginx. Answer yes to the Docker question in ./setup.sh to generate the Redis and database passwords. The stack refuses to start until .env sets STK_HOST, TLS_CERTIFICATE, and TLS_PRIVATE_KEY (see the Docker block in .env-sample and Deployment).
Environment Configuration
Section titled “Environment Configuration”./setup.sh copies .env-sample to .env and fills in SECRET_KEY and SECURITY_PASSWORD_SALT. Key variables:
SECRET_KEY=your_secret_keySECURITY_PASSWORD_SALT=your_saltQUART_DEBUG=1 # 0 in productionSTK_ENV=development # defaults to production when unsetSECURITY_REGISTERABLE=False # public password registration is off by default
# PostgreSQL (optional, SQLite at instance/stk.db by default)# SQLALCHEMY_DATABASE_URI=postgresql+asyncpg://user:pass@localhost/dbname
# Redis session store (optional)# REDIS_URL=redis://localhost:6379/1QUART_APP is only needed for the bare quart command; stk already knows the app factory.
Next Steps
Section titled “Next Steps”- Build Loop: doctor, scaffold, watch, smoke
- Shell: async REPL with your models loaded
- Authentication: user management and OAuth setup
- Development: guidelines and best practices
- Deployment: production deployment