ccip-router 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +25 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -240,6 +240,23 @@ What `withWyriwe()` adds on top of basic:
240
240
 
241
241
  ---
242
242
 
243
+ ## Node modes
244
+
245
+ ccip-router runs in two modes — any combination can form a mesh.
246
+
247
+ | Mode | Description | Typical host |
248
+ |---|---|---|
249
+ | **Operator node** | Admin dashboard, signing key, ENS records, attestation pipeline | Self-hosted (Docker / VPS / home server) |
250
+ | **Public node** | Mesh sync + CCIP-Read serving only. No admin surface, no key UI. Set `DISABLE_ADMIN=true` | Any PaaS (Railway, Fly, Render) |
251
+
252
+ Both modes use the same Docker image and npm package. The difference is configuration only.
253
+
254
+ **→ [Full deployment guide](DEPLOYMENT.md)** — self-hosted operator setup, Railway one-click public node, reverse proxy config, Cloudflare Tunnel, multi-URL resolver, key generation, security notes.
255
+
256
+ [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/template/ccip-router)
257
+
258
+ ---
259
+
243
260
  ## Quick start (setup wizard)
244
261
 
245
262
  ```bash
@@ -266,6 +283,8 @@ npm run dev
266
283
 
267
284
  ## Environment variables
268
285
 
286
+ > **Security:** never put `GATEWAY_PRIVATE_KEY` or other secrets inline in a compose file. Use `env_file:` pointing to a `chmod 600` file, or your platform's secrets UI (Railway Variables, Fly secrets, etc.). See [DEPLOYMENT.md](DEPLOYMENT.md) for the recommended pattern.
287
+
269
288
  | Variable | Required | Default | Description |
270
289
  |---|---|---|---|
271
290
  | `GATEWAY_PRIVATE_KEY` | Yes* | — | 32-byte hex signing key (`0x...`). Without it the node runs in dry-run mode (unsigned records). |
@@ -282,6 +301,12 @@ npm run dev
282
301
  | `NODE_REGISTRY` | No | — | Deployed `NodeRegistry` contract address. Enables on-chain node registration. |
283
302
  | `RPC_URL` | No | — | JSON-RPC endpoint. Required alongside `ATTESTATION_INDEX`. |
284
303
  | `MODEL_HASH` | No | — | `keccak256` of model weights CID. Required to activate WYRIWE attestation. |
304
+ | `NODE_URL` | No | — | This node's public URL. Required for VNI (signed node identity). |
305
+ | `AUTO_DISCOVER` | No | `true` | Pull peer lists from synced peers automatically. |
306
+ | `CDN_PROVIDER` | No | — | `pinata` or `storacha`. Enables IPFS upload from admin panel. |
307
+ | `CDN_API_KEY` | No | — | API key / JWT for the configured CDN provider. |
308
+ | `NETWORK_KEY` | No | — | Ethereum address. Messages signed by this key are marked as official network announcements. |
309
+ | `DISABLE_ADMIN` | No | `false` | Set `true` to skip mounting `/admin` and `/static` entirely. Recommended for public PaaS nodes. |
285
310
 
286
311
  \* Can also come from `config.json` written by the setup wizard.
287
312
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccip-router",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "The coordination layer CCIP-Read was missing. Peer sync, deduplication, and cryptographic attestation for any CCIP-Read gateway.",
5
5
  "type": "module",
6
6
  "main": "./dist/lib.js",