A Zippytal Node is a tiny, modular daemon. Run it on a laptop, a Pi, an old ThinkPad, or a $5 VPS — and you become the infrastructure behind Meet, Chat, Drive, and Community. One binary. No Docker. Apache 2.0. Free forever.
curl -fsSL node.zippytal.com/install.sh | sh signed · sha256 verified · readable source·read the script first
Install
One binary. No Docker required, no orchestrator required. Pick the packaging that fits your machine. They all install the same Go core.
$ curl -fsSL node.zippytal.com/install.sh | shlinux · macos$ brew install zippytal/tap/nodemacos$ docker run -d zippytal/nodeany platformRun anywhere
Linux
supportedx86_64 · aarch64
kernel ≥ 5.4
macOS
supportedIntel · Apple Silicon
12 Monterey+
Windows
supported11 · Server 2022
amd64
Raspberry Pi
supported3 · 4 · 5
honest: skip Pi Zero
Docker
supportedcompose · swarm · k8s
8 MB image
NAS
supportedSynology · unRAID · TrueNAS
via SPK / Docker
Architecture
Every Zippytal service is a module that plugs into the same core. That's why Meet streams video through the same transport Drive uses for file shards and Chat uses for messages. One network. One identity. One install.
Each layer only trusts the one beneath it. Services can't reach across into the Kernel.
Services
L4meet · chat · community · drive · your-app
Runtime
L3WASM sandbox · signed modules · per-service quotas
Protocol
L2libzippy · noise · QUIC · DHT · federation
Kernel
L1storage · identity · scheduler · telemetry (opt-in)
Services
Toggle any service on or off from the dashboard. Each one inherits the node's identity, transport, and storage.
For operators
We will tell you when your hardware is wrong. The Pi Zero is not supported. A 2009 ThinkPad will run a node, but not a meet service. The dashboard surfaces real numbers from the moment you install.
Operators, not just owners
Invite other accounts as admins on a node. Granular caps per role. Full audit log.
Federation, not isolation
Friend other nodes. Share federation capacity. The network grows by relationship, not registration.
Loopback admin API
Admin API binds to 127.0.0.1 always. Public API binds where you tell it. Two listeners, never collapsed.
| profile | cpu | ram | disk | bandwidth |
|---|---|---|---|---|
minimum | 1 core | 256 MB | 200 MB | 1 Mbps |
recrecommended | 2 cores | 1 GB | 20 GB | 50 Mbps |
host meet for friends | 4 cores | 4 GB | 100 GB | 200 Mbps |
federation hub | 8 cores | 16 GB | 1 TB | 1 Gbps |
For developers
The Node SDK gives every service the same primitives: routes, storage, identity, and the federation transport. Ship a service once, run it on every node that opts in.
/admin/healthliveness probe · loopback/admin/services/:id/startbearer token · audit log/peerspublic · cached 5s/srv/:name/*forwarded to service moduleimport { defineService } from "@zippytal/node";
export default defineService({
name: "hello-world",
version: "0.1.0",
routes: {
"/greet": async (req) => {
const { name = "world" } = await req.json();
return Response.json({ msg: `hello, ${name}` });
},
},
});Network · live
note· Telemetry is opt-in and aggregate-only. We literally cannot see how many nodes exist — only how many phone home. Real number is higher. We're fine with that.
Why it matters
Zippytal is free, open source, and self-hosted because the alternative is renting your digital life from companies that decided they own it. Nodes is the load-bearing piece. The layer that makes the rest of the ecosystem yours, not ours.
One install. One binary. Your hardware joins a network that outlives any company, including ours.