autonomic-botandClaude Opus 5 21dfa22f9a nginx: strict public default server; keep oc off 0.0.0.0 (copy)
Sync of the canonical module. The atproto vhost listens on 0.0.0.0 only, so it
never shares an address group with oc.commoninternet.net (which is the default
server on 100.84.190.30:80 and has no auth in front of it). A new
public-default-reject vhost owns the public addresses — return 444 on 80,
ssl_reject_handshake on 443 — so unmatched, absent or spoofed Host headers from
the internet get nothing, now and after any future vhost is added.

The tailnet is untouched: oc.commoninternet.net still serves opencode there.
Verified with tools/check-exposure.sh in the project repo — 9/9 ok.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SmEK2voMnBa23495aLk1Ce
2026-08-01 18:46:06 +00:00

cc-ci-orchestrator

Orchestrator workspace for building the cc-ci Co-op Cloud recipe CI server. The plan, launch tooling, and loop prompts live in cc-ci-plan/; see AGENTS.md for the roles and operating model. Secrets (.testenv) are gitignored — never commit them.

Run the orchestrator in tmux (survives disconnects + closing your laptop)

Keep this supervising session alive on the host with tmux, and use --remote-control so you can watch/steer it from claude.ai/code (or the mobile app).

# 0. Exit any running orchestrator session first — a conversation can't be resumed while it's live:
#      /exit        (inside Claude)   or Ctrl-D

# 1. Start a detachable tmux session on this host
tmux new -s orchestrator

# 2. Inside tmux, resume the orchestrator conversation WITH remote control:
claude --resume autonomous-orchestrator \
  --remote-control "autonomous-orchestrator" \
  --dangerously-skip-permissions
#    - If name-resume opens a picker instead of resuming directly, choose "autonomous-orchestrator".
#    - Or resume by the stable session id (more deterministic in a fresh pane):
#        claude --resume 34a80a99-b37e-4809-b8da-ccc9fafe785e \
#          --remote-control "autonomous-orchestrator" --dangerously-skip-permissions

# 3. Detach — the process keeps running:  press Ctrl-b, then d

Reconnect later

  • On this host: tmux attach -t orchestrator
  • From anywhere: claude.ai/code → the autonomous-orchestrator session

Why it survives: tmux keeps the claude process alive across SSH disconnects and your laptop closing; remote-control runs outbound from this host to Anthropic, so it stays connected regardless of the viewer. After a host reboot, re-run steps 12.

Two different "names": --resume <name|id> selects the conversation to restore (shown in the /resume picker); the --remote-control "<name>" value is only the web display label and resumes nothing. Resuming reuses the same session id each time (stays 34a8…) — don't pass --fork-session unless you intend to branch a new conversation.

Already inside a live session and just want the web surface? Run /remote-control — no exit/resume.

Kick off / supervise the loops

cd /srv/cc-ci/cc-ci-plan
./launch.sh start                       # Builder + Adversary loops (interactive --remote-control in tmux) + watchdog
./launch.sh status                      # session + DONE state
./launch.sh logs builder|adversary|watchdog
./launch.sh stop

Full supervision guide, credential map, and the Incus VM fallback are in cc-ci-plan/kickoff.md and cc-ci-plan/plan.md §1.5.

S
Description
Autonomous orchestrator: planning, launch, and setup for the cc-ci Co-op Cloud recipe CI server
Readme
1.9 MiB
Languages
Python 78.7%
Shell 12.1%
Nix 8.5%
HCL 0.7%