Files
2026-06-30 20:37:40 +02:00

4.7 KiB

inclusion
inclusion
auto

Session Context — Next Session Priorities

Immediate Tasks

  1. Verify Jury-Votingunikat.andreknie.de is live and working
  2. Verify NoteGraph browsenotes.andreknie.de/browse?token=... (clear SB service worker first)
  3. KIQ Docker deploy — Docker not set up on KIQ VPS yet. Need someone with root to install Docker or find alternative
  4. Rechnungen prüfen — 8 receipts labeled in OrgMyLife, forward to rechnungen@d-hive.de

Key Technical Notes

Git on this machine

  • Git path: C:\Users\AndreKnie\AppData\Local\GitHubDesktop\app-3.5.8\resources\app\git\cmd\git.exe
  • Always use: $gitExe = "C:\Users\AndreKnie\AppData\Local\GitHubDesktop\app-3.5.8\resources\app\git\cmd\git.exe" then & $gitExe <command>
  • gh CLI is NOT available

OrgMyLife API

  • Endpoint: https://api.andreknie.de
  • Auth: Authorization: Bearer !Z5l5vUcm!&qfhUuE=Nf
  • Projects board: GET/PUT /api/projects, POST /api/projects/create
  • Tasks: GET /api/tasks, agent-ready filter: ?filter_agent=true

NoteGraph

  • SilverBullet: https://notes.andreknie.de (now serves browse UI as primary)
  • Browse: https://notes.andreknie.de/browse?token=PASSWORD
  • Upload: https://notes.andreknie.de/upload?token=PASSWORD
  • Ingestion uses Mistral (mistral-small-latest) for enrichment and Vision OCR
  • Repo: NoteGraph/ with ingestion/ Python package
  • Docker on VPS: Ingestion (8001), SilverBullet (3000, internal only)
  • When creating notes for the user, always add AI-Source to the tags array in frontmatter

Jury-Voting App

  • Repo: Jury-Voting/ (private, GitHub: DoctoDre/Jury-Voting)
  • URL: https://unikat.andreknie.de (password: UNIKAT_jury)
  • Stack: React 19 + Vite frontend, Express.js backend, JSON file persistence, SSE real-time
  • Port: 3002 on VPS, systemd service jury-voting
  • Caddy config: in NoteGraph/Caddyfile (block for unikat.andreknie.de)
  • Event: 15. UNIKAT Ideenwettbewerb, 19. Mai 2026, Science Park Kassel
  • 6 jurors, 11 teams, 5 criteria (1-10 scale)
  • Admin: /admin, Results/Beamer: /results
  • Future: move to unikat.d-hive.de (add DNS + Caddy block on KIQ VPS)

Repos in workspace

  • OrgMyLife/ — Personal task/coordination system (FastAPI + PostgreSQL)
  • AI-Orchestrator/ — Agent orchestration (Python)
  • NoteGraph/ — Knowledge base (SilverBullet + ingestion pipeline)
  • Confluence_Bot/ — Confluence automation (PowerShell)
  • Projekt-KIQ-HP/ — KIQ homepage (React/Vite, currently uses Supabase)
  • Jury-Voting/ — UNIKAT Jury Voting (React/Vite + Express)
  • project-audit/ — DB enterprise project audit data (GitLab)

Deploy pattern

  • Push to main → GitHub Actions → SSH to VPS → deploy
  • Secrets via GitHub repo secrets
  • Caddy reverse proxy managed via NoteGraph/Caddyfile

Deploy pattern for private repos (no git on VPS)

  • Build in GitHub Actions (checkout → npm ci → npm run build)
  • Create tar.gz archive of built artifacts
  • Upload via appleboy/scp-action to VPS /tmp/
  • Extract via appleboy/ssh-action, install deps, restart systemd service
  • This avoids needing git credentials on the VPS

VPS (217.160.174.2)

  • Caddy handles HTTPS for all domains (auto Let's Encrypt)
  • OrgMyLife on port 8000 (api.andreknie.de)
  • SilverBullet on port 3000 (notes.andreknie.de)
  • Ingestion on port 8001 (notes.andreknie.de/upload)
  • Jury-Voting on port 3002 (unikat.andreknie.de)
  • SSH: root@217.160.174.2, key stored as DEPLOY_SSH_KEY in GitHub repos
  • Node.js 20 installed via nodesource
  • No rsync installed — use tar+scp for file transfer
  • No docker on this VPS for Jury-Voting (runs as systemd service with tsx)

Projekt-KIQ-HP (separate VPS: projekt-kiq.d-hive.de)

  • Deploy user: github-deploy
  • Static site deployed via rsync to /opt/projekt-kiq/site
  • Caddy config at /etc/caddy/Caddyfile (managed by KIQ deploy workflow)
  • Has rsync available
  • SSH key: DEPLOY_SSH_KEY in KIQ GitHub repo

Express 5 Gotchas

  • Do NOT pass app to functions typed as Express — route registration silently fails at runtime
  • Use Router() and app.use(router) pattern instead
  • The Express type from @types/express doesn't match Express 5 runtime correctly
  • SPA catch-all: use middleware (app.use) not app.get('/{*splat}') — the splat syntax can interfere

DB GitLab (project-audit)

  • Requires scm-info.yaml in repo root for security scans
  • Format: version: v3, license: LicenseRef-DBISL, contacts:, confidentiality: internal, reference-ids: none
  • GitLab URL: git.tech.rz.db.de/AndreKnie/project-audit

DNS

  • andreknie.de DNS managed externally (takes ~5 min to propagate new subdomains)
  • Add A record pointing to 217.160.174.2 for new subdomains
  • Caddy auto-provisions HTTPS certificates once DNS resolves