SoftVisor Infrastructure Monitoring System

Web application to monitor and manage the SoftVisor Debian root server: OS/package updates, vulnerabilities, backups of the Gitea/Postgres workloads on microk8s, and user management. See ROADMAP.md for the plan and CLAUDE.md for the constraints.

Stack

  • Backend: Rust, axum, sqlx (SQLite), clean architecture in four crates (backend/crates/*)
  • Frontend: Vue 3 + TypeScript, Vite, Tailwind CSS, Pinia, Vue Router (frontend/)
  • Tests: cargo test (unit + integration), Vitest (components/stores), Playwright (UI)

Development

Requirements: Rust stable, Node 22+, make.

cp .env.example backend/.env      # then edit JWT_SECRET and the bootstrap admin
cd frontend && npm ci && npx playwright install chromium && cd ..
make dev                          # backend on :8080, frontend on :5173 (proxies /api)
Command What it does
make test backend, frontend unit and Playwright UI tests
make test-backend cargo test --workspace
make test-frontend Vitest
make test-ui Playwright (starts backend with in-memory DB + Vite)
make lint rustfmt, clippy, eslint, prettier, vue-tsc
make build production frontend build + release binary

TDD workflow

Every feature starts with its tests:

  1. List the unit, integration and UI tests the feature needs.
  2. Write them so they fail (backend/crates/*/src/** unit tests, backend/crates/api/tests/ integration tests, frontend/src/**/*.test.ts and frontend/e2e/*.spec.ts).
  3. Implement the smallest code that makes them pass, then refactor.
  4. Commit and push.

First admin

On start the backend creates an admin user from BOOTSTRAP_ADMIN_EMAIL / BOOTSTRAP_ADMIN_PASSWORD if no user exists yet.

Description
No description provided
Readme 1.2 MiB
Languages
Rust 72.1%
Vue 15.5%
TypeScript 11.5%
Shell 0.7%
Makefile 0.1%