{
"path": "/3m2wkvtopys2t",
"site": "at://did:plc:l37td5yhxl2irrzrgvei4qay/site.standard.publication/3m2mxdedwoc2m",
"$type": "site.standard.document",
"title": "Notes - installing Tailscale on a Raspberry Pi (or any Linux device)",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Recently, I set up my Raspberry Pi as a Tailscale exit node because I can't trust big companies and my school's internet."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "So I did what most people who's Bluesky PDS stopped working and lost access to their old account and now has a Raspberry Pi that's not in use and watches LTT. So I set up my Pi up as a Tailscale exit node."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "to install my way as a exit node:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Update stuff:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo apt update && sudo apt upgrade -y",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "run this command that does something"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "and this one"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "update "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo apt-get update",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "install tailscale"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo apt-get install tailscale",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 40,
"byteStart": 32
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "advertise as exit node, replace 10.0.0.0 with your \"root ip\""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "for example if your ip is 10.0.0.233 your root ip is 10.0.0.0"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo tailscale up --advertise-routes=10.0.0.0/24 --advertise-exit-node",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "if you dont want to run as a exit node run"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo tailscale up",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "after you login "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "update again because you should"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo apt update && sudo apt upgrade -y",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 25,
"byteStart": 6
},
"features": [
{
"uri": "https://login.tailscale.com/login?next_url=%2Fwelcome",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "go to Tailscale dashboard"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "click the three dots on your device "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreiasejyeqgkc2hzyipnnc3mtzt6ww2mbh3v7tsqk73d6skbxrehxau"
},
"mimeType": "image/png",
"size": 28115
},
"aspectRatio": {
"width": 275,
"height": 403
}
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "click \"disable key expiry\", then make sure it says \"enable key expiry\""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreigayt3dyc5yhwg43dc7exe2qwjk2iwevn3uyxjao64ypnx7acd2zy"
},
"mimeType": "image/png",
"size": 28122
},
"aspectRatio": {
"width": 286,
"height": 406
}
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "then click \"edit route settings\""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreiednmuw33jnccs5pgrhahi3jl6xtopm7dijs65b4hn4epydkspc4u"
},
"mimeType": "image/png",
"size": 27770
},
"aspectRatio": {
"width": 279,
"height": 396
}
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "\"unable to relay traffic\""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "if don't see this click skip this"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "once you click and you see \"unable to relay traffic\" message, this is because your device (exit node) needs IP forwarding"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreidgszhz2mhpgkvqspgqq5xldpr2yfqjesokk5vuasmqq4gsyvff7u"
},
"mimeType": "image/png",
"size": 18805
},
"aspectRatio": {
"width": 493,
"height": 150
}
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "to set up ip forwarding"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 43,
"byteStart": 29
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "if your linux device has the /etc/sysctl.d directory run:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf\necho 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf\nsudo sysctl -p /etc/sysctl.d/99-tailscale.conf",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "if not run"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf\necho 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf\nsudo sysctl -p /etc/sysctl.conf",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "then "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo apt update && sudo apt upgrade -y",
"syntaxHighlightingTheme": "catppuccin-latte"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "then refresh the Tailscale dashboard"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "click the check box on the route you advertised then click \"Use as exit node\""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreihmx2jfqp2qdyqnpg57wslh42jwre6behqxmo3yf4ragrdjlsktue"
},
"mimeType": "image/png",
"size": 45693
},
"aspectRatio": {
"width": 492,
"height": 486
}
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "click save"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreihk7ung3jo6qpe7igybeaffmmhtkrndswq72aavgzzrpx5k54t6f4"
},
"mimeType": "image/png",
"size": 41851
},
"aspectRatio": {
"width": 505,
"height": 443
}
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 63,
"byteStart": 59
},
"features": [
{
"uri": "https://tailscale.com/download",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "then install Tailscale on your phone, Mac, windows pc, etc here"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 37,
"byteStart": 17
},
"features": [
{
"uri": "https://madebydanny.uk/followonbsky?did=did:plc:l37td5yhxl2irrzrgvei4qay",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "after thats done follow me on bluesky and check out my website:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"url": "https://madebydanny.uk",
"$type": "pub.leaflet.blocks.iframe",
"height": 600
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreics4xjkoi6a3su7uioltuydu4t4isqiby6exempgjjdgbtxxynamm",
"uri": "at://did:plc:l37td5yhxl2irrzrgvei4qay/app.bsky.feed.post/3m2wkw37wqs2t",
"commit": {
"cid": "bafyreibylhy2zatshl4rkqqfdpaqkhuprgqlk6r2ozfxf76fhwy6ne5lky",
"rev": "3m2wkw3eo4l2d"
},
"validationStatus": "valid"
},
"description": "You provide the hardware, they provide the software and infrastructure, easy as that",
"publishedAt": "2025-10-11T16:06:29.847Z"
}