Files
links/memory/MEMORY.md
T
2026-03-21 16:41:14 +11:00

1.1 KiB

Links Project Memory

  • Django + APScheduler + Tailwind + SQLite (local) / PostgreSQL (prod via DB_HOST env var)
  • Deployment: Docker → K3s at 192.168.1.2, namespace home-apps
  • Use uv run manage.py (not bare python manage.py) — greenlet/playwright has macOS code-signing issues locally
  • Templates extend base.html from templates/base.html (not app-level)
  • Scheduler singleton: core.scheduler.scheduler (BackgroundScheduler, already running from CoreConfig.ready)
  • App scheduler wiring pattern: import signals in AppConfig.ready(), wrap ORM calls in try/except

NetScan sub-app (implemented 2026-03-21)

  • Located at netscan/
  • 3 models: ScanProfile, ScanRun, ScanFinding
  • 6 check modules in netscan/checks/: router, dns, ingress, cameras, tls, ports
  • Scanner orchestrator: netscan/scanner.run_scan(profile_id, triggered_by)
  • Telegram notifications: netscan/notifications.py (raw requests, no library)
  • URL prefix: /ui/netscan/
  • Migration written manually (0001_initial.py) — local playwright/greenlet prevents running makemigrations