No description
  • TypeScript 47.8%
  • Python 40.6%
  • Astro 8.8%
  • Dockerfile 1.6%
  • CSS 0.9%
  • Other 0.3%
Find a file
lilly 914a4497c7
All checks were successful
Build Container / Build Container (push) Successful in 1m26s
api: implement automatic ssh key fetching from keycloak
2026-05-31 22:03:59 +02:00
.forgejo/workflows migrate ci to direct kaniko push 2026-05-14 20:21:44 +02:00
api api: implement automatic ssh key fetching from keycloak 2026-05-31 22:03:59 +02:00
app update frontend to match new user-info endpoint 2026-05-29 09:57:19 +02:00
.dev.env api: implement automatic ssh key fetching from keycloak 2026-05-31 22:03:59 +02:00
.envrc.dist improve project structure for api 2026-05-03 22:08:05 +02:00
.gitignore api: implement automatic ssh key fetching from keycloak 2026-05-31 22:03:59 +02:00
Containerfile restructure dockerfile to not have npm dependencies in final image 2026-05-19 16:45:42 +02:00
dev.Caddyfile add openapi.json to dev caddyfile 2026-05-14 20:30:23 +02:00
README.md document current api parameters in README 2026-05-28 17:54:13 +02:00

Dooris

Dooris setup using HomeMatic with Web UI, API and OIDC integration.
Based on prior work of hmdooris.

Project structure:

├── api # Python application interacting with HomeMatic and providing the API.
└── app # Web UI

Configuration

The final application can be configured either via CLI arguments or via environment variables. If both are given, the CLI flag takes precedence.

THe following table lists all available configuration parameters:

CLI Flag Environment Variable Required? Default Value
--openid-issuer DOORIS_OPENID_ISSUER Yes None
--openid-scope DOORIS_OPENID_SCOPE No openid profile
--openid-client-id DOORIS_OPENID_CLIENT_ID Yes None
--openid-client-secret DOORIS_OPENID_CLIENT_SECRET Yes None
--base-url DOORIS_BASE_URL Yes None
--serve-static DOORIS_SERVE_STATIC No None
--ccujack-url DOORIS_CCUJACK_URL No https://hmdooris-ccu.ccchh.net:2122
--ccujack-mqtt DOORIS_CCUJACK_MQTT No hmdooris-ccu.ccchh.net:1883
--ccujack-user DOORIS_CCUJACK_USER Yes None
--ccujack-password DOORIS_CCUJACK_PASSWORD Yes None
--static-api-tokens DOORIS_STATIC_API_TOKENS No None

API Development

Most things should automatically be set up with the included direnv script but if you don't use that, take the following steps:

  1. Go to the api/ directory
  2. Run uv venv to create a python virtual environment
  3. Install all dependencies of the dooris project into that virtual environment with uv sync
  4. Run a development server watchexec -r -w src/ uv run dooris-api