Files
muzick/AUDIT.md
T

1.8 KiB

Muzick — audit journal

Goal

Audit the muzick project at /home/kami/apps/muzick/, file Vikunja tasks for findings, and work on autonomous items.

Progress

2026-07-14 — Initial audit

Git: initialized, initial state committed (737bf19). Fixes committed in 42474c6.

Project structure: 196 files — TypeScript/Fastify backend, React/Vite frontend, BullMQ workers, PostgreSQL + Redis + Typesense.

Fixes applied

  1. AGENTS.md tech stack: python/fastapifastify/typescript (was wrong)
  2. CORS: Added @fastify/cors plugin to backend with env-based origin config
  3. .env.example: Created with placeholder values (secrets were only in .env which is gitignored)
  4. backend/src/index.ts: Removed dead code (empty file, server.ts is real entry point)

Tasks filed

  • See Homelab infra project. Key items:
    • #108: systemd service references dead Python venv (NEEDS FIX)
    • #109: pin Docker images (NEEDS FIX — minio:latest etc)
    • #110: N+1 queries in generators (PERFORMANCE)
    • #111: image proxy SSRF guard (SECURITY)

New critical issues found

  1. No auth on any APIx-user-id header with hardcoded fallback UUID is the only identity
  2. Admin routes unprotected — anyone can trigger scan/reindex/delete
  3. Postgres password "password" hardcoded in docker-compose.yml
  4. Typesense API key "muzick-key" hardcoded in docker-compose.yml
  5. SOCKS proxy IP 192.168.1.104 exposed in .env and AGENTS.md
  6. No tests for any worker service (1311-line enrichment.service.ts has 0 tests)
  7. Frontend never typechecked in CI
  8. No input validation on many routes (admin, library — as any casts)

Remaining autonomous work items

  • #108 — Fix systemd service file (references dead Python venv) — CAN DO
  • #109 — Pin Docker images in docker-compose.yml — CAN DO