Commit Graph
100 Commits
Author SHA1 Message Date
Jarek Krochmalski bc73e7ba84 ci: pin node to 24.18.1 in the openapi check so npm install builds better-sqlite3 2026-08-23 10:26:44 +02:00
Jarek Krochmalski 40524e0d8d release housekeeping 2026-08-23 10:21:00 +02:00
Jarek Krochmalski 4af255ebc9 clarify stack env-var api docs (git vs internal storage, secret masking) 2026-08-23 10:21:00 +02:00
Jarek Krochmalski 4ba349113d branch selector on git stack, with per-stack branch override 2026-08-23 10:21:00 +02:00
Jarek Krochmalski 534ecf4564 fix switching an Infisical provider back to a static token 2026-08-23 10:21:00 +02:00
Jarek Krochmalski 114f21385a sort IPv6 subnets and addresses numerically instead of randomly 2026-08-23 10:21:00 +02:00
Jarek Krochmalski 2791e8c36d keep specific images from being pruned with a dockhand.prune=false label 2026-08-23 10:21:00 +02:00
Jarek Krochmalski 70491423dc Pushover notifications can target specific devices 2026-08-23 10:20:59 +02:00
Jarek Krochmalski 7692758467 TLS backup repositories with a private CA and optional mutual TLS 2026-08-23 10:20:59 +02:00
Jarek Krochmalski f6ffadbacb stack and container icons - pick an icon per stack or per container (survives recreation), plus automatic app logos on containers 2026-08-23 10:20:59 +02:00
Jarek Krochmalski 30fb770a9f compose validate: recognize socket proxies and add exposure/volume/deploy rules 2026-08-22 17:11:57 +02:00
Jarek Krochmalski b165e4608a branch selector on git stack, with per-stack branch override 2026-08-22 17:11:57 +02:00
Jarek Krochmalski 3795cecf50 git-branch-lookup: docblock says two guards, matching the code 2026-08-22 16:24:04 +02:00
Jarek Krochmalski 40f6076b8d Proton Pass inline references accept vault and item names, not just ids (pass://vault/item/field) 2026-08-22 16:22:18 +02:00
Jarek Krochmalski f1e4af3267 Infisical secret references now resolve to their value instead of the raw reference 2026-08-22 16:22:18 +02:00
Jarek Krochmalski 68821f4d92 branch selector on git stack, with per-stack branch override 2026-08-22 16:22:18 +02:00
Jarek Krochmalski 94f8f52f52 release housekeeping for 1.0.44 2026-08-22 16:22:18 +02:00
Jarek Krochmalski 0885e8245f bump checkout action to v5 for node 24 runners 2026-08-22 09:27:23 +02:00
Jarek Krochmalski 9700412a8f updated generate-changelog-page.ts 2026-08-22 09:25:42 +02:00
Jarek Krochmalski aff8f25d2a internal cleanups and build config 2026-08-22 09:10:20 +02:00
Jarek Krochmalski 5f9e6bde3c add missing unit test suite 2026-08-22 09:09:50 +02:00
Jarek Krochmalski 7227b334f9 release housekeeping for 1.0.44 2026-08-22 09:09:42 +02:00
Jarek Krochmalski e23936b4df azure key vault as a secret provider (bulk pull or inline azurekv:// references) 2026-08-22 09:09:41 +02:00
Jarek Krochmalski a760680b8d detect newer version tags for pinned images and show them as a badge with release notes 2026-08-22 09:09:41 +02:00
Jarek Krochmalski 9977476b15 a compose stack with a restarting container shows a stop action instead of start 2026-08-22 09:09:30 +02:00
Jarek Krochmalski e68fd2fc0e 1password deploys reuse the sdk client to cut api calls 2026-08-22 09:09:30 +02:00
Jarek Krochmalski 7d45fddad3 proton pass secrets resolve on headless hosts with no system keyring 2026-08-22 09:09:30 +02:00
Jarek Krochmalski 0b294973d8 switching an infisical provider back to a static token works again 2026-08-22 09:09:30 +02:00
Jarek Krochmalski 6f087a3c2a direct-remote staging pulls the alpine helper image when it's missing 2026-08-22 09:09:30 +02:00
jarek a485c8580b detect newer version tags for pinned images and show them as a badge with release notes 2026-08-20 08:28:26 +02:00
jarek 8b67fc0662 editing a secret provider no longer wipes its stored token 2026-08-20 08:28:26 +02:00
jarek b56e1ef7f9 Compose validate - a preflight linter & validator for compose files 2026-08-20 08:28:26 +02:00
jarek f8bfd756ef apply the containers:exec permission check to the websocket terminal path 2026-08-20 08:28:26 +02:00
jarek f50c3e52f3 registry auth survives an http to https token realm redirect behind a TLS proxy 2026-08-20 08:28:26 +02:00
jarek 3d208e6f22 release housekeeping 2026-08-20 08:28:25 +02:00
jarek 99b1672be5 detect newer version tags for pinned images and show them as a badge with release notes 2026-08-19 14:26:45 +02:00
jarek 29795c074c Bitwarden Secrets Manager as a secret provider via an operator-installed bws client 2026-08-19 14:26:45 +02:00
jarek 2584e52852 Compose validate - a preflight linter & validator for compose files 2026-08-19 14:26:45 +02:00
jarek bc91e71075 registry auth no longer fails when the token realm redirects http to https behind a TLS-terminating proxy 2026-08-19 14:26:45 +02:00
jarek 7e2f813438 security: update Go to 1.25.13 (8 HIGH stdlib CVEs) and update docker-compose to 5.5.0 2026-08-19 14:26:45 +02:00
jarek 5f401602bb release housekeeping 2026-08-19 14:26:45 +02:00
jarek adabaffb23 API: validating a stack's env vars no longer drops the environment id 2026-08-18 10:05:37 +02:00
jarek e9b6bf48a7 hint that op:// and pass:// references only resolve in the stack env panel 2026-08-18 10:05:37 +02:00
jarek e73c7b3d68 backup helper wait uses an unbounded deadline 2026-08-18 10:05:37 +02:00
jarek f7ca18fa0c container update notifications now fire properly 2026-08-18 10:05:37 +02:00
jarek 6fe735ad97 git stacks accept a compose/env path with a leading slash 2026-08-18 10:05:36 +02:00
jarek 9b6b6a9d3e Infisical: the project ID is optional when using a service token - it's taken from the token 2026-08-18 10:05:36 +02:00
jarek ba1a9588b9 detect newer version tags for pinned images and show them as a badge with release notes 2026-08-18 10:05:36 +02:00
jarek 088c7dc343 OpenAPI spec at /api/docs with a Scalar viewer, opt-in via FEAT_API_DOCS 2026-08-18 10:05:36 +02:00
jarek 1ad16a7c2a Compose validate - a preflight linter & validator for compose files 2026-08-18 10:05:36 +02:00
jarek 6fab8ec70a release housekeeping 2026-08-18 10:05:36 +02:00
Jarek Krochmalski 5c0fa6aa91 add the missing OpenAPI generator (scripts/generate-openapi.ts + scripts/openapi) so a clean checkout builds 2026-08-18 05:12:37 +02:00
jarek 0547ca1970 adopting a stack over the API rejects a compose path not on Dockhand's filesystem 2026-08-17 09:50:35 +02:00
jarek 88fa9bcab5 backup notifications show a real title and message instead of "undefined" 2026-08-17 09:50:35 +02:00
jarek d7c0c88794 concurrent git syncs sharing an SSH credential no longer fail on a missing temp key 2026-08-17 09:50:35 +02:00
jarek da26f7f764 OpenAPI spec at /api/docs with a Scalar viewer, opt-in via FEAT_API_DOCS 2026-08-17 09:50:34 +02:00
jarek ba8670af66 detect newer version tags for pinned images and show them as a badge with release notes 2026-08-17 09:50:34 +02:00
jarek 1740fdccfa Infisical: Universal Auth (Machine Identity) as well as a static token 2026-08-17 09:50:34 +02:00
jarek ef6c22a6ea Proton Pass as a secret provider via an operator-installed pass-cli client 2026-08-17 09:50:34 +02:00
jarek 95fd26656b Bitwarden Secrets Manager as a secret provider via an operator-installed bws client 2026-08-17 09:50:34 +02:00
jarek ff006965ce release housekeeping 2026-08-17 09:50:34 +02:00
jarek 3b43946a38 container update no longer fails on Podman for containers using userns_mode: keep-id 2026-08-16 08:15:30 +02:00
jarek 0a08c94287 optional indentation guides in the compose/YAML editor 2026-08-16 08:15:30 +02:00
jarek cda446a232 release housekeeping 2026-08-16 08:15:30 +02:00
jarek 19548772df reject duplicate secret provider name with a 400 2026-08-14 15:59:50 +02:00
jarek 5fef45e003 validate secret provider config before save 2026-08-14 14:01:36 +02:00
jarek 344ad4aadc external vault providers - live probing secrets when editing stack 2026-08-14 10:40:02 +02:00
jarek 9a416e165f point the compose timeout error at COMPOSE_TIMEOUT 2026-08-14 09:35:37 +02:00
jarek a38e973155 grouped container logs now show one merged timeline sorted by time 2026-08-14 09:35:37 +02:00
jarek a89a6e3bd4 multi-arch images no longer show false "update available" 2026-08-14 09:35:36 +02:00
jarek 32a86129d0 stack secrets from external providers (1Password, HashiCorp Vault, Infisical and Doppler) 2026-08-14 09:35:36 +02:00
jarek 78d67d2dc1 release housekeeping 2026-08-14 09:35:36 +02:00
jarek cd5d2651b3 backfill missing 0009/0010 drizzle snapshots for both dialects 2026-08-13 13:53:12 +02:00
jarek 959a426507 internal cleanups and build config 2026-08-13 10:20:30 +02:00
jarek 3c75bd4919 backup engine internals - restic timeout and stack-dir capture 2026-08-13 10:20:30 +02:00
jarek 610e46dc19 read-side backup snapshot endpoints use job polling 2026-08-13 10:20:30 +02:00
jarek 315c795058 container update no longer fails on Podman when CPU limits are set 2026-08-13 10:20:30 +02:00
jarek f1a3311c90 start, stop or restart on Hawser updates its files on the remote host, not only on redeploy 2026-08-13 10:20:29 +02:00
jarek cc0d50913a updating a compose file over the API now saves it, not just deploys it 2026-08-13 10:20:29 +02:00
jarek 16ee5d82b9 reopening the MFA setup screen while MFA is enabled no longer wipes the secret and backup codes 2026-08-13 10:20:29 +02:00
jarek ce93e92f6e support caddy-docker-proxy labels 2026-08-13 10:20:29 +02:00
jarek c91f38eddf upload a Docker image .tar through the UI (docker load) for air-gapped hosts 2026-08-13 10:20:29 +02:00
jarek f43736d94a stack secrets from external providers (1Password, HashiCorp Vault, Infisical and Doppler) 2026-08-13 10:20:29 +02:00
jarek d7f435dd5f release housekeeping 2026-08-13 10:20:29 +02:00
jarek 905c4a004d persist restic cache and backup restore fixes 2026-08-09 13:46:03 +02:00
jarek 091adfca35 remove backup journal, stop-recovery, and verify modal (deleted upstream) 2026-08-09 10:35:15 +02:00
jarek da8c83e20e internal cleanups and build config 2026-08-09 10:31:28 +02:00
jarek 95ee76bf97 backup engine internals - streaming, timeouts, typed snapshot layout, volume keys, route guards 2026-08-09 10:31:28 +02:00
jarek c33c404259 reusable snapshot header, field-label, and load-progress UI components 2026-08-09 10:31:28 +02:00
jarek 16451d95d7 improved restic repository operations log (prune, check, repair index etc.) 2026-08-09 10:31:28 +02:00
jarek 89b260758e more room between settings/editor content and the scrollbar 2026-08-09 10:31:28 +02:00
jarek dab6797847 dashboard pending-update count now matches the containers list 2026-08-09 10:31:28 +02:00
jarek 3859888da6 deleting a stack shows which folders will be removed, with a choice to keep/delete folders 2026-08-09 10:31:28 +02:00
jarek 4375f42415 oidc login: fall back to trailing-slash discovery url 2026-08-09 10:31:28 +02:00
jarek 045adf0cf3 fixed an LDAP filter parsing issue that could break group-based role assignment with some AD DNs 2026-08-09 10:31:28 +02:00
jarek 4e15c2677c dedupe duplicate mount points when recreating a container 2026-08-09 10:31:28 +02:00
jarek d33185d1fa container updates respect the new image's command/entrypoint 2026-08-09 10:31:28 +02:00
jarek 1c1d7979d7 activity log times now honor the configured timezone 2026-08-09 10:31:27 +02:00
jarek 8f47eef1b7 GitLab and Harbor registries no longer report a misleading auth error when browsing 2026-08-09 10:31:27 +02:00
jarek b287cee31f registry browser shows tag size and date for self-hosted registries, loaded on expand 2026-08-09 10:31:27 +02:00