Commit Graph
100 Commits
Author SHA1 Message Date
Jarek Krochmalski 6b4142f0b9 keep the delete-provider confirmation open until confirmed or dismissed 2026-09-06 17:38:22 +05:30
Jarek Krochmalski cb1e7e0c86 add unit tests for the openapi body-field analyzer 2026-09-06 17:38:22 +05:30
Jarek Krochmalski a78bd46578 document all request-body fields in the openapi annotations 2026-09-06 17:38:22 +05:30
Jarek Krochmalski aa30a8dc0a replace non-ascii glyphs in generated openapi description strings 2026-09-06 17:38:22 +05:30
Jarek Krochmalski 6893286e04 add an openapi body-field drift check to the generator 2026-09-06 17:38:22 +05:30
Jarek Krochmalski 54fbf5205f stub fetch in selfhst icon cache tests to avoid CDN timeout flake 2026-09-06 17:04:19 +05:30
Jarek Krochmalski 2b7958cb25 surface a clear message when copying the restic password fails 2026-09-06 17:04:18 +05:30
Jarek Krochmalski 84c959910a release housekeeping 2026-09-06 17:03:48 +05:30
Jarek Krochmalski 1e7f680426 clipboard copy falls back correctly inside dialogs 2026-09-06 17:03:48 +05:30
Jarek Krochmalski 2640641262 deploy a 1:1-mounted local stack by file so its compose path is preserved 2026-09-06 17:03:48 +05:30
Jarek Krochmalski 8862054ce4 keep every open terminal panel alive and sort sub-minute uptimes correctly 2026-09-06 17:03:48 +05:30
Jarek Krochmalski e35b825e38 Microsoft Teams accepts the new Power Automate webhook URL format 2026-09-06 17:03:48 +05:30
Jarek Krochmalski 369a9b17cf resolve helper container exit code from a terminal created or dead state 2026-09-06 17:03:47 +05:30
Jarek Krochmalski d2d9501ef7 normalize mount targets so trailing slashes don't cause duplicate mounts 2026-09-06 17:03:47 +05:30
Jarek Krochmalski 306d40c4d1 backup restore preview works for view-only roles 2026-09-06 17:03:47 +05:30
Jarek Krochmalski a22ed6b809 resolve secret references pasted with surrounding quotes 2026-09-06 17:03:47 +05:30
Jarek Krochmalski 07f29f5afc deleting a secret provider warns which stacks it unbinds 2026-09-06 17:03:47 +05:30
Jarek Krochmalski 3a5dce99e2 back up stacks whose folder is bind-mounted over the data volume 2026-09-06 17:03:47 +05:30
Jarek Krochmalski 44223389d8 warn before saving a stack whose compose path won't survive a recreate 2026-09-06 17:03:47 +05:30
Jarek Krochmalski 63850bf5ae scope job status and cancel to the owner or an admin 2026-09-06 17:03:47 +05:30
Jarek Krochmalski bad04e0056 show Dockhand's own mark on its own container 2026-09-06 17:03:46 +05:30
Jarek Krochmalski db2b18571c refresh the app logo to a single SVG 2026-09-06 17:03:46 +05:30
Jarek Krochmalski 360c458144 test: restore DATA_DIR after fs-guard so it doesn't leak /app/data into later tests (#1535)
fs-guard.test.ts pins process.env.DATA_DIR=/app/data at module load (needed
before the fs-guard import) but never restored it. Under Bun's single-process
run this leaked into every later test file; selfhst-icons then did
mkdirSync('/app/data/icon-cache/...') and failed EACCES on CI, turning main red
in a file-order-dependent way. Save and restore DATA_DIR in an afterAll.
2026-09-06 15:43:05 +05:30
Jarek Krochmalski 049221ceff release housekeeping and generated api spec 2026-09-02 15:52:45 +02:00
Jarek Krochmalski e88975afc4 test connection on a saved environment without re-entering the token 2026-09-02 15:52:45 +02:00
Jarek Krochmalski 585d923e3c post api stacks honors the target environment in the body 2026-09-02 15:52:45 +02:00
Jarek Krochmalski 52d99fa295 escape dollar signs in env values when generating a compose file from a container 2026-09-02 15:52:45 +02:00
Jarek Krochmalski d03554c69d populate environment variables again finds the repo env file 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 34ceb74dc1 clearer git permission errors that match the credential type 2026-09-02 15:52:44 +02:00
Jarek Krochmalski ae754b3140 large image scans no longer fail when the scanner log rotates 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 9a3c52374c compose validate no longer flags a valid env_file 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 2d12085ae4 disable build cache no longer errors on deploy 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 4d09c9c76f local-path backup destinations validate the configured path 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 46a137316f faster incremental backups when multiple stacks share one repository 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 002f53ce78 optional stacks_dir flat layout for local stacks 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 3fa75c9702 drop the unused hawser stacks-dir column and layout 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 5af4e69eb2 tighten permission checks and input validation across the api 2026-09-02 15:52:44 +02:00
Jarek Krochmalski 53161a6718 pin esm-env as a direct dependency for reproducible installs 2026-08-27 19:48:35 +02:00
Jarek Krochmalski ee4632a7b7 stacks page: env-var counts from sources, icon batching, and an in-order restart 2026-08-27 19:48:35 +02:00
Jarek Krochmalski a9b1998aad allow secret-less webhook triggers behind an env flag 2026-08-27 16:32:06 +02:00
Jarek Krochmalski 9a1f11c9b7 require the git permission for repository deploy/sync/test 2026-08-27 16:32:06 +02:00
Jarek Krochmalski 5359720a76 bump docker-compose to 5.5.0-r2 in the wolfi image 2026-08-27 16:32:05 +02:00
Jarek Krochmalski cc48b1e14b bump svelte to 5.56.10 2026-08-27 16:32:05 +02:00
Jarek Krochmalski 0816672222 harden authentication and authorization on the user API 2026-08-27 11:31:35 +02:00
Jarek Krochmalski 5adb374c0d keepass secret provider fails closed when a group cannot be listed 2026-08-27 08:10:03 +02:00
Jarek Krochmalski e7ee9b41c7 add the emergency relocate/reset-mfa scripts the tests exercise 2026-08-27 07:41:02 +02:00
Jarek Krochmalski d34a7733f7 validate and canonicalize outbound request hosts 2026-08-27 07:34:38 +02:00
Jarek Krochmalski 0d516be4dd sort by Disk I/O and Net I/O - the header cycles read/write and down/up 2026-08-27 07:34:38 +02:00
Jarek Krochmalski b1e7518096 release housekeeping 2026-08-27 07:34:38 +02:00
Jarek Krochmalski c7eb8542a1 pausing or resuming a backup schedule no longer clears the retention policy 2026-08-27 07:34:37 +02:00
Jarek Krochmalski e82b1aea89 optional Webhook column on the stacks list with a git stack's webhook id and copy-URL button 2026-08-27 07:34:37 +02:00
Jarek Krochmalski b04bc504f9 option to disable the session timeout 2026-08-27 07:34:37 +02:00
Jarek Krochmalski ef390e94ec internal cleanups and build config 2026-08-27 07:34:37 +02:00
Jarek Krochmalski fdca208795 git stacks can now set a custom icon 2026-08-27 07:34:37 +02:00
Jarek Krochmalski 58f712d432 environment API uses a write-only model for the tls key and hawser token 2026-08-27 07:34:37 +02:00
Jarek Krochmalski bf518f98aa emergency script to relocate stack paths after moving DATA_DIR 2026-08-27 07:34:37 +02:00
Jarek Krochmalski 9264a53a44 compose validate flags a service with no healthcheck and a defined-but-unused named volume 2026-08-27 07:34:37 +02:00
Jarek Krochmalski 909e9934d3 compose generated from a container now captures network config and resource limits 2026-08-27 07:34:37 +02:00
Jarek Krochmalski bd42cfaa1b coalesce concurrent secret-provider probes 2026-08-27 07:34:37 +02:00
Jarek Krochmalski fa1987add6 KeePassXC as a secret provider - pull secrets from a .kdbx via keepassxc-cli, bulk or inline refs 2026-08-27 07:34:37 +02:00
Jarek Krochmalski 674d80b178 release 1.0.44 2026-08-25 12:58:22 +02:00
Jarek Krochmalski a4e2637ea5 release housekeeping 2026-08-25 05:42:29 +02:00
Jarek Krochmalski d5d979aa5d hide tls certificate fields for backends that never use tls 2026-08-25 05:42:29 +02:00
Jarek Krochmalski 730ad8ff82 fix the container backups tab crashing when a container has a mount 2026-08-23 19:00:40 +02:00
Jarek Krochmalski 8ae0b4367e release housekeeping 2026-08-23 12:08:30 +02:00
Jarek Krochmalski 49d71c01b6 generate a compose file from any container - save as new or append to existing stack 2026-08-23 12:08:30 +02:00
Jarek Krochmalski c71d066835 release housekeeping 2026-08-23 11:00:36 +02:00
Jarek Krochmalski 9a7ef9c12c MQTT notification channel - publish events to a broker 2026-08-23 11:00:36 +02:00
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