knotted-docker
February 24, 2026
knotted-docker is an unofficial Dockerised setup for running a Tangled knot server — the AT Protocol-native git hosting layer. Tangled uses "knot servers" as repository hosts rather than a user PDS. This repo wraps the official knot server in Docker Compose with optional Cloudflare Tunnel support for exposing it publicly.
Prerequisites
- Docker and Docker Compose
- Optional:
cloudflaredfor Cloudflare Tunnel routing
Setup
git clone git@github.com:ewanc26/knotted-docker
cd knotted-docker
Edit .local.env:
KNOT_SERVER_HOSTNAME=your.local.server
KNOT_SERVER_SECRET=your_secret
Start the server:
docker compose up --build -d
The knot server runs on port 5555; the internal listen address is 127.0.0.1:5444.
Cloudflare Tunnel
To expose the server publicly, install and authenticate cloudflared, create a tunnel, and route it to http://localhost:5555. For SSH/git-over-tunnel, add an SSH ingress rule and configure ~/.ssh/config with a ProxyCommand cloudflared access ssh entry.
Troubleshooting
If you hit an Already registered error, stop and remove the container, then remove the Docker volume:
docker volume rm knotted-docker_knot_data
docker compose up --build -d
Licence
See repository (unaffiliated with the Tangled or AT Protocol teams).
← all docs