Quick start
This walkthrough assumes you have installed jalth and WARP on at least two devices.
1. Create the mesh
Section titled “1. Create the mesh”On your admin device, run:
jalth initThe CLI prompts for your Cloudflare API token, deploys the Registry Worker, configures Zero Trust, and enrolls this device. With a custom domain:
jalth init --domain myteam.comWhen complete, share the join URL:
jalth join https://jalth.myteam.com2. Add a member
Section titled “2. Add a member”Before anyone can join, add their email to the mesh:
jalth role set sarah@team.com member3. Join from another device
Section titled “3. Join from another device”On the second device:
jalth join https://jalth.myteam.comBrowser SSO completes enrollment. The device gets a CGNAT IP and a .mesh hostname.
4. Verify connectivity
Section titled “4. Verify connectivity”jalth statusjalth ping sarah-laptop5. Expose a service (optional)
Section titled “5. Expose a service (optional)”Requires a mesh domain (jalth init --domain or jalth domain set):
jalth serve demo --port 3000 --allow group:devsWithout a domain, use a throwaway quick tunnel:
jalth serve demo --port 3000 --quickWhat you built
Section titled “What you built”Registry Worker
Mesh state in D1. Proxies Cloudflare API calls — devices never hold your API token.
jalth.myteam.workers.devWARP mesh
WireGuard-encrypted device-to-device traffic via Cloudflare’s edge.
100.96.0.0/12 CGNAT rangeGateway DNS
Device names resolve on every enrolled device automatically.
homeserver.mesh → 100.96.0.2Access control
Three layers: mesh membership, management roles, per-service policies.
jalth role · jalth serve —allowNext steps
Section titled “Next steps”- Expose services with HTTPS and identity gates
- Enable Zero Trust SSH on your servers
- Add headless devices with auth keys