Prototype Streamlit dashboard for Sepex
![]() |
|---|
| Jobs overview with per-job details |
copy .env.example .envThe defaults work for local development (postgres + minio + auth disabled).
The compose file expects an external network named process_api_net. Create it once per machine:
docker network create process_api_netdocker compose up -dThe viewer is at http://localhost:8501. First boot pulls the sepex API image and initializes postgres + minio.
Stop the application:
docker compose downStart the application:
docker compose up -dRebuild the viewer image:
docker compose build viewerRebuild and restart:
docker compose up -d --buildView logs:
docker compose logs -f viewerClear all data (postgres, minio, api state):
docker compose down
rmdir /s /q .dataPrune volumes:
docker system prune -a --volumes| Service | Image | Purpose |
|---|---|---|
viewer (app/) |
Streamlit, built locally | Dashboard UI for sepex |
| sepex | ghcr.io/dewberry/sepex/api |
Process execution API |
| postgres | postgres:17.2-alpine3.20 |
Job and process metadata |
| minio | quay.io/minio/minio |
S3-compatible object storage |
The viewer hits the sepex API over HTTP (SEPEX_BASE_URL). The API uses postgres for job state and minio for storage. To run against AWS S3 instead, set STORAGE_SERVICE=aws-s3 in .env.
The viewer container mounts the repo at /app, so changes under app/ hot-reload without a rebuild.
- Viewer: http://localhost:8501
- sepex API: http://localhost:5050
- sepex API docs (Swagger): http://localhost:5050/swagger/index.html
- MinIO console: http://localhost:9001 (user / password from
.env) - Postgres:
localhost:5432
Configuration toggles (db, storage, auth) are documented inline in .env.example.
The sepex API registers processes from yaml files at startup. Point PLUGINS_LOAD_DIR in .env at a directory of yaml configs and restart the sepex container — every .yaml / .yml in there is read and registered.
examples/register-processes/pyecho.yaml is a sample config — a Python plugin that echoes its input. Drop it (and any others) into your plugins directory, restart, and the processes show up in the Processes column of the viewer.
