Add server health endpoint and status page

Backend:
- New /api/server/health endpoint returning server, paths, disk,
  mods, steamcmd, and frontend status
- Health endpoint checks directory existence/writability, disk usage,
  server binary, and frontend dist availability

Frontend:
- New Status page (route /status) with sections for Server, SteamCMD,
  Mods, Frontend, Directories (with exists/writable badges), and
  Disk Usage (with size formatting and used-percent coloring)
- Paths are clickable to copy and use start-truncation (ellipsis on
  the left) with native hover tooltip
- Health API client integration with 10s auto-refresh

Misc:
- Update .gitignore and Makefile, minor Layout nav addition
This commit is contained in:
MrFastwind
2026-07-09 15:22:43 +02:00
parent 6f782af913
commit 2d301b95b6
10 changed files with 422 additions and 15 deletions

View File

@@ -1,11 +1,13 @@
.PHONY: backend frontend build run clean dev
DEV_DEPLOY_DIR ?= ../dev-deploy
# Default paths — override via env or copy .env.example
SERVERFILE_DIR ?= ./serverfiles
MODS_DIR ?= ./serverfiles/mods
CFG_DIR ?= ./serverfiles/cfg
PROFILES_DIR ?= ./serverfiles/profiles
DATA_DIR ?= ../../data
SERVERFILE_DIR ?= $(DEV_DEPLOY_DIR)/serverfiles
MODS_DIR ?= $(DEV_DEPLOY_DIR)/serverfiles/mods
CFG_DIR ?= $(DEV_DEPLOY_DIR)/serverfiles/cfg
PROFILES_DIR ?= $(DEV_DEPLOY_DIR)/serverfiles/profiles
DATA_DIR ?= $(DEV_DEPLOY_DIR)/data
backend:
cd backend && go build -o arma3-web-server ./cmd/server/
@@ -16,10 +18,10 @@ frontend:
build: backend frontend
run:
cd backend && SERVERFILE_DIR=$(SERVERFILE_DIR) MODS_DIR=$(MODS_DIR) CFG_DIR=$(CFG_DIR) PROFILES_DIR=$(PROFILES_DIR) DATA_DIR=$(DATA_DIR) GIN_MODE=debug go run ./cmd/server/
cd backend && DEV_DEPLOY_DIR=$(DEV_DEPLOY_DIR) SERVERFILE_DIR=$(SERVERFILE_DIR) MODS_DIR=$(MODS_DIR) CFG_DIR=$(CFG_DIR) PROFILES_DIR=$(PROFILES_DIR) DATA_DIR=$(DATA_DIR) GIN_MODE=debug go run ./cmd/server/
dev:
cd backend && SERVERFILE_DIR=$(SERVERFILE_DIR) MODS_DIR=$(MODS_DIR) CFG_DIR=$(CFG_DIR) PROFILES_DIR=$(PROFILES_DIR) DATA_DIR=$(DATA_DIR) GIN_MODE=debug go run ./cmd/server/ &
cd backend && DEV_DEPLOY_DIR=$(DEV_DEPLOY_DIR) SERVERFILE_DIR=$(SERVERFILE_DIR) MODS_DIR=$(MODS_DIR) CFG_DIR=$(CFG_DIR) PROFILES_DIR=$(PROFILES_DIR) DATA_DIR=$(DATA_DIR) GIN_MODE=debug go run ./cmd/server/ &
cd frontend && npm run dev
clean: