feat(mcp): ship HTTP server as Docker-only, drop systemd path #76
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/FJ-57-mcp-docker-only-deployment"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Remove
fj mcp service install/uninstallandcrates/fj/src/mcp/service.rs: the systemd unit baked in Forgejo host, a shared bearer token, and a plaintextmcp.env, all of which are gone now that credentials are per-account (FJ-55) and the HTTP transport is env-only. The MCP subcommand tree keepsserveandstdioonly, with a test that assertsservicecannot reappear.Add
compose.mcp.ymlas the single supported deployment for the multi-user HTTP web service: it builds the runtime image, runsfj mcp servewithFORGEJO_MCP_TRANSPORT=http, publishes on loopback for a reverse proxy, and persists the SQLite state store on the named volumeforgejo-mcp-data(serviceforgejo-mcp, networkforgejo-mcp-private). Configuration is environment-only;.env.examplelists every variable the service reads and the required master/session keys fail fast if unset.Confirm the Dockerfile runtime stage serves this deployment: it already runs as non-root
appuser, and now creates a writable/app/datavolume dir withFORGEJO_MCP_DATABASE_URLdefaulting beneath it so state survives restarts.Add
docs/deployment.mddocumenting only the container path (reverse-proxy TLS, the public base URL contract, volume persistence, key generation and custody, first-admin bootstrap, upgrades) plus the migration steps to stop and disable the removed systemd unit before upgrading. Delete the systemd runbook fromREADME.mdand update the stale "no compose stack" notes inCLAUDE.md.fj mcp stdiois untouched. The startup fail-closed on a missing or malformed master/session key already lives in the HTTP transport (FJ-54) and its tests are unchanged.#FJ-57