feat(honcho): add role + day1 playbook + traefik route for lincoln

Deploys Honcho (plastic-labs/honcho) as a rootful Podman + Quadlet
service on the lincoln VM (10.1.71.132). Three containers on a
user-defined network:

  - honcho-postgres  pgvector/pgvector:pg16
  - honcho-api       FastAPI on :8000
  - honcho-deriver   background worker for theory-of-mind derivations

LLM provider: Anthropic Claude (claude-sonnet-4-5). Switching providers
is two env-var changes — see README.

Traefik route hall-of-presidents.local.mk-labs.cloud -> lincoln:8000
added under boilerplates/traefik/dynamic/. JARVIS itself talks to
Honcho directly at lincoln:8000 (east-west); the Traefik alias exists
only for browser access to the Swagger /docs UI.

Requires three new vault entries before first run:
  - vault_honcho_database_password
  - vault_honcho_jwt_secret
  - vault_honcho_anthropic_api_key
This commit is contained in:
JARVIS
2026-05-30 22:41:33 -05:00
parent 09ae954085
commit 4d7766d1b1
17 changed files with 667 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
---
# ============================================================================
# Honcho deriver worker container (Quadlet)
# ----------------------------------------------------------------------------
# Same image as the API container, but runs the deriver script instead of
# the FastAPI server. Pulls jobs off the in-database queue and calls the
# configured LLM provider for theory-of-mind derivations.
# ============================================================================
- name: Deploy Honcho deriver Quadlet
ansible.builtin.template:
src: honcho-deriver.container.j2
dest: "{{ honcho_quadlet_dir }}/{{ honcho_deriver_container_name }}.container"
owner: root
group: root
mode: "0644"
register: honcho_deriver_quadlet
- name: Reload systemd to pick up Quadlet changes
ansible.builtin.systemd:
daemon_reload: true
when: honcho_deriver_quadlet.changed
- name: Ensure Honcho deriver container is started and enabled
ansible.builtin.systemd:
name: "{{ honcho_deriver_container_name }}.service"
state: started
enabled: true
- name: Restart Honcho deriver on Quadlet change
ansible.builtin.systemd:
name: "{{ honcho_deriver_container_name }}.service"
state: restarted
when: honcho_deriver_quadlet.changed