{
  "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"
}