---
title: What are knots?
description: Knots are lightweight, headless git servers — the foundation of Tangled's decentralized architecture.
sidebar:
  order: 0
---

Knots are the foundation of Tangled's distributed architecture:
lightweight, headless servers that host git repositories. They are
designed to be trivial to run, whether that's a single-tenant
setup on a Raspberry Pi at home, or a larger multi-tenant
"community" server shared by many users.

There are several models for decentralized code collaboration,
ranging from ActivityPub's (Forgejo) federated model to Radicle's
entirely P2P model. Tangled takes a hybrid approach by building on
the [AT Protocol](https://atproto.com): decentralized data and
hosting, with a central identity. Your repositories live on a knot
you choose (or run yourself), but your identity — and things like
issues, pull requests, stars and follows — live in your AT
Protocol account, owned by you.

The appview at [tangled.org](https://tangled.org) ties the network
together: it acts as a consolidated "view" into repositories
hosted across all knots, so you can access, clone, and contribute
to any of them seamlessly. A repository on a home server appears
alongside one on a community knot, with no fragmentation.

## What a knot does

A knot:

- serves git over SSH (pushes) and HTTP (clones, fetches)
- emits events — pushes, ref updates — that the appview and other
  services consume
- owns its member list and per-repository collaborators, served
  over XRPC (as of v1.15)
- assigns each repository a DID (as of v1.13), making repositories
  stable across renames and transfers

By default, Tangled provides managed knots where you can host your
repositories for free — you never have to run one yourself. But if
you want your code on your own hardware, self-hosting is a first-class
workflow.

## Run your own

Head to the [self-hosting guide](/knots/self-hosting/) to set one
up — there's a NixOS module, a Docker Compose setup, and a manual
installation path. If you run into trouble, check the
[troubleshooting section](/knots/self-hosting/#troubleshooting),
and keep an eye on the [migration guides](/reference/migrations/)
when upgrading.

## Further reading

- [Introducing Tangled](https://blog.tangled.org/intro) — the
  original announcement, with more on the thinking behind knots
- [Hacking on Tangled](/contributing/hacking/) — run a knot
  locally in a dev VM
