# Global defaults for Monoceros containers. Values here fall through
# into any container yml that doesn't set them itself. Optional —
# Monoceros runs fine without this file.

schemaVersion: 1

defaults:
  # Git committer identity used for any container whose yml doesn't
  # set its own `git.user`. apply prompts once when both fields are
  # empty here AND on the host, then offers to persist the answer
  # here so you don't get asked again on future containers.
  git:
    user:
      name: ''
      email: ''

  # Shared per-feature options. Credentials and tokens that you'd
  # otherwise repeat across every container yml live here, keyed by
  # the feature's OCI ref. Setting a value here does NOT activate the
  # feature in any container — you still pick which containers use it
  # via `monoceros init <name> --with=<feature>` or
  # `monoceros add-feature <name> <feature>`. The defaults only kick
  # in once a container has the feature on its list and leaves the
  # option unset. Per-container values always win.
  features:

    # Claude Code — Anthropic's CLI coding assistant. OAuth/subscription
    # login persists across container rebuilds.
    # Options: version (npm spec), apiKey (`sk-ant-…` for API auth;
    # empty for OAuth login on first run).
    # See https://docs.anthropic.com/en/docs/claude-code for further information.
    # ghcr.io/getmonoceros/monoceros-features/claude-code:1:
    #   version:
    #   apiKey:

    # GitHub CLI — The official `gh` CLI. Login persists across
    # container rebuilds.
    # Options: apiToken (GitHub PAT, scopes repo / read:org / gist /
    # read:user; empty for `gh auth login` on first run).
    # See https://cli.github.com/ for further information.
    # ghcr.io/getmonoceros/monoceros-features/github-cli:1:
    #   apiToken:

    # Atlassian (Rovo Dev / twg / Forge, and Bitbucket) authenticates
    # from env, not here — set ATLASSIAN_EMAIL / ATLASSIAN_INSTANCE plus the
    # tokens you need in monoceros-config.env or a per-container <name>.env.
    # Three of them, one per app: ATLASSIAN_API_TOKEN for twg and Forge,
    # ATLASSIAN_ROVODEV_TOKEN for acli, ATLASSIAN_BITBUCKET_TOKEN for clone
    # and push. See https://getmonoceros.build/docs/features/atlassian/.

routing:
  # Host port the shared Traefik singleton binds. Default 80 →
  # container URLs are http://<name>.localhost/. If port 80 is held by
  # something else on your machine (system nginx, Pi-hole, …) set a
  # free port here (e.g. 8080); URLs then become
  # http://<name>.localhost:8080/. The pre-flight check before apply /
  # start / add-port reads this and asks you to free the port or
  # change this setting on conflict.
  hostPort: 80
