DashCaddy Polish Loop
4ca805795b
[grade=B urn:ump:szxhoevzog44pvl3sz6n6qp2edv6wj6dcs3ajpi3kxbpbz7kikqa] DC-137: shipdeck engine branch for App Selector catalog installs
...
Opt-in (config.engine='shipdeck' + SHIPDECK_BRIDGE_URL configured + template
compatible): catalog installs go through the bridge's validated image-install
pipeline (digest-pinned OCI image, systemd release, Caddy gate, DNS, verify)
instead of Docker. Port semantics: engine is host-networked, so the app LISTEN
port (container side of the mapping, protocol suffix stripped) is gated —
never the Docker host port; no mapping falls back to defaultPort. Volumes:
absolute binds only, :ro preserved, named volumes and placeholders skipped.
Engine installs skip panel DNS + Caddy (pipeline did them), record an
engine=shipdeck manifest with the Shipdeckfile path, and removal runs
shipdeck rm via the registry. Failures return 502 with stage detail and
never fall back to Docker. Bridge unset = Docker path unchanged.
10 new tests (gating, payload mapping, route integration); full suite
138/138 suites 2933/2933 green. Judge: C -> C -> B zero-blockers.
2026-09-16 04:04:53 -07:00
..
2026-08-23 20:24:42 -07:00
2026-06-13 12:16:56 -07:00
2026-08-12 16:30:17 -07:00
2026-08-12 12:25:26 -07:00
2026-09-15 11:13:29 -07:00
2026-06-26 12:16:38 -07:00
2026-08-08 15:39:48 -07:00
2026-08-18 08:22:29 -07:00
2026-08-22 16:22:53 -07:00
2026-07-01 07:37:45 -07:00
2026-06-13 12:16:56 -07:00
2026-08-23 01:57:20 -07:00
2026-08-23 09:05:27 -07:00
2026-08-23 08:01:29 -07:00
2026-07-01 04:20:57 -07:00
2026-06-13 12:16:56 -07:00
2026-07-20 17:44:11 -07:00
2026-07-20 01:40:33 -07:00
2026-07-02 18:27:03 -07:00
2026-08-18 05:52:32 -07:00
2026-06-27 07:02:47 -07:00
2026-08-22 19:42:25 -07:00
2026-08-23 02:31:16 -07:00
2026-08-23 12:40:32 -07:00
2026-08-23 12:40:32 -07:00
2026-08-23 15:53:58 -07:00
2026-09-16 04:04:53 -07:00
2026-09-16 04:04:53 -07:00
2026-06-13 12:16:56 -07:00
2026-08-12 12:35:58 -07:00
2026-08-22 17:22:13 -07:00
2026-08-23 04:40:41 -07:00
2026-06-13 12:16:56 -07:00
2026-08-18 04:17:50 -07:00
2026-09-16 03:10:54 -07:00
2026-09-16 03:10:54 -07:00
2026-06-26 12:16:38 -07:00
2026-08-17 16:04:18 -07:00
2026-06-13 12:16:56 -07:00
2026-06-13 12:16:56 -07:00
2026-08-12 04:50:16 -07:00
2026-08-12 12:30:57 -07:00
2026-06-13 12:16:56 -07:00
2026-08-23 15:02:00 -07:00
2026-08-22 14:23:25 -07:00
2026-08-22 16:52:53 -07:00
2026-08-22 16:52:53 -07:00
2026-08-22 15:14:25 -07:00
2026-08-22 15:14:25 -07:00
2026-08-13 16:30:20 -07:00
2026-06-13 12:16:56 -07:00
2026-07-20 17:44:11 -07:00
2026-04-06 21:36:46 -07:00
2026-08-04 14:18:49 -07:00
2026-08-22 18:15:37 -07:00
2026-08-22 18:15:37 -07:00
2026-08-22 18:15:37 -07:00
2026-07-20 21:40:26 -07:00
2026-06-13 12:16:56 -07:00
2026-08-23 07:28:10 -07:00
2026-08-23 05:22:04 -07:00
2026-06-25 17:16:16 -07:00
2026-09-16 03:10:54 -07:00
2026-08-12 12:35:58 -07:00
2026-08-18 01:29:19 -07:00
2026-08-22 21:35:51 -07:00
2026-08-18 17:07:13 -07:00
2026-07-06 15:06:28 -07:00
2026-08-22 23:28:36 -07:00
2026-08-22 19:42:25 -07:00
2026-08-22 23:28:36 -07:00
2026-06-13 12:16:56 -07:00
2026-08-12 05:07:24 -07:00
2026-06-13 12:16:56 -07:00
2026-07-21 21:59:03 -07:00
2026-08-14 23:46:23 -07:00
2026-08-23 07:28:10 -07:00
2026-06-13 12:16:56 -07:00
2026-09-13 05:32:14 -07:00
2026-07-24 22:39:29 -07:00
2026-08-22 05:41:38 -07:00
2026-08-19 00:10:37 -07:00
2026-08-19 00:10:37 -07:00
2026-07-21 00:45:46 -07:00
2026-09-16 03:10:54 -07:00
2026-06-13 12:16:56 -07:00
2026-08-22 05:41:38 -07:00
2026-06-13 12:16:56 -07:00
2026-07-06 21:28:03 -07:00
2026-07-06 18:55:16 -07:00
2026-08-18 19:45:08 -07:00
2026-08-18 17:35:59 -07:00
2026-06-13 12:16:56 -07:00
2026-07-20 17:44:11 -07:00
2026-08-18 13:16:44 -07:00
2026-08-18 13:34:51 -07:00
2026-08-31 23:37:00 -07:00
2026-08-18 01:59:14 -07:00
2026-08-18 09:03:58 -07:00
2026-08-15 00:01:16 -07:00