2026-10-12 21:52:22 +07:00
2026-10-12 21:52:22 +07:00

NPInv

Studio dashboard for Naspad Studio: track client projects and task checklists, link invoices to projects, save branded A4 PDFs, and track what is outstanding, overdue and paid.

  • Design: docs/superpowers/specs/2026-10-12-npinv-design.md

  • Live: https://invoice.naspadstudio.id

  • Studio dashboard design: docs/superpowers/specs/2026-10-15-studio-dashboard-design.md

  • Local verification, migration rehearsal, and recovery: docs/studio-dashboard-verification.md

Projects can be archived and restored without changing invoice history. Clients with projects cannot be deleted; linked projects cannot move to a different client.

Develop

npm install
npm run dev

The app opens at http://localhost:3000 and keeps its data in data/npinv.db, which is not committed.

npm test
npm run build && npm run lint

Deploy

Commit first; only committed code is deployed. With the Mac on the personal tailnet, put the server address in deploy/.env.local (gitignored, never committed):

NPINV_HOST=root@<server-tailscale-ip>

Then:

./deploy/deploy.sh

This copies the last commit to /srv/npinv/src on naspad-server and runs docker compose up -d --build in /srv/npinv.

On the server

What Where
Compose project /srv/npinv (compose.yaml, src/)
Database /srv/npinv/data/npinv.db
Backups /srv/npinv/backups, nightly at 03:20, kept 14 days
Port 127.0.0.1:3003, published by tailscale serve on HTTPS 8445
Backup log journalctl -t npinv-backup

To restore a backup: stop the container, replace data/npinv.db with the snapshot, delete data/npinv.db-wal and data/npinv.db-shm if present, and start the container.

Native iOS companion

The native app lives in the sibling NPiOS workspace. It uses the authenticated, /api/v1 API: contract and rollout. It reads everything and can create, edit and delete tasks; writes share the Server Actions' code. Device sessions expire after 30 days and can be revoked individually in Settings. The mobile API is deployed at the existing HTTPS dashboard address. Deployment and rollback record. All other editing, and business settings, continue through this dashboard.

S
Description
NP Studio Invoice
Readme
2 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 95.7%
JavaScript 2.6%
CSS 0.9%
Shell 0.6%
Dockerfile 0.2%