Set up & run locally
Prepare a virtual environment, install dependencies, and launch both servers for a complete console + API experience.
- Install Python 3.11+ plus system build tools.
- Create a virtual environment and install
requirements.txt. - Start the services with
python run.py.
python -m venv .venv
. .venv/Scripts/activate # PowerShell: .\\.venv\\Scripts\\Activate.ps1
pip install -r requirements.txt
# Run both API and UI (Development)
python run.py
# Run in Production (Waitress server)
python run.py --prod
# Or run individually
python run.py --mode api
python run.py --mode ui
Configuration
Configuration defaults live in app/config.py. You can override them using environment variables. This is critical for production deployments behind proxies.
| Variable | Default | Description |
|---|---|---|
API_BASE_URL |
None |
The public URL of the API. Required if running behind a proxy. Ensures presigned URLs are generated correctly. |
STORAGE_ROOT |
./data |
Directory for buckets and objects. |
MAX_UPLOAD_SIZE |
1 GB |
Max request body size in bytes. |
SECRET_KEY |
(Auto-generated) | Flask session key. Auto-generates if not set. Set explicitly in production. |
APP_HOST |
0.0.0.0 |
Bind interface. |
APP_PORT |
5000 |
Listen port (UI uses 5100). |
| CORS Settings | ||
CORS_ORIGINS |
* |
Allowed origins. Restrict in production. |
CORS_METHODS |
GET,PUT,POST,DELETE,OPTIONS,HEAD |
Allowed HTTP methods. |
CORS_ALLOW_HEADERS |
* |
Allowed request headers. |
CORS_EXPOSE_HEADERS |
* |
Response headers visible to browsers (e.g., ETag). |
| Security Settings | ||
AUTH_MAX_ATTEMPTS |
5 |
Failed login attempts before lockout. |
AUTH_LOCKOUT_MINUTES |
15 |
Lockout duration after max failed attempts. |
RATE_LIMIT_DEFAULT |
200 per minute |
Default API rate limit. |
| Encryption Settings | ||
ENCRYPTION_ENABLED |
false |
Enable server-side encryption support. |
KMS_ENABLED |
false |
Enable KMS key management for encryption. |
| Logging Settings | ||
LOG_LEVEL |
INFO |
Log verbosity: DEBUG, INFO, WARNING, ERROR. |
LOG_TO_FILE |
true |
Enable file logging. |
| Metrics History Settings | ||
METRICS_HISTORY_ENABLED |
false |
Enable metrics history recording and charts (opt-in). |
METRICS_HISTORY_RETENTION_HOURS |
24 |
How long to retain metrics history data. |
METRICS_HISTORY_INTERVAL_MINUTES |
5 |
Interval between history snapshots. |
SECRET_KEY, restrict CORS_ORIGINS, configure API_BASE_URL, enable HTTPS via reverse proxy, and use --prod flag.