← Case Studies

Infrastructure · Internal platform engineering · November 4, 2025

Homelab Ops & Credential Dashboard

Self-hosted dashboard for app inventory and encrypted credentials — Vite/React UI, Express/SQLite API, Docker/Nginx delivery.

Outcomes

Ownership

Self-hosted

Credentials stay on infrastructure you control.

Complexity

Minimal stack

React + Express + SQLite is enough.

Delivery

Dockerized

One host can run the cockpit.

Context

Not every secret store needs enterprise SaaS — some need ownership and simplicity.

Challenge

Small ops footprints accumulate apps, URLs, and credentials across notes and browsers. Teams needed a private inventory with encrypted secret storage and a simple UI.

Approach

We built a React/Vite dashboard and Express API on SQLite with bcrypt auth and encrypted credential records, packaged with Docker, Nginx, and supervisord for single-host deployment.

Architecture

Vite React UI, Express API, SQLite, encrypted credential fields, Docker + Nginx reverse proxy.

Scope

  • App registry
  • Credential CRUD
  • Auth
  • Encrypted at-rest secrets
  • Docker packaging

Constraints

  • Single-node threat model
  • Must remain understandable to maintainers
  • Backup/restore of SQLite matters

Solution highlights

  • Encryption key handled as explicit ops material
  • Tiny API surface for inventory + secrets
  • UI optimized for frequent lookup, not enterprise IAM theater

Technologies

ReactViteExpressSQLiteDockerNginx

Results

  • Central app inventory for a homelab/small ops footprint
  • Encrypted credential storage behind authenticated UI
  • Single-host Docker deployment path
  • Low-ops stack appropriate for private use

Lessons learned

  • Internal tools should optimize for restore drills.
  • Encryption without key ops is cosplay.
  • Small dashboards beat scattered notes for app inventories.

Let's talk

Ready to build something that lasts?

Partner with a senior engineering team that designs, ships and operates software businesses rely on for years.

Get in touch