# --------------------------------------------------------------------------- # GitManager configuration. Copy this file to `.env` and fill in values. # NEVER commit a real `.env` (it is git-ignored). See AGENT.md §1.5. # --------------------------------------------------------------------------- # Address the HTTP server binds to. Localhost-only by default: there is NO # authentication (AGENT.md §0). Only bind to a non-local interface deliberately. LISTEN_ADDR=127.0.0.1:8080 # HTTPS (optional, but REQUIRED for the MCP connector — Claude Desktop only # accepts https:// URLs). When HTTPS_ADDR and both cert/key are set, an HTTPS # listener starts alongside HTTP. docker-compose sets these to the mounted certs. # Generate a locally-trusted cert on the HOST with mkcert (installs a local CA # your OS — and Claude Desktop — will trust), from the project root: # winget install FiloSottile.mkcert # mkcert -install # trust step (adds the local CA) # mkdir certs # mkcert -cert-file certs/localhost.pem -key-file certs/localhost-key.pem localhost 127.0.0.1 ::1 # Then connect Claude Desktop to https://localhost:8443/mcp HTTPS_ADDR= TLS_CERT_FILE= TLS_KEY_FILE= # Roots to scan for Git repositories, comma-separated (absolute paths). # Inside Docker these must be the *container* paths that the host roots are # mounted to (see docker-compose.yml). Example: /repos,/work/other GIT_REPO_ROOTS=/repos # DOCKER ONLY: the HOST folder that holds your repositories. docker-compose # mounts it to /repos inside the container (which GIT_REPO_ROOTS points at). # Ignored when running the binary directly. Example: C:/Users/you/Projects REPOS_HOST_PATH=./repos # Path to the git binary. "git" resolves it from PATH (git is installed in the # container image). GIT_BIN=git # --- Repo scanner (read-only; AGENT.md §5) --------------------------------- # How often the background scanner refreshes repo state. SCAN_INTERVAL=30s # Max directory depth to descend under each root when discovering repos. SCAN_MAX_DEPTH=4 # Directory names to skip during discovery, comma-separated. SCAN_IGNORE=node_modules,vendor,.cache # Allow the scanner to run `git fetch` (network) to keep ahead/behind counts # current. OFF by default — no unsolicited network. (AGENT.md §5) SCAN_FETCH_ENABLED=false # --- Logging (AGENT.md §7) -------------------------------------------------- # "dev" uses a readable console handler; anything else uses structured JSON. APP_ENV=dev # Optional: also append structured logs to this file. Leave empty to disable. LOG_FILE= # --- Forge integration — token-gated, READ + WRITE (AGENT.md §8.4) ---------- # The primary host is a self-hosted Gitea/Forgejo. Set BOTH the base URL and a # token to enable PRs + "Merge & clean up"; with neither, the forge features are # simply absent and the rest of the app is unaffected. A repo is forge-enabled # when its origin remote host matches GITEA_URL's host. Writes (merge PR + delete # branch) are confirmed per AGENT.md §1.4. Token scope: repo read + PR write + # branch delete. GITEA_URL= GITEA_TOKEN= # Later providers, behind the same interface (unused for now): GITHUB_TOKEN= GITLAB_TOKEN=