b853aead8c51eb42ef294d45105ca1a34f6d086f
Arma 3 Web Server
Web-based management panel for Arma 3 dedicated servers. Start, stop, configure, and monitor your server from a browser.
Features
- Server control — Start, stop, restart, and view status
- Live console — WebSocket terminal showing server stdout/stderr and RPT log tailing
- Config management — Create, edit, duplicate, and delete
.cfgconfiguration files with a Monaco editor - Modlist management — Create modlists with reorderable entries, enable/disable per mod, import from HTML (e.g. ArmA 3 Steam Workshop collections), check download status
- SteamCMD integration — Update the server binary, download individual workshop mods, bulk download missing or outdated mods, all streamed live to the UI
- Settings UI — Edit server parameters, IP:port, platform, Steam branch/user, CBA/AI/difficulty presets, and select active config/modlist
- Log viewer — Browse and read server log files
Quick Start
Docker
docker compose up -d
The web UI is served on http://localhost:8080.
Manual
# Backend
cd backend
go build -o arma3-web-server ./cmd/server
./arma3-web-server
# Frontend (development)
cd frontend
npm install
npm run dev
Configuration
All paths are configurable via environment variables:
| Variable | Default | Description |
|---|---|---|
DATA_DIR |
data |
Server metadata (settings, modlist JSON files) |
SERVERFILE_DIR |
serverfiles |
Arma 3 server installation |
MODS_DIR |
serverfiles/mods |
Local mod symlinks/copies |
CFG_DIR |
serverfiles/cfg |
Server configuration .cfg files |
PROFILES_DIR |
serverfiles/profiles |
Arma 3 profile and log directory |
FRONTEND_DIR |
../frontend/dist |
Built frontend assets |
LISTEN |
:8080 |
HTTP listen address |
API
REST API at /api/* and WebSocket endpoints at /ws/*. Key routes:
| Method | Path | Description |
|---|---|---|
GET/PUT |
/api/server/settings |
Read/update server settings |
POST |
/api/server/start|stop|restart |
Server lifecycle |
GET |
/api/server/status |
Running state |
GET/POST/PUT/DELETE |
/api/configs |
CRUD for .cfg files |
GET/POST/PUT/DELETE |
/api/modlists |
CRUD for modlists |
POST |
/api/modlists/import |
Import HTML workshop list |
GET |
/api/modlists/:id/check |
Check mod download status |
POST |
/api/modlists/:id/download-missing|update-all |
Bulk workshop operations |
POST |
/api/server/steamcmd/update-game|download-mod |
SteamCMD operations |
GET |
/api/server/logs |
List log files |
GET |
/api/server/paths |
Show server file paths |
WS |
/ws/server/logs|rpt|steamcmd/logs |
Live log streaming |
Project Structure
backend/
cmd/server/ Entry point
internal/
api/ HTTP handlers and routes
models/ Data types
services/ Business logic
frontend/
src/
api/ HTTP and WebSocket client
components/ Shared UI components
pages/ Route-level views
types/ TypeScript interfaces
Development
# Backend
cd backend && go run ./cmd/server
# Frontend (hot reload)
cd frontend && npm run dev
# Lint
cd frontend && npm run lint
License
MIT
Description
Languages
TypeScript
50.3%
Go
47.6%
Dockerfile
0.9%
Makefile
0.9%
HTML
0.3%