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: the OS Catalog (BYOC) 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).

{
"catalog": {
"url": "https://esd.coresystem.vn/data.json",
"timeoutSeconds": 30,
"downloadMethod": "auto",
"cloudCatalog": true,
"filterCatalog": true
},
"profileEncryption": {
"enabled": false,
"passphrase": ""
}
}
Key Structure Purpose On Free
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
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
"timezone": "", // Windows TZ id, e.g. "SE Asia Standard Time" (applied at startup)
"wifi": {
"ssid": "", // prefilled in the WiFi Link [F2] dialog
"password": "",
"autoConnect": false // true = auto-connect at boot (ZeroTouch mass deploy)
},
"deploy": {
"version": "25h2",
"edition": "Pro",
"activation": "Retail",
"languageCode": "en-us",
"diskNumber": 0,
"profile": "1.Tweaks"
},
"portableApps": { // optional: override rescue tool paths
"multiDrive": "MultiDrive\\MultiDrive.exe",
"explorer": "Explorer++\\Explorer++.exe",
"hwInfo": "HWInfo\\HWINFO64.exe",
"browser": "Palemoon\\Palemoon.exe"
}
}
Key Structure Purpose On Free
enableF3Express Enable/disable Express mode (F3). ✅ Effective
zeroTouch Boot USB → auto-run Express (zeroTouch:true). MSP Advanced only. ⚠️ Ignored
wifi WiFi settings (ssid/password/autoConnect). Prefilled in the WiFi Link [F2] dialog. autoConnect:true = the app connects automatically at startup (for ZeroTouch mass deployment on laptops); if it fails, ZeroTouch stops (network required). Default false = operator connects manually via F2. ✅ Effective
timezone Windows time-zone id (e.g. SE Asia Standard Time). Applied at startup — syncs the clock and the footer time. Leave empty to keep the WinPE default. ✅ Effective
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; Education → Retail; Enterprise → Volume; Pro → choose Retail or Volume. Incorrect selection → incorrect installation. ✅
portableApps Optional — override rescue tool paths. When not declared, the app uses its built-in default paths (the same folder structure shown above). Tool labels are fixed in the interface. ✅
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 (catalog, 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.
Inventory-*.json/.csv C:\ root + USB root Inventory record for every deployment (see Inventory Data).
Inventory.work.json X:\EASYDEPLOY\ Temporary Early/Refresh inventory snapshot.
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).