Skip to content

Detailed Configuration Reference

EASYDEPLOY reads configuration from two JSON files.

1. system-config.json — System Configuration

Section titled “1. system-config.json — System Configuration”

This file is located alongside easydeploy.exe in the release package, and is baked into boot.wim by BootBuilder when building the USB.

Its role is to define the system’s core functions: display labels, rescue tool paths, the OS Catalog (BYOC), telemetry (BYOB), and the preshared-key for profile decryption. This file cannot be edited at runtime (it lives inside boot.wim) — to change it, edit before building and let BootBuilder package the new version.

Advanced keys (Self-catalog/BYOB/Encryption/ZeroTouch) are only for MSP Advanced — on Free, these are ignored at runtime. The catalog works fully on every tier (see the table below).

{
"_comment": "EASYDEPLOY configuration — edit this file to custom labels, and tool paths without recompiling.",
"labels": {
"flow1Title": "SETUP WINDOWS [DEFAULT]",
"flow1Desc": "Clean install Windows operating system",
"flow2Title": "SETUP WINDOWS [BUSINESS]",
"flow2Desc": "Deploy Windows OS with business profile",
"aboutInfo": "EASYDEPLOY | Business Windows Deployment …",
"toolMultiDriveLabel": "DISK BACKUP",
"toolExplorerLabel": "FILE EXPLORER",
"toolHwInfoLabel": "HARDWARE INFO",
"toolBrowserLabel": "WEB BROWSER"
},
"toolPaths": {
"multiDrive": "MultiDrive\\MultiDrive.exe",
"explorer": "Explorer++\\Explorer++.exe",
"hwInfo": "HWInfo\\HWINFO64.exe",
"browser": "Palemoon\\Palemoon.exe"
},
"behavior": {
"defaultWifiSsid": "",
"defaultWifiPassword": "",
"deployLogCSV": true
},
"catalog": {
"url": "https://esd.coresystem.vn/data.json",
"timeoutSeconds": 30,
"downloadMethod": "auto",
"cloudCatalog": true,
"filterCatalog": true
},
"telemetry": {
"enabled": false,
"endpoint": "",
"apiKey": "",
"reportDeployment": true
},
"profileEncryption": {
"enabled": false,
"passphrase": ""
}
}
Key Structure Purpose On Free
labels Labels for the 2 main installation flows, rescue function buttons, and the About dialog. ✅ Effective (edit before build — see note below)
toolPaths Relative paths to rescue tools — resolved automatically under Softwares\ on the USB. Serves as the fallback value: used only when user-config.json does not declare portableApps. ✅ Effective (edit before build)
behavior Default WiFi (defaultWifiSsid/defaultWifiPassword) + deployLogCSV. ✅ Effective (edit before build)
catalog OS Catalog source (url/timeoutSeconds/downloadMethod/cloudCatalog/filterCatalog). Always-fallback design: url points to the catalog operated by CoreSystem — if it goes down (rare), the engine switches to the embedded catalog. cloudCatalog:true = prioritize cloud; filterCatalog:true = OS Configurator only shows `Home Pro
telemetry BYOB telemetry (enabled/endpoint/apiKey). ⚠️ Ignored — only CSV log on USB
profileEncryption Profile encryption (enabled/passphrase). ⚠️ Ignored

1.1. License Verification — Offline License (sole method)

Section titled “1.1. License Verification — Offline License (sole method)”

Simply place the *.lic file (issued by CoreSystem) into EASYDEPLOY\ on the USB — the client automatically verifies the ECDSA signature + USB-SN binding + license tier locally.

2. user-config.json — Customer Deployment Configuration

Section titled “2. user-config.json — Customer Deployment Configuration”

File location: [USB]:\EASYDEPLOY\user-config.json.

It contains default installation parameters and deployment customizations.

Each customer/MSP partner uses their own .lic license file on their USB.

{
"enableF3Express": true, // enable Express mode (F3)
"zeroTouch": false, // Advanced only — ignored on Free
"deploy": {
"version": "25h2",
"edition": "Pro",
"activation": "Retail",
"languageCode": "en-us",
"diskNumber": 0,
"profile": "1.Tweaks"
},
"portableApps": { … }, // overrides toolPaths
"toolMultiDriveLabel": "DISK BACKUP", // overrides tool label
"toolExplorerLabel": "FILE EXPLORER",
"toolHwInfoLabel": "HARDWARE INFO",
"toolBrowserLabel": "WEB BROWSER"
}
Key Structure Purpose On Free
enableF3Express Enable/disable Express mode (F3). ✅ Effective
zeroTouch Boot USB → auto-run Express (zeroTouch:true). MSP Advanced only. ⚠️ Ignored
deploy.version OS version in OSCatalog (e.g., 25h2). Resolves to the latest build automatically if multiple builds share the same version. ✅ Effective
deploy.activation Home → Retail; Enterprise → Volume; Pro → choose Retail or Volume. Incorrect selection → incorrect installation. ✅
portableApps / tool*Label Override rescue tool paths or button labels. When not declared, the system falls back to the values in system-config.json. ✅
deploy.profile Profile name for Express (1.Tweaks/2.TweaksApp). Free is hard-coded to 2 profiles — creating 3.Acme will be ignored. To use a custom profile on Free: overwrite the contents of one of the two original folders (keeping the exact names 1.Tweaks/2.TweaksApp) — other folder names are ignored. ⚠️ Only 1.Tweaks/2.TweaksApp are effective

3. Catalog data.json — Valid Operating System List

Section titled “3. Catalog data.json — Valid Operating System List”

The Catalog is a list of valid Windows Images (downloaded from Microsoft’s official distribution channel).

CoreSystem hosts it at https://esd.coresystem.vn/data.json. Declared via catalog.url in system-config.json.

When WinPE boots, the system automatically downloads the list and caches it at X:\EasyDeploy\catalog.json.

MSP Advanced can self-host data.json (details in the technical docs bundled with the .lic). Free uses CoreSystem’s cloud catalog — the embedded catalog is always the fallback.

General flow: download → cache → fallback to embedded when offline.

Each catalog entry:

{
"build": "26200.8873", // build number
"version": "25h2", // version (e.g., 25h2, 24h2)
"fileName": "26200.8873…en-us.esd", // file name — must match offline file on USB
"languageCode": "en-us",
"architecture": "x64", // primary platform x86_64
"activation": "Retail", // or Volume
"size": 5895987847,
"sizeGB": 5.5,
"hash": "3fc7cbe5…", // SHA-256 for download/offline verification
"hashType": "SHA-256",
"url": "http://dl.delivery.mp.microsoft.com/…esd",
"editions": ["Pro", "Home", …] // editions contained in this image
}

3.1. OS Source Scanning and Resolution (Step 6)

Section titled “3.1. OS Source Scanning and Resolution (Step 6)”
  1. Offline-first: Engine scans EASYDEPLOY\OS\ on all partitions. Finds a file matching fileName, verifies the SHA-256 hash. Valid → use local file (no network required).
  2. Online download: No offline file found or hash mismatch. Engine downloads from url via curl/BITS and verifies the hash after download completes.
  3. Abort: No network and no valid offline file. Engine stops and displays an error message.
File Path Role
easydeploy.exe Embedded in sources\boot.wim Main executable (provided by CoreSystem).
system-config.json Inside boot.wim (alongside easydeploy.exe) System configuration — BootBuilder bakes it into boot.wim at build time (labels, toolPaths fallback, catalog, telemetry, preshared-key).
user-config.json [USB]:\EASYDEPLOY\ Deployment and license verification configuration (per customer).
data.json Cloud esd.coresystem.vn & cache X:\EasyDeploy\catalog.json Catalog of valid Windows Images.
EASYDEPLOY\Profiles\* USB Post-installation configuration profiles (initialized by BootBuilder).
EASYDEPLOY\OS\* USB (optional) OS source for Offline/Hybrid installation (download from esd.coresystem.vn).
Softwares\* USB Portable rescue software and tools (packaged by BootBuilder).