xray-configurator
Static server-side JSON configurator for Xray-core. The app is designed to run on GitHub Pages and keeps all work in the browser: no backend, no telemetry, no remote validation.
Features
Section titled “Features”- Protocol-aware server config builder for inbounds, outbounds, stream settings, TLS, REALITY and socket options.
- Global sections for
log,dns,routing,policy,api,metrics,fakeDns,observatory,burstObservatory,geodataandversion. - Nested editors for common high-friction structures: inbound clients, DNS servers and routing rules.
- Import existing JSON, edit it visually or as raw JSON, then export a clean config.
- Built-in presets for common server deployments.
- EN/RU UI switch.
- GitHub Pages-ready Vite build with relative asset paths.
Development
Section titled “Development”git submodule update --init --recursivenpm cinpm run devChecks
Section titled “Checks”npm testnpm run buildnpm audit --omit=devIf Xray is installed locally, validate example configs with the real core parser:
npm run validate:xrayUse XRAY_BIN when the binary is not on PATH:
XRAY_BIN=/usr/local/bin/xray npm run validate:xrayDeployment
Section titled “Deployment”The repository includes .github/workflows/deploy.yml. Enable GitHub Pages in repository settings and select GitHub
Actions as the source. Every push to main builds and publishes dist.
Examples
Section titled “Examples”The examples directory is a Git submodule pointing to the official XTLS/Xray-examples repository.
When cloning manually, use:
git clone --recurse-submodules <repo-url>For an existing checkout:
git submodule update --init --recursiveCoverage Notes
Section titled “Coverage Notes”Xray-core evolves quickly and some fields are only discoverable from infra/conf source structs. The visual UI covers
the most common server-side and advanced fields, while raw JSON inputs remain available for experimental, newly added or
rarely used options. For strict runtime validation, export the JSON and run:
xray run -test -config xray-server-config.json