@loicngr/kobo 1.9.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to Kōbō are documented here. The format is based on
4
4
  [Keep a Changelog](https://keepachangelog.com/). Each release is an `## <version>`
5
5
  section — the in-app "What's new" dialog reads this file.
6
6
 
7
+ ## 1.9.1
8
+
9
+ - fix: exempt /api/health from network-auth and add local Docker compose stacks
10
+
7
11
  ## 1.9.0
8
12
 
9
13
  - feat: opt out a workspace from PR-watch (skip forge polling, keep local git stats)
package/README.md CHANGED
@@ -57,13 +57,13 @@ Want to run from source or contribute? See [`CONTRIBUTING.md`](./CONTRIBUTING.md
57
57
 
58
58
  ### Docker
59
59
 
60
- An official `Dockerfile` and an example Traefik + Kōbō stack
61
- ([`docker-compose.example.yml`](./docker-compose.example.yml)) ship in this repository useful for
62
- running Kōbō on a VPS behind a reverse proxy, with git SSH auth, Claude Code / Codex credentials,
63
- optional Docker-socket passthrough for the dev-server panel, and SSH access into the container for
64
- interactive work. See [`CONFIGURATION.md`](./CONFIGURATION.md#behind-a-reverse-proxy) for the full
65
- setup, including the `KOBO_NETWORK_ACCESS_ENABLED` / `KOBO_NETWORK_ACCESS_BEHIND_PROXY` env vars
66
- that bootstrap network access at container boot with no manual step.
60
+ An official `Dockerfile` and three ready-to-use Compose files ship in this repository: a quick local
61
+ test stack, a Traefik-fronted local rehearsal (`kobo.localhost`, no domain needed), and a full VPS
62
+ reference (Traefik + Let's Encrypt, SSH access, optional Docker-socket passthrough for the
63
+ dev-server panel). See [`CONFIGURATION.md`](./CONFIGURATION.md#docker-deployment) for the complete
64
+ setup every compose file, every env var, every volume mount, and the `KOBO_NETWORK_ACCESS_ENABLED`
65
+ / `KOBO_NETWORK_ACCESS_BEHIND_PROXY` env vars that bootstrap network access at container boot with
66
+ no manual step.
67
67
 
68
68
  ## Configuration
69
69
 
@@ -9,8 +9,16 @@ import { getGlobalSettings } from '../services/settings-service.js';
9
9
  * loopback is treated like any other address (see network-access-service.ts).
10
10
  * The client IP comes only from the OS socket via getConnInfo, never from
11
11
  * X-Forwarded-For, so a remote client cannot spoof a loopback address.
12
+ *
13
+ * `/api/health` is always exempt, regardless of `networkAccessBehindProxy`:
14
+ * it exposes only `{ status, version }` (nothing sensitive), and Docker's own
15
+ * HEALTHCHECK / a Compose healthcheck / an orchestrator's liveness probe has
16
+ * no way to supply the runtime-generated token — without this exemption, a
17
+ * "behind a reverse proxy" deployment's own container never reports healthy.
12
18
  */
13
19
  export const networkAuthMiddleware = async (c, next) => {
20
+ if (c.req.path === '/api/health')
21
+ return next();
14
22
  const address = getConnInfo(c).remote.address;
15
23
  const global = getGlobalSettings();
16
24
  const decision = evaluateNetworkAccess({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loicngr/kobo",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "description": "Kōbō — multi-workspace agent manager for Claude Code. Orchestrates isolated git worktrees with dev servers, Notion integration, and MCP tools.",
5
5
  "type": "module",
6
6
  "license": "GPL-3.0-or-later",