esc
Type to search the docs
Back to catalog

concentrator

Tested

Remote Claude session concentrator and dashboard

Run locally

Tested and verified to launch successfully.

Terminal
$ npx launchfile up remote-claude-concentrator

Requires Docker Desktop. No source code needed — pulls pre-built images and starts concentrator with all dependencies.

Launchfile View on GitHub
# yaml-language-server: $schema=https://launchfile.dev/schema/v1
version: launch/v1
name: concentrator
description: "Remote Claude session concentrator and dashboard"
repository: https://github.com/claudification/remote-claude

build:
  dockerfile: ./Dockerfile

provides:
  - protocol: http
    port: 9999
    exposed: true

env:
  RCLAUDE_SECRET:
    generator: secret
    sensitive: true
    description: "Shared secret for WebSocket auth between rclaude wrappers and concentrator (32-byte hex)"
  RP_ID:
    default: $app.host
    description: "WebAuthn relying party ID — bare domain, no protocol (e.g. concentrator.example.com)"
  ORIGIN:
    default: $app.url
    description: "WebAuthn origin — full URL with protocol (e.g. https://concentrator.example.com)"
  VAPID_PUBLIC_KEY:
    sensitive: true
    description: "Web Push VAPID public key (generate with: bunx web-push generate-vapid-keys)"
  VAPID_PRIVATE_KEY:
    sensitive: true
    description: "Web Push VAPID private key"
  DEEPGRAM_API_KEY:
    sensitive: true
    description: "Deepgram API key for voice-to-text streaming (optional)"
  OPENROUTER_API_KEY:
    sensitive: true
    description: "OpenRouter API key for voice transcript refinement (optional)"

storage:
  cache:
    path: /data/cache
    persistent: true
    description: "Session cache, auth state (auth.json, auth.secret), invite codes"
  transcripts:
    path: /data/transcripts
    persistent: true
    description: "Session transcript history"

health: /health
restart: always

commands:
  # Post-start setup: create the first admin and capture the invite link.
  # Web-based registration is explicitly disabled by security design, so this
  # CLI flow is the only way to create the first user. Run once via
  # `launchfile bootstrap concentrator` (or the provider's equivalent) after
  # the app is up, open the captured invite link, and register your passkey.
  # Invites expire after 30 minutes; the command is re-runnable if needed.
  bootstrap:
    command: "broker-cli create-invite --name admin --url $app.url"
    capture:
      invite_link:
        pattern: "https?://\\S+"
        description: "One-time invite link — open in your browser to register (expires in 30 min)"
        sensitive: true

Learn More

Spec references for features used in this Launchfile.

Related Apps

© 2026 High Bridge Enterprises AB