From 55c395a22cce0d1d9f457e4d21f923c0c41371bc Mon Sep 17 00:00:00 2001 From: Kawa Date: Fri, 10 Apr 2026 10:25:16 +0200 Subject: [PATCH] docs: initialize project --- .planning/PROJECT.md | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .planning/PROJECT.md diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md new file mode 100644 index 0000000..6c03166 --- /dev/null +++ b/.planning/PROJECT.md @@ -0,0 +1,62 @@ +# ImpTune + +## What This Is + +A self-hosted webapp (single Docker container) that lets IT technicians configure printer deployments and export ready-to-deploy packages for Microsoft Intune or NinjaRMM. It handles driver packaging, printer settings, install script generation, and .intunewin wrapping — all from a simple browser UI. + +## Core Value + +Generate a complete, working printer deployment package (script + drivers + icon) in minutes instead of manually scripting each printer setup. + +## Requirements + +### Validated + +(None yet — ship to validate) + +### Active + +- [ ] Upload or reference driver packages (ZIP/INF) from local storage or network share +- [ ] Configure all printer parameters: name, IP/port, color/BW, duplex, paper size, default tray, and other common settings +- [ ] Generate PowerShell install script that detects user vs. SYSTEM context and self-elevates when run by a user +- [ ] Export full Intune package (.intunewin) with bundled drivers, script, and custom icon +- [ ] Export NinjaRMM package (ZIP with PS script + driver files) +- [ ] Organize printers by client/tenant in a single no-auth interface +- [ ] Remember uploaded driver packages across sessions (minimal persistence) +- [ ] Run as a single Docker container with minimal dependencies + +### Out of Scope + +- User authentication / separate logins — internal tool on private network +- Full deployment history / audit log — not needed for v1 +- Direct Intune/Ninja API integration (push deployments) — export packages only +- Mobile app — desktop browser only + +## Context + +- Target users: MSP technicians managing printers across multiple client sites +- Multi-brand environment: HP, Canon, Ricoh, Brother, and others +- IntuneWinAppUtil.exe will be bundled inside the container (or its format reimplemented) to produce .intunewin files +- NinjaRMM deployments are script-based — a ZIP with PowerShell + drivers is the deliverable +- The generated PowerShell script must handle elevation: detect if running as SYSTEM (Intune/RMM) or as a user, and self-elevate if needed +- Intune deployments need a selectable app icon embedded in the package +- No authentication required — the app runs on a private/internal network + +## Constraints + +- **Deployment**: Single Docker container — no external database, message queue, or sidecar services +- **Dependencies**: Minimal — the fewer runtime dependencies the better +- **Platform**: Generated scripts target Windows endpoints (PowerShell 5.1+) +- **Persistence**: Lightweight — store driver packages on a Docker volume, use SQLite or flat files for config + +## Key Decisions + +| Decision | Rationale | Outcome | +|----------|-----------|---------| +| No authentication | Internal tool on private network, simplicity over security | — Pending | +| Bundle IntuneWinAppUtil | Avoid requiring user to provide external tooling | — Pending | +| Single Docker container | Minimal ops burden, easy to deploy and maintain | — Pending | +| Minimal persistence (drivers only) | Printers configured fresh each time, reduces state management complexity | — Pending | + +--- +*Last updated: 2026-04-10 after initialization*