-
Notifications
You must be signed in to change notification settings - Fork 0
Development
sidimam edited this page Sep 11, 2026
·
3 revisions
cmd/unraid-gateway/ main: config → server → http.Server with graceful shutdown
internal/config/ environment parsing
internal/auth/ Unraid key validation (GraphQL), session store, per-IP limiter, client IP
internal/fsapi/ file API: safe path resolution, handlers, resumable uploads, change feed
internal/proxy/ GraphQL passthrough
internal/webui/ embedded static UI
internal/server/ routing, auth middleware, logging, security headers
templates/ Unraid Community Applications template
assets/ icon (SVG source + PNG)
go test ./... # unit tests: path safety, handlers, resumable uploads, change feed pagination, auth/limiter
go vet ./... && gofmt -l .
go run ./cmd/unraid-gateway # needs UNRAID_URL and DATA_ROOT
docker build -t unraid-gateway .Without Go installed: docker run --rm -v "$PWD":/src -w /src golang:1.23-alpine go test ./....
- Every push to
mainbuilds and pushesghcr.io/sidimam/unraid-gateway:latest(amd64 + arm64) after tests pass. - A
vX.Y.Ztag additionally pushesX.Y.ZandX.Ytags. The binary's/healthzversion comes fromgit describe. - The Unraid template points at
latest; nothing else to update.
Everything under /api/v1 stays backward compatible. Breaking changes will go to /api/v2 with a major version bump, so a latest container never breaks an older app.
Issues and pull requests are welcome. Keep the standard-library-only rule, add a test for every handler change, run gofmt.