--- timezone: America/Toronto packages: - apt-utils - bash-completion - ca-certificates - curl - git - gnupg - htop - net-tools - openssh-server - python3 - python3-pip - python3-venv - sudo - vim - wget users: - name: cbalders groups: sudo shell: /bin/bash ssh_authorized_keys: - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINALaic1jpoP6t1urbZqJLI1eU5NeTVD9k8AAMAvOvvk OfficeMini" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGzTHdCiQjhIHsGB8oMpyKtr9TZXrXeIRKwcwe698zMW Generated By Termius" # Alloy ships journald to Loki on observe.lan.balders.ca. No docker on # this LXC — bare-metal systemd Alloy via Grafana apt repo. alloy_host_label: meridian alloy_loki_url: http://observe.lan.balders.ca:3100/loki/api/v1/push # Track A canary: _canary suffix lets the embedded exporter run in # parallel with the existing node_exporter scrape — once parity is # verified, flip this to node_lxc and decommission node_exporter. alloy_prom_job: node_lxc_canary alloy_prom_group: lxc alloy_prom_hostname: meridian # Meridian meridian_user: meridian meridian_home: /opt/meridian meridian_port: 3456 meridian_host: "0.0.0.0" meridian_idle_timeout_seconds: 300 meridian_node_major: 22 # LiteLLM — OpenAI-compatible proxy in front of Meridian litellm_user: litellm litellm_home: /opt/litellm litellm_venv: /opt/litellm/venv litellm_port: 4000 litellm_host: "0.0.0.0" litellm_package_spec: "litellm[proxy]==1.55.10" # Models map onto Meridian's pinned Anthropic-shape backend on 127.0.0.1:3456. # Native Claude aliases AND OpenAI-named aliases — some clients (paperless-ai's # setup wizard) hardcode `model=gpt-4o-mini` for validation regardless of # what you set as the default model, so we shadow the common OpenAI names too. litellm_models: # Native Claude aliases (preferred for new clients) - name: claude-haiku-4-5 backend: anthropic/claude-haiku-4-5 - name: claude-sonnet-4-6 backend: anthropic/claude-sonnet-4-6 - name: claude-opus-4-7 backend: anthropic/claude-opus-4-7 # OpenAI-name shadows — for clients that probe gpt-* names regardless of # config (paperless-ai wizard, Open WebUI defaults, etc.). All actually # backed by Claude on the Max sub. - name: gpt-4o-mini backend: anthropic/claude-haiku-4-5 - name: gpt-4o backend: anthropic/claude-sonnet-4-6 - name: gpt-4-turbo backend: anthropic/claude-sonnet-4-6 # Master key is required by LiteLLM. Pulled at deploy time from Infisical # /meridian/vault_litellm_master_key and passed via -e on the playbook # (see deploy.sh). litellm_master_key: "{{ lookup('env', 'LITELLM_MASTER_KEY') | default('CHANGE_ME', true) }}"