Configuration is now held by the `.org` files. All `.nix` files are tangled from the org-mode files.
53 lines
1.3 KiB
Org Mode
53 lines
1.3 KiB
Org Mode
#+title: Tailscale
|
||
#+setupfile: ../headers
|
||
|
||
* Tailscale
|
||
I use [[https://tailscale.com/][Tailscale]] as the mesh VPN tying all my machines together. Here’s
|
||
the =nixos.tailscale= module.
|
||
#+begin_src nix :tangle yes
|
||
{
|
||
flake.modules.nixos.tailscale = {
|
||
services.tailscale = {
|
||
<<enable>>
|
||
<<extra-flags>>
|
||
};
|
||
};
|
||
}
|
||
#+end_src
|
||
|
||
** Enabling Tailscale
|
||
#+name: enable
|
||
#+begin_src nix
|
||
enable = true;
|
||
#+end_src
|
||
|
||
** Extra Flags
|
||
I add some extra flags for Tailscale.
|
||
|
||
#+name: flags
|
||
| Flag | Why |
|
||
|-----------------+---------------------------------------------------------|
|
||
| =--accept-dns= | Turns on MagicDNS |
|
||
| =--accept-routes= | Let this machine use subnets advertised by other nodes |
|
||
| =--ssh= | Turns on Tailscale’s own SSH server for easy SSH access |
|
||
|
||
#+name: make-flags
|
||
#+begin_src emacs-lisp :exports none :var flags=flags :cache yes
|
||
(mapconcat (lambda (flag)
|
||
(replace-regexp-in-string "=" "\"" (car flag)))
|
||
flags
|
||
"\n")
|
||
#+end_src
|
||
|
||
#+RESULTS[4969e8a817fa6617e136b57d47a43d6e21ce2a7b]: make-flags
|
||
: "--accept-dns"
|
||
: "--accept-routes"
|
||
: "--ssh"
|
||
|
||
#+name: extra-flags
|
||
#+begin_src nix
|
||
extraSetFlags = [
|
||
<<make-flags()>>
|
||
];
|
||
#+end_src
|