Serve a repository from your own machine
tovio serve, for peer-to-peer work without a Forge.
Written By Dustin
Last updated 22 minutes ago
tovio servetovio serve --addr 127.0.0.1:0tovio serve --addr 192.0.2.10:7743Serves this repository to clients over TLS 1.3. Two people can collaborate directly with no server in between. The default listen address is 127.0.0.1:7743; a port of 0 lets the OS choose one, and the bound address is reported so you can see which.
What it prints on start
The repository id, the address it bound, the path of the certificate it just wrote (.tovio/relay-cert.der), and the exact tovio clone command a client should run — including the --cert argument. Copy that line to whoever is cloning.
It runs in the foreground and handles each connection on its own thread. Stop it with Ctrl-C.
It is a real bidirectional server
Clients can clone, fetch, and push. A push is not simply accepted: it is admitted only under the protected-lane conflict-free gate, and under the write-policy gate, where the relay verifies the pusher's signed write proof against its own policy manifest, with the repository identity as the Key Authority. Confidentiality of protected paths is the encryption's job, not the connection's.
Binding beyond loopback
The default is loopback on purpose. serve has no connection ACL and no network-admission policy, so anyone who can reach the port and holds the certificate can clone the whole object store — subject only to the crypto, which is what actually protects encrypted paths. Prefer naming one interface over a wildcard bind, and put it behind a network you control.
When this is enough
Pairing, a short-lived collaboration, syncing your own machines, or working somewhere with no infrastructure. Full sync semantics apply — many replicas converge without a central lock.
When it is not
serve gives you transfer and the two write gates above. It does not give you proposals, review, required checks, a merge queue, lock arbitration, events, webhooks, a signed audit chain, an admin roster, connection ACLs, network-admission policy, multi-repo hosting, replication, or availability when your laptop is shut. That is the capability boundary between it and a Forge, and it is deliberate.
Clients need your certificate
The certificate it writes is self-signed, so clients pin it with --cert. Give it to them over a channel you already trust — pinning to a certificate someone emailed you unverified defeats the purpose.