feat(starintel): tunnel all services through tmux SSH sessions #83

Open
lost-rob0t wants to merge 3 commits from agent/add-starintel-couchdb-tunnel into master
lost-rob0t commented 2026-08-19 00:36:02 +00:00 (Migrated from github.com)

Summary

Replace the one-off CouchDB tunnel launcher with a general StarIntel tunnel manager.

  • add starintel-tunnel as the primary command;
  • keep starintel-couchdb-tunnel as a compatibility shim;
  • give every service its own starintel-tunnel-<service> tmux session;
  • support start, stop, restart, status, attach, list, individual service names, and all;
  • default starintel-tunnel to starting all configured tunnels;
  • ship built-ins for CouchDB, RabbitMQ management, RabbitMQ AMQP, and Valkey;
  • load ~/.config/starintel/tunnels.conf so additional services can be added without editing the command;
  • allow local config to override built-in port/host/SSH-target mappings;
  • use ExitOnForwardFailure=yes and verify the tmux session survives startup so failed local binds do not report success;
  • keep the implementation literate in .local/bin/starintel-tunnel.org;
  • add a regression test covering registry overrides, custom services, all, idempotent starts, per-service sessions, and stop behavior;
  • wire the tunnel scripts and test into the Nix workflow's Bash syntax/shellcheck gate.

Config format

NAME LOCAL_PORT REMOTE_HOST REMOTE_PORT [SSH_TARGET]

Example:

api 18080 127.0.0.1 8080 starintel
metrics 19090 127.0.0.1 9090 starintel

Validation

Local regression validation passed before push:

  • bash -n on the manager, compatibility shim, and test;
  • mocked tmux/ssh integration test passes;
  • literate/generated parity is checked by the test;
  • CI now runs tests/starintel-tunnel.sh and shellchecks the new scripts.
## Summary Replace the one-off CouchDB tunnel launcher with a general StarIntel tunnel manager. - add `starintel-tunnel` as the primary command; - keep `starintel-couchdb-tunnel` as a compatibility shim; - give every service its own `starintel-tunnel-<service>` tmux session; - support `start`, `stop`, `restart`, `status`, `attach`, `list`, individual service names, and `all`; - default `starintel-tunnel` to starting all configured tunnels; - ship built-ins for CouchDB, RabbitMQ management, RabbitMQ AMQP, and Valkey; - load `~/.config/starintel/tunnels.conf` so additional services can be added without editing the command; - allow local config to override built-in port/host/SSH-target mappings; - use `ExitOnForwardFailure=yes` and verify the tmux session survives startup so failed local binds do not report success; - keep the implementation literate in `.local/bin/starintel-tunnel.org`; - add a regression test covering registry overrides, custom services, `all`, idempotent starts, per-service sessions, and stop behavior; - wire the tunnel scripts and test into the Nix workflow's Bash syntax/shellcheck gate. ## Config format ```text NAME LOCAL_PORT REMOTE_HOST REMOTE_PORT [SSH_TARGET] ``` Example: ```text api 18080 127.0.0.1 8080 starintel metrics 19090 127.0.0.1 9090 starintel ``` ## Validation Local regression validation passed before push: - `bash -n` on the manager, compatibility shim, and test; - mocked tmux/ssh integration test passes; - literate/generated parity is checked by the test; - CI now runs `tests/starintel-tunnel.sh` and shellchecks the new scripts.
lost-rob0t (Migrated from github.com) reviewed 2026-08-22 02:38:34 +00:00
lost-rob0t (Migrated from github.com) left a comment

looks great

looks great
nsaspy changed title from WIP: feat(starintel): tunnel all services through tmux SSH sessions to feat(starintel): tunnel all services through tmux SSH sessions 2026-08-27 19:45:25 +00:00
This pull request has changes conflicting with the target branch.
  • .github/workflows/nix.yml
  • tests/starintel-tunnel.sh
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin agent/add-starintel-couchdb-tunnel:agent/add-starintel-couchdb-tunnel
git switch agent/add-starintel-couchdb-tunnel

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff agent/add-starintel-couchdb-tunnel
git switch agent/add-starintel-couchdb-tunnel
git rebase master
git switch master
git merge --ff-only agent/add-starintel-couchdb-tunnel
git switch agent/add-starintel-couchdb-tunnel
git rebase master
git switch master
git merge --no-ff agent/add-starintel-couchdb-tunnel
git switch master
git merge --squash agent/add-starintel-couchdb-tunnel
git switch master
git merge --ff-only agent/add-starintel-couchdb-tunnel
git switch master
git merge agent/add-starintel-couchdb-tunnel
git push origin master
Sign in to join this conversation.
No description provided.