Install SkillFlaw - Python
This guide covers the formal installation paths for the SkillFlaw Python backend runtime.
Use this page when your target runtime is based on:
docker/docker-compose-py.ymlmake initmake init_dbmake backendmake run_cli/make run_clic
If you need the TypeScript backend runtime instead, use Install SkillFlaw - TypeScript.
Choose the Python runtime when
- you want the repository's Python backend workflow
- you need the Python source-development loop documented in
README_PY.md - you want the Python Docker Compose stack with
backend_py - you need the current Python-side local validation flow with
make run_cli
Install with Docker Compose
Use this path for a complete local product stack.
Prerequisites
- Docker Engine / Docker Desktop and Docker Compose are installed
- no separate local PostgreSQL or Redis setup is required for the default compose path
- the default compose path generates and persists the secret-key file automatically on first startup
- create
.envonly when you want to pass extra runtime variables or local overrides to the backend container
Steps
-
Clone the repository:
_10git clone https://github.com/cwinux/skillflaw.git_10cd skillflaw -
Optional: copy
.env.exampleto.envwhen you need runtime overrides:_10cp .env.example .env -
Start the Python stack:
_10docker compose -f docker/docker-compose-py.yml up -d
The Python compose path starts frontend, backend_py, doc, redis, pgsql, and the one-shot secret_init bootstrap service.
Default access points
- frontend:
http://localhost:3001 - backend health:
http://localhost:7860/health - docs:
http://localhost:3002
Success check
Treat the installation as successful when all of the following are true:
docker compose -f docker/docker-compose-py.yml psshowspgsql,redis,backend_py,frontend, anddocrunning, whilesecret_inithas completed successfullyhttp://localhost:7860/healthreturns a healthy responsehttp://localhost:3001opens the SkillFlaw frontendhttp://localhost:3002opens the standalone docs site- you can sign in with the default admin account shown below
Install from source
Use source installation for Python-backend development, debugging, frontend customization, or repository-based customization.
Source-installation prerequisites
- Python
>=3.10,<3.14(recommended3.12) uv >=0.4- Node.js
22 LTSand npm>=10.9 - PostgreSQL
- Redis only when
SKILLFLAW_CACHE_TYPE=redis SKILLFLAW_SECRET_KEY_FILE
Steps
-
Clone the repository:
_10git clone https://github.com/cwinux/skillflaw.git_10cd skillflaw -
Copy
.env.exampleto.env:_10cp .env.example .env -
Configure at least:
SKILLFLAW_DATABASE_URLSKILLFLAW_SECRET_KEY_FILE
If you use Redis cache, also configure:
SKILLFLAW_CACHE_TYPE=redisSKILLFLAW_REDIS_HOSTSKILLFLAW_REDIS_PORT
-
Install dependencies:
_10make init -
Initialize the database:
_10make init_db -
Start the backend:
_10make backend -
Start the frontend:
_10make frontend
Optional production-style local validation:
_10make run_cli_10make run_clic
Success check
make initcompletes without dependency errorsmake init_dbcompletes and initializes the default admin accounthttp://localhost:7860/healthreturns a healthy response aftermake backendhttp://localhost:3000opens the frontend aftermake frontendhttp://localhost:7860opens the application aftermake run_cliormake run_clic
Optional runtime dependencies
OpenSandbox and OpenCode are optional for base platform startup. Prepare them only when you need Skill sandbox execution or AI-assisted workflows.
OpenSandbox
Configure these repository-root .env settings when the Python backend needs OpenSandbox:
SKILLFLAW_SKILL_SANDBOX_OPENSANDBOX_DOMAINSKILLFLAW_SKILL_SANDBOX_OPENSANDBOX_API_KEYSKILLFLAW_SKILL_SANDBOX_OPENSANDBOX_PROTOCOLSKILLFLAW_SKILL_SANDBOX_OPENSANDBOX_USE_SERVER_PROXYSKILLFLAW_SKILL_SANDBOX_OPENSANDBOX_REQUEST_TIMEOUT_SECONDS
For containerized installation, make sure the configured domain is reachable from inside backend_py.
OpenCode
- the Python source-install path expects
opencodeto be available in the same host environment asmake backend - the Python Docker path uses
docker/backend/Dockerfile, which already bundlesopencode SKILLFLAW_CONTAINER_OPENCODE_*is only intended for the containerized Python backend path
Default admin account
The default admin account prepared by repository initialization is:
- username:
admin - password:
Skillflaw@123321