feat(nixos): add tailscale module
This commit is contained in:
parent
343c802e6d
commit
7881c76f73
3 changed files with 63 additions and 0 deletions
29
nix/modules/networking/ssh.nix
Normal file
29
nix/modules/networking/ssh.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.flake;
|
||||||
|
inherit (lib.modules) mkMerge;
|
||||||
|
inherit (cfg.lib.modules) forAllUsers';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
flake.modules.nixos.default = mkMerge [
|
||||||
|
{
|
||||||
|
services.openssh.enable = true;
|
||||||
|
users.users = forAllUsers' (_: value: { openssh.authorizedKeys.keys = [ value.pubkey ]; });
|
||||||
|
persistFiles = [
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key"
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key.pub"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{ users.users.root.openssh.authorizedKeys.keys = [ cfg.admin.pubkey ]; }
|
||||||
|
];
|
||||||
|
flake.modules.homeManager.default = {
|
||||||
|
persistDirs = [ ".ssh" ];
|
||||||
|
programs.ssh.enable = true;
|
||||||
|
programs.ssh.extraConfig = ''
|
||||||
|
Host *
|
||||||
|
SetEnv TERM=xterm-256color
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
17
nix/modules/networking/tailscale.nix
Normal file
17
nix/modules/networking/tailscale.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ config, ... }:
|
||||||
|
let
|
||||||
|
inherit (config.flake.paths) secrets;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
flake.modules.nixos.default =
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
services.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
authKeyFile = config.sops.secrets."tailscale/client-secret".path;
|
||||||
|
authKeyParameters.preauthorized = true;
|
||||||
|
};
|
||||||
|
persistDirs = [ "/var/lib/tailscale" ];
|
||||||
|
sops.secrets."tailscale/client-secret".sopsFile = secrets + "/tailscale.yaml";
|
||||||
|
};
|
||||||
|
}
|
17
secrets/tailscale.yaml
Normal file
17
secrets/tailscale.yaml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
tailscale:
|
||||||
|
client-secret: ENC[AES256_GCM,data:qAJUDTHxnzhgUtpe/DaH8Vv72jy/DWU/1UKzp2Pg/GtayClZXGFz00bCNKmZJCE7NYHERgr2Ssnhpz90eRCjKg==,iv:aWp2lvIFpUH6OMTkD8V1HNMyxUPxiVA+Il4NvlVKjOA=,tag:OzkdsOKerKiSHzHSkScIQA==,type:str]
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- recipient: age12l33pas8eptwjc7ewux3d8snyzfzwz0tn9qg5kw8le79fswmjgjqdjgyy6
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5ZytHNnlKcWFPVVNpTkxX
|
||||||
|
cFgxRjFDdWJkMzB2NUk1N2VLSWx3cVpvY20wCkdHbjZ4ZUlHTWp1QUFJVGxaV2cx
|
||||||
|
K0NlaFdnYlEvektieDJJVkY2cEtmL1UKLS0tIDFHQlM4OEIzaGVvUThCbUJZNTU3
|
||||||
|
ZGNJd3NvSCsrdDNFb0VuMDJOU09DVEEKrDnezqYWRuEyS6/WRWq0jMfv4DQ3TS1L
|
||||||
|
Zic6TBIA3qNEjUlqXKRfq//H3vDRz4dzZCqbbh+5+FXDGBIVLL2DaA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2025-07-07T11:12:16Z"
|
||||||
|
mac: ENC[AES256_GCM,data:rOuEqjHByaGaYredcMFGds+pB1rIgh0qu245Vt2gVGjjqOJtfEYcuvziVKgvV5yvBVhizcjeFIzCFdQ2KpflvwOLjiOZ594UaZChPGtO5hDc1VY/Gz86t8x6DYuHjWu4S1XOrBWgv2ebD0iBgbjuRNgBEhkWfVS2/7hn1PtqGD0=,iv:ZQ0b7pHG3NM2mwQdSVoGr4WsluIrp+/YUQi6KoMneC0=,tag:5E5bNxdRPQpTRVrQ+qoxfQ==,type:str]
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.10.2
|
Loading…
Add table
Add a link
Reference in a new issue