build-jobsync-container: document prisma devDep pruning pitfall, nix entrypoint path issue, and verification step. deploy-jobsync: document service-versions.yaml requirement, image tag format, and 1Password item already created. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
| title | modified | status | branch | requires | tags | ||||
|---|---|---|---|---|---|---|---|---|---|
| Deploy JobSync | 2026-03-07 | active | mikado/jobsync |
|
|
Deploy JobSync
Deploy JobSync — a self-hosted job application tracker — to ringtail's k3s cluster via ArgoCD.
Context
JobSync is a Next.js app with SQLite storage that provides job application tracking, resume management, and AI-powered resume review/job matching. It runs as a single container with persistent storage at /data (SQLite DB + uploaded files).
What This Card Covers
With the container built and Ollama integration configured, this card wires up the deployment:
- ArgoCD Application targeting
ringtail.tail8d86e.ts.net:6443 - k8s manifests: Deployment, Service, Tailscale Ingress, PVC, ExternalSecret
- PVC using k3s local-path for
/data(SQLite + resume uploads) - ExternalSecret for
ENCRYPTION_KEYandAUTH_SECRETfrom 1Password - Caddy route:
jobsync.ops.eblu.me→ Tailscale ingress - Service documentation
Environment Variables
| Variable | Source | Purpose |
|---|---|---|
DATABASE_URL |
Hardcoded | file:/data/dev.db |
AUTH_SECRET |
ExternalSecret | NextAuth session signing |
ENCRYPTION_KEY |
ExternalSecret | AES-256-GCM for stored API keys |
NEXTAUTH_URL |
Hardcoded | https://jobsync.ops.eblu.me |
AUTH_TRUST_HOST |
Hardcoded | true |
TZ |
Hardcoded | America/Los_Angeles |
OLLAMA_BASE_URL |
Hardcoded | http://ollama.ollama.svc.cluster.local:11434 |
Deployment Notes (learned from first attempt)
service-versions.yaml: Add ajobsyncentry before committing container changes — thecontainer-version-checkpre-commit hook rejects commits touchingcontainers/<name>/without a matching entry.- Image tag format:
container-build-and-releaseproduces tags likev1.1.4-<sha>-nix, not barev1.1.4. SetnewTaginkustomization.yamlto the full tag frommise run container-list. - 1Password item: "JobSync" in blumeops vault, with
auth_secretandencryption_keyfields (already created).