helpwave tasks is a modern, open-source task and ward-management platform tailored for healthcare - designed to bring clarity, efficiency and structure to hospitals, wards and clinical workflows.
If you simply want to test the application without modifying code, use the production compose file. This pulls official images and runs them behind a reverse proxy.
-
Run the Stack
docker-compose up -d
-
Access the App
- App URL:
http://localhost:80 - User:
test/test
- App URL:
This section covers setting up the local environment for coding. You need PostgreSQL, Redis, Keycloak, and InfluxDB running to support the backend.
The application relies on the following services. Ensure your environment variables are set:
DATABASE_URL="postgresql+asyncpg://postgres:password@localhost:5432/postgres"
REDIS_URL="redis://:password@localhost:6379"
ENV=development
INFLUXDB_URL="http://localhost:8086"
INFLUXDB_TOKEN="tasks-token-secret"
INFLUXDB_ORG="tasks"
INFLUXDB_BUCKET="audit"Use this if you prefer managing your own Python and Node versions.
-
Start Infrastructure Start Postgres, Redis, Keycloak, and InfluxDB:
docker-compose -f docker-compose.dev.yml up -d postgres redis keycloak influxdb
-
Run Backend
cd backend python -m venv venv source venv/bin/activate pip install -r requirements.txt alembic upgrade head uvicorn main:app --reload
-
Run Frontend In a new terminal:
cd web npm install npm run dev -
Run Simulator (Optional) In a new terminal:
cd simulator python -m venv venv source venv/bin/activate pip install -r requirements.txt python -m simulator
Use this to let Nix handle dependencies, environment variables, and helper commands automatically.
-
Enter Shell
nix-shell
-
Start Everything
run-dev-all
-
Run Simulator (Optional)
run-simulator
Once the development environment is running:
| Service | URL | Description |
|---|---|---|
| Web Frontend | http://localhost:3000 |
The user interface (Next.js/React). |
| Backend API | http://localhost:8000/graphql |
The GraphQL Playground (Strawberry). |
| Keycloak | http://localhost:8080 |
Identity Provider. |
| InfluxDB | http://localhost:8086 |
Time-series database for audit logs. |
Keycloak Realms & Users:
- tasks Realm:
http://localhost:8080/realms/tasks(Redirects automatically from app login)- User:
test - Password:
test
- User:
- master Realm (Admin Console):
http://localhost:8080/admin- User:
admin - Password:
admin
- User:
- backend/ - FastAPI backend with GraphQL API (Strawberry)
- web/ - Next.js frontend application
- simulator/ - Development tool for simulating clinic traffic
- proxy/ - Nginx reverse proxy for production deployments
- keycloak/ - Keycloak realm configuration
- scaffold/ - Initial data for hospital structure
Backend Tests:
cd backend
python -m pytest tests/unit -v
python -m pytest tests/integration -vFrontend Linting:
cd web
npm run lintE2E Tests:
cd tests
npm install
npx playwright testYou can run GitHub Actions workflows locally using act. See .github/workflows/README.md for detailed instructions.
Quick start:
# Install act (requires Docker)
brew install act # macOS
# or download from https://github.com/nektos/act/releases
# Run all workflows
act
# Run specific job
act -j backend-testsAll components are containerized and available on GitHub Container Registry:
ghcr.io/helpwave/tasks-backend:latestghcr.io/helpwave/tasks-web:latestghcr.io/helpwave/tasks-simulator:latestghcr.io/helpwave/tasks-proxy:latest