Jacob Schmidt c3531a5839 Refresh host UI and show app version
- Add version display to the host shell
- Improve log rendering and refresh timing
- Tidy layout, styling, and window config
2026-06-06 19:35:45 -05:00
2026-05-23 09:23:12 -05:00
2026-06-06 19:35:45 -05:00
2026-05-23 09:23:12 -05:00
2026-05-23 09:23:12 -05:00
2026-05-23 09:23:12 -05:00
2026-05-23 09:23:12 -05:00
2026-05-28 18:53:40 -05:00
2026-05-23 09:23:12 -05:00
2026-05-23 09:23:12 -05:00

Forge

Forge is a framework for Arma 3 persistent game servers. It combines SQF addons, a Rust arma-rs extension, shared service crates, and web-based client interfaces for player data, organizations, banking, garages, lockers, phones, CAD, stores, and task workflows.

Storage

Durable persistence is backed by SurrealDB. The server extension loads schema modules at startup and routes domain repositories through the SurrealDB client.

[surreal]
endpoint = "127.0.0.1:8000"
namespace = "forge"
database = "main"
username = "root"
password = "root"
connect_timeout_ms = 5000

Workspace

arma/
  mod/         Shared client/server config addon built as @forge_mod
  client/      Client-side addons and browser UIs
  server/      Server-side addons and extension crate
bin/
  host/        Tauri host control panel for SurrealDB, ICOM, and Arma server
  icom/        Interprocess communication helper
lib/
  models/      Shared domain models
  repositories/ Repository traits and in-memory test stores
  services/    Domain business logic
  shared/      Cross-crate helpers
tools/         Web UI build tooling

Common Commands

cargo test
npm run build:webui
npm run host:dev
.\build-arma.ps1

.\build-arma.ps1 builds arma/mod, arma/client, and arma/server. Load the resulting @forge_mod on both clients and servers, @forge_client on clients, and @forge_server on the server only.

Documentation

Extension Status

"forge_server" callExtension ["status", []];
"forge_server" callExtension ["surreal:status", []];

Both commands report the persistence connection state.

Host Control Panel

bin/host contains a Tauri control app for local Forge server hosting. It can start and stop SurrealDB, forge-icom.exe, and an Arma 3 dedicated server, edit their launch commands, and show basic TCP health plus captured logs.

# Build ICOM first if the host config points at target/release/forge-icom.exe
cargo build --release -p forge-icom

# Run the host UI during development
npm run host:dev

# Build the packaged desktop app
npm run host:build

The app reads the shared config.toml from the repo root during development, or from the current/executable directory in packaged use. If no shared config exists, it falls back to bin/host/host.example.toml; saving from the Settings view writes the active shared config.toml. The shared file includes the host process sections plus the [server] section used by ICOM and the [surreal] section used by the Arma extension.

Description
No description provided
Readme 242 MiB
Languages
SQF 29.3%
JavaScript 27.8%
Rust 21.1%
cpp 8.7%
Pawn 5.8%
Other 7.1%