Files
homelab/ansible/roles/honcho/templates/honcho-postgres.container.j2
JARVIS 4d7766d1b1 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
2026-05-30 22:41:37 -05:00

36 lines
1.1 KiB
Django/Jinja

# {{ ansible_managed }}
# mk-labs pgvector-enabled PostgreSQL backing store for Honcho
# Managed by Ansible - honcho role
[Unit]
Description=PostgreSQL (pgvector) for Honcho
After=network-online.target
Wants=network-online.target
[Container]
Image={{ honcho_postgres_image }}
ContainerName={{ honcho_postgres_container_name }}
Network={{ honcho_network_name }}
# Persistent data on a named volume. :Z relabels for SELinux; harmless on
# Ubuntu's ext4/apparmor stack and portable to any future host.
Volume={{ honcho_postgres_volume }}:/var/lib/postgresql/data:Z
Environment=POSTGRES_USER={{ honcho_db_user }}
Environment=POSTGRES_DB={{ honcho_db_name }}
Environment=POSTGRES_PASSWORD={{ honcho_db_password }}
Environment=POSTGRES_INITDB_ARGS={{ honcho_postgres_initdb_args }}
# Healthcheck — systemd doesn't act on this, but it's useful diagnostically
HealthCmd=pg_isready -U {{ honcho_db_user }} -d {{ honcho_db_name }}
HealthInterval=10s
HealthTimeout=5s
HealthRetries=3
[Service]
Restart=always
TimeoutStartSec=120
[Install]
WantedBy=multi-user.target default.target