Storage Appliance (skeleton)

This repository is a starting skeleton for a storage appliance management system using Go + HTMX.

Features in this skeleton:

  • HTTP server with chi router and graceful shutdown
  • Basic DB migration and seed for a sqlite database
  • Minimal middleware placeholders (auth, RBAC, CSRF)
  • Templates using html/template and HTMX sample
  • Job runner skeleton and infra adapter stubs for ZFS/NFS/SMB/MinIO/iSCSI

Quick start:

make run

Build:

make build

Run tests:

make test

The skeleton is intentionally minimal. Next steps include adding real service implementations, authentication, and more tests.

API examples:

Get pools (viewer):

curl -H "X-Auth-User: viewer" -H "X-Auth-Role: viewer" http://127.0.0.1:8080/api/pools

Create a pool (admin):

curl -s -X POST -H "X-Auth-User: admin" -H "X-Auth-Role: admin" -H "Content-Type: application/json" \
	-d '{"name":"tank","vdevs":["/dev/sda"]}' http://127.0.0.1:8080/api/pools
Description
storage appliance
Readme 30 MiB
Languages
Go 92.6%
HTML 6.7%
Makefile 0.7%