Configuration

ccr-cloud reads its settings from environment variables. In host mode, setup writes them to server.env in the data directory (~/.local/share/ccr-cloud/server.env by default) and the service loads that file at startup. Restart the service after any change.

Keep server.env private. It holds your owner token and any bot credentials.

#Core

VariableDefaultDescription
CCR_CLOUD_TOKENGenerated by setupOwner token for the app and API. Anyone with it controls your tasks.
CCR_CLOUD_DRIVERhost (written by setup)host runs Claude Code as the server user; docker runs containers.
CCR_CLOUD_DATA~/.local/share/ccr-cloudData directory: configuration, tasks, logs, workspaces, push keys. Use the same value for setup, doctor and updates.
CCR_CLOUD_HOST127.0.0.1Address the app and API listen on. Change it only for a VPN.
CCR_CLOUD_PORT8787Port for the app and API.
CCR_CLOUD_REPO_ROOTS~/srcColon-separated absolute folders to discover repositories in (host mode).
CCR_CLOUD_PUSH_SUBJECTThe project URLYour mailto: or https: contact for push services. Apple rejects localhost.
GH_TOKENUnsetGitHub token passed to tasks. In host mode, prefer the server user's own Git credentials.

#Runner connection

Tasks connect back to the control plane on this endpoint. You rarely need to change these.

VariableDefaultDescription
CCR_CLOUD_RUNNER_HOST127.0.0.1 (host), 172.17.0.1 (Docker)Address the runner endpoint listens on. In Docker mode, keep it on the bridge.
CCR_CLOUD_RUNNER_PORT8788Port of the runner endpoint.
CCR_CLOUD_RUNNER_URLws://127.0.0.1:8788 (host), ws://host.docker.internal:8788 (Docker)The endpoint as seen from inside a task.

#CCR gateway and Docker mode

VariableDefaultDescription
CCR_GATEWAY_KEYRequired in Docker modeCCR client key given to tasks.
CCR_GATEWAY_URLhttp://host.docker.internal:3456 (Docker); unset (host)CCR gateway as seen from a task. In host mode, usually http://127.0.0.1:3456.
CCR_CLOUD_IMAGEccr-cloud-session:devSession image built by npm run image.

In host mode, CCR_GATEWAY_URL and CCR_GATEWAY_KEY are optional. Setting both sends new host tasks through a CCR gateway instead of your Claude account; see Switch models with CCR.

#Remote access

VariableDefaultDescription
CCR_CLOUD_SSH_TARGETUnsetYour SSH destination, such as my-ec2. Setup uses it only to print a ready-to-copy tunnel command.
CCR_CLOUD_TUNNEL_NAMEccr-cloud-HOSTNAMEName of the Cloudflare tunnel setup creates or reuses.

#Discord

See Discord control.

VariableDefaultDescription
DISCORD_BOT_TOKENUnsetBot token. Discord is off unless this and DISCORD_OWNER_ID are set.
DISCORD_OWNER_IDUnsetYour numeric Discord user ID. Only this user can use the bot.
DISCORD_GUILD_IDUnsetRegister commands in one server for faster testing.
DISCORD_NOTIFICATIONSOnSet to 0 to turn off direct-message notifications.
CCR_CLOUD_PUBLIC_URLUnsetHTTPS address of your app, used for Open links in Discord.

#Tools and output

VariableDefaultDescription
CLAUDE_BINclaudeClaude Code executable that setup checks.
CLAUDE_CONFIG_DIRClaude Code's defaultHonored as usual; host tasks inherit it.
TAILSCALE_BIN, CLOUDFLARED_BINtailscale, cloudflaredExecutables setup uses for remote access.
NO_COLOR, FORCE_COLORUnsetTurn colored CLI output off or force it on.

#Development server

npm run dev uses its own settings and never touches your real data.

VariableDefaultDescription
CCR_CLOUD_DEV_DATA.data/devData directory for the dev server.
CCR_CLOUD_DEV_TOKENdevOwner token for the dev server.
PORT8790Dev server port.

Edit this page on GitHub ↗