101 lines
4.7 KiB
Markdown
101 lines
4.7 KiB
Markdown
---
|
|
inclusion: auto
|
|
---
|
|
|
|
# Session Context — Next Session Priorities
|
|
|
|
## Immediate Tasks
|
|
|
|
1. **Verify Jury-Voting** — `unikat.andreknie.de` is live and working
|
|
2. **Verify NoteGraph browse** — `notes.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
|