stuff
This commit is contained in:
parent
791758b499
commit
9704c36cb3
13
base.nix
13
base.nix
|
@ -1,21 +1,14 @@
|
||||||
{ config, pkgs, lib, inputs, ... }:
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = let ifExists = p: if builtins.pathExists p then p else {}; in [
|
||||||
./cachix.nix # update with `cachix use --mode nixos -d . FOOBAR`
|
./cachix.nix # update with `cachix use --mode nixos -d . FOOBAR`
|
||||||
./profiles/locale-no.nix
|
./profiles/locale-no.nix
|
||||||
# results of 'nixos-generate-config'
|
# results of 'nixos-generate-config'
|
||||||
# nice to have if i just dump this flake into /etc/nixos on a clean install
|
# nice to have if i just dump this flake into /etc/nixos on a clean install
|
||||||
(if builtins.pathExists ./configuration.nix
|
(ifExists ./configuration.nix )
|
||||||
then ./configuration.nix
|
(ifExists ./hardware-configuration.nix )
|
||||||
else {}
|
|
||||||
)
|
|
||||||
(if builtins.pathExists ./hardware-configuration.nix
|
|
||||||
then ./hardware-configuration.nix
|
|
||||||
else {}
|
|
||||||
)
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: how can i do this in home-manager?
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
"pulsar-1.106.0"
|
"pulsar-1.106.0"
|
||||||
"pulsar-1.109.0"
|
"pulsar-1.109.0"
|
||||||
|
|
120
flake.lock
120
flake.lock
|
@ -135,6 +135,119 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-1909": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1600952148,
|
||||||
|
"narHash": "sha256-GUKHrnng33luc6mUT3rDnZ3Hm+4MMEJpEchRIAQx7JQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "75f4ba05c63be3f147bcc2f7bd4ba1f029cedcb1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-19.09",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-2003": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1620055814,
|
||||||
|
"narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-20.03",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-2009": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1635350005,
|
||||||
|
"narHash": "sha256-tAMJnUwfaDEB2aa31jGcu7R7bzGELM9noc91L2PbVjg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1c1f5649bb9c1b0d98637c8c365228f57126f361",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-20.09",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-2105": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1659914493,
|
||||||
|
"narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-21.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-2111": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1659446231,
|
||||||
|
"narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "eabc38219184cc3e04a974fe31857d8e0eac098d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-21.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-2205": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1685573264,
|
||||||
|
"narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "380be19fbd2d9079f677978361792cb25e8a3635",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-22.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-2211": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1688392541,
|
||||||
|
"narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-22.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs-2305": {
|
"nixpkgs-2305": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704290814,
|
"lastModified": 1704290814,
|
||||||
|
@ -239,6 +352,13 @@
|
||||||
"home-manager-edge": "home-manager-edge",
|
"home-manager-edge": "home-manager-edge",
|
||||||
"nixos-generators-2311": "nixos-generators-2311",
|
"nixos-generators-2311": "nixos-generators-2311",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
|
"nixpkgs-1909": "nixpkgs-1909",
|
||||||
|
"nixpkgs-2003": "nixpkgs-2003",
|
||||||
|
"nixpkgs-2009": "nixpkgs-2009",
|
||||||
|
"nixpkgs-2105": "nixpkgs-2105",
|
||||||
|
"nixpkgs-2111": "nixpkgs-2111",
|
||||||
|
"nixpkgs-2205": "nixpkgs-2205",
|
||||||
|
"nixpkgs-2211": "nixpkgs-2211",
|
||||||
"nixpkgs-2305": "nixpkgs-2305",
|
"nixpkgs-2305": "nixpkgs-2305",
|
||||||
"nixpkgs-2311": "nixpkgs-2311",
|
"nixpkgs-2311": "nixpkgs-2311",
|
||||||
"nixpkgs-edge": "nixpkgs-edge",
|
"nixpkgs-edge": "nixpkgs-edge",
|
||||||
|
|
28
flake.nix
28
flake.nix
|
@ -6,6 +6,14 @@
|
||||||
nixpkgs-edge.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs-edge.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixpkgs-2311.url = "github:NixOS/nixpkgs/nixos-23.11";
|
nixpkgs-2311.url = "github:NixOS/nixpkgs/nixos-23.11";
|
||||||
nixpkgs-2305.url = "github:NixOS/nixpkgs/nixos-23.05";
|
nixpkgs-2305.url = "github:NixOS/nixpkgs/nixos-23.05";
|
||||||
|
nixpkgs-2211.url = "github:NixOS/nixpkgs/nixos-22.11"; # for old docs
|
||||||
|
nixpkgs-2205.url = "github:NixOS/nixpkgs/nixos-22.05"; # for old docs
|
||||||
|
nixpkgs-2111.url = "github:NixOS/nixpkgs/nixos-21.11"; # for old docs
|
||||||
|
nixpkgs-2105.url = "github:NixOS/nixpkgs/nixos-21.05"; # for old docs
|
||||||
|
nixpkgs-2009.url = "github:NixOS/nixpkgs/nixos-20.09"; # for old docs
|
||||||
|
nixpkgs-2003.url = "github:NixOS/nixpkgs/nixos-20.03"; # for old docs
|
||||||
|
nixpkgs-1909.url = "github:NixOS/nixpkgs/nixos-19.09"; # for old docs
|
||||||
|
nixpkgs-1909.flake = false; # Earlier versions are not flake-pure
|
||||||
|
|
||||||
# https://github.com/nix-community/home-manager
|
# https://github.com/nix-community/home-manager
|
||||||
home-manager-edge.url = "github:nix-community/home-manager/master";
|
home-manager-edge.url = "github:nix-community/home-manager/master";
|
||||||
|
@ -43,13 +51,6 @@
|
||||||
#https://github.com/numtide/nixpkgs-unfree # has a cache
|
#https://github.com/numtide/nixpkgs-unfree # has a cache
|
||||||
#https://github.com/matthewbauer/nixiosk
|
#https://github.com/matthewbauer/nixiosk
|
||||||
inputs.pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
inputs.pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
||||||
|
|
||||||
# used to host old docs
|
|
||||||
nixpkgs-22.url = "github:NixOS/nixpkgs/nixos-22.11";
|
|
||||||
nixpkgs-21.url = "github:NixOS/nixpkgs/nixos-21.11";
|
|
||||||
nixpkgs-20.url = "github:NixOS/nixpkgs/nixos-20.09";
|
|
||||||
nixpkgs-19.url = "github:NixOS/nixpkgs/nixos-19.09";
|
|
||||||
nixpkgs-19.flake = false; # Earlier versions are not flake-pure
|
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
#pbsds-papers.url = "git+ssh://git@github.com/pbsds/papers.git";
|
#pbsds-papers.url = "git+ssh://git@github.com/pbsds/papers.git";
|
||||||
|
@ -95,6 +96,13 @@
|
||||||
home-manager = inputs'.home-manager-2305;
|
home-manager = inputs'.home-manager-2305;
|
||||||
sops-nix = inputs'.sops-nix-2305;
|
sops-nix = inputs'.sops-nix-2305;
|
||||||
};
|
};
|
||||||
|
inputs-2211 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2211; };
|
||||||
|
inputs-2205 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2205; };
|
||||||
|
inputs-2111 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2111; };
|
||||||
|
inputs-2105 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2105; };
|
||||||
|
inputs-2009 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2009; };
|
||||||
|
inputs-2003 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2003; };
|
||||||
|
inputs-1909 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-1909; };
|
||||||
|
|
||||||
mkFlakeView = inputs: system: inputs.nixpkgs.lib.mapAttrs (name: flake: {
|
mkFlakeView = inputs: system: inputs.nixpkgs.lib.mapAttrs (name: flake: {
|
||||||
# TODO filter non-flake inputs
|
# TODO filter non-flake inputs
|
||||||
|
@ -124,9 +132,9 @@
|
||||||
mkModule = domain: system: inputs: stateVersion: modules: hostname: ({ lib, ... }: {
|
mkModule = domain: system: inputs: stateVersion: modules: hostname: ({ lib, ... }: {
|
||||||
system.stateVersion = lib.mkDefault stateVersion; # TODO: home-manager
|
system.stateVersion = lib.mkDefault stateVersion; # TODO: home-manager
|
||||||
|
|
||||||
imports = [
|
imports = let ifExists = p: if builtins.pathExists p then p else {}; in [
|
||||||
./base.nix
|
./base.nix
|
||||||
"${self}/hosts/${hostname}"
|
(ifExists "${self}/hosts/${hostname}")
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
inputs.home-manager.nixosModule
|
inputs.home-manager.nixosModule
|
||||||
] ++ modules;
|
] ++ modules;
|
||||||
|
@ -273,7 +281,7 @@
|
||||||
in {
|
in {
|
||||||
envrc-local = mkShell envrc-pkgs;
|
envrc-local = mkShell envrc-pkgs;
|
||||||
envrc-remote = mkShell (envrc-pkgs ++ [
|
envrc-remote = mkShell (envrc-pkgs ++ [
|
||||||
flakes.unstable.pkgs.remote-exec # TODO: stable
|
(pkgs.remote-exec or flakes.unstable.pkgs.remote-exec)
|
||||||
pkgs.yq
|
pkgs.yq
|
||||||
pkgs.rsync
|
pkgs.rsync
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
../../profiles/sshd.nix
|
../../profiles/sshd.nix
|
||||||
../../profiles/podman.nix
|
../../profiles/podman.nix
|
||||||
|
|
||||||
|
../../profiles/vpn-pbsds/headscale.nix # opens port 3478
|
||||||
|
|
||||||
../../users/pbsds
|
../../users/pbsds
|
||||||
../../users/jornane
|
../../users/jornane
|
||||||
|
|
||||||
|
@ -25,8 +27,6 @@
|
||||||
|
|
||||||
../../profiles/services/tmate-server.nix # opens port 42244
|
../../profiles/services/tmate-server.nix # opens port 42244
|
||||||
|
|
||||||
../../profiles/vpn-pbsds/headscale.nix
|
|
||||||
|
|
||||||
../../profiles/http # enables nginx+acme, defines mkDomain
|
../../profiles/http # enables nginx+acme, defines mkDomain
|
||||||
../../profiles/http/index
|
../../profiles/http/index
|
||||||
../../profiles/http/services/cinny.nix
|
../../profiles/http/services/cinny.nix
|
||||||
|
|
|
@ -28,28 +28,52 @@ in
|
||||||
}
|
}
|
||||||
# == Old Nixpkgs manuals ==
|
# == Old Nixpkgs manuals ==
|
||||||
/** /
|
/** /
|
||||||
|
{
|
||||||
|
dirname = "nixpkgs-manual-23.05";
|
||||||
|
basename= "manual.html";
|
||||||
|
path = "${mk-nixpkgs-manual inputs.nixpkgs-2213}05share/doc/nixpkgs";
|
||||||
|
desc = "Official Nixpkgs 23.05 manual";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
dirname = "nixpkgs-manual-22.11";
|
dirname = "nixpkgs-manual-22.11";
|
||||||
basename= "manual.html";
|
basename= "manual.html";
|
||||||
path = "${mk-nixpkgs-manual inputs.nixpkgs-22}/share/doc/nixpkgs";
|
path = "${mk-nixpkgs-manual inputs.nixpkgs-2211}/share/doc/nixpkgs";
|
||||||
desc = "Official Nixpkgs 22.11 manual";
|
desc = "Official Nixpkgs 22.11 manual";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
dirname = "nixpkgs-manual-22.05";
|
||||||
|
basename= "manual.html";
|
||||||
|
path = "${mk-nixpkgs-manual inputs.nixpkgs-2205}/share/doc/nixpkgs";
|
||||||
|
desc = "Official Nixpkgs 22.05 manual";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
dirname = "nixpkgs-manual-21.11";
|
dirname = "nixpkgs-manual-21.11";
|
||||||
basename= "manual.html";
|
basename= "manual.html";
|
||||||
path = "${mk-nixpkgs-manual inputs.nixpkgs-21}/share/doc/nixpkgs";
|
path = "${mk-nixpkgs-manual inputs.nixpkgs-2111}/share/doc/nixpkgs";
|
||||||
desc = "Official Nixpkgs 21.11 manual";
|
desc = "Official Nixpkgs 21.11 manual";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
dirname = "nixpkgs-manual-21.05";
|
||||||
|
basename= "manual.html";
|
||||||
|
path = "${mk-nixpkgs-manual inputs.nixpkgs-2105}/share/doc/nixpkgs";
|
||||||
|
desc = "Official Nixpkgs 21.05 manual";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
dirname = "nixpkgs-manual-20.09";
|
dirname = "nixpkgs-manual-20.09";
|
||||||
basename= "manual.html";
|
basename= "manual.html";
|
||||||
path = "${mk-nixpkgs-manual inputs.nixpkgs-20}/share/doc/nixpkgs";
|
path = "${mk-nixpkgs-manual inputs.nixpkgs-2009}/share/doc/nixpkgs";
|
||||||
desc = "Official Nixpkgs 20.09 manual";
|
desc = "Official Nixpkgs 20.09 manual";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
dirname = "nixpkgs-manual-20.03";
|
||||||
|
basename= "manual.html";
|
||||||
|
path = "${mk-nixpkgs-manual inputs.nixpkgs-2003}/share/doc/nixpkgs";
|
||||||
|
desc = "Official Nixpkgs 20.03 manual";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
dirname = "nixpkgs-manual-19.09";
|
dirname = "nixpkgs-manual-19.09";
|
||||||
basename= "manual.html";
|
basename= "manual.html";
|
||||||
path = "${mk-nixpkgs-manual inputs.nixpkgs-19}/share/doc/nixpkgs";
|
path = "${mk-nixpkgs-manual inputs.nixpkgs-1909}/share/doc/nixpkgs";
|
||||||
desc = "Official Nixpkgs 19.09 manual";
|
desc = "Official Nixpkgs 19.09 manual";
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
|
@ -57,19 +81,34 @@ in
|
||||||
/** /
|
/** /
|
||||||
{
|
{
|
||||||
dirname = "nixos-manual-22.11";
|
dirname = "nixos-manual-22.11";
|
||||||
path = "${mk-nixos-manual inputs.nixpkgs-22}/share/doc/nixos";
|
path = "${mk-nixos-manual inputs.nixpkgs-2211}/share/doc/nixos";
|
||||||
desc = "Official Nixos 22.11 manual";
|
desc = "Official Nixos 22.11 manual";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
dirname = "nixos-manual-22.05";
|
||||||
|
path = "${mk-nixos-manual inputs.nixpkgs-2205}/share/doc/nixos";
|
||||||
|
desc = "Official Nixos 22.05 manual";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
dirname = "nixos-manual-21.11";
|
dirname = "nixos-manual-21.11";
|
||||||
path = "${mk-nixos-manual inputs.nixpkgs-21}/share/doc/nixos";
|
path = "${mk-nixos-manual inputs.nixpkgs-2111}/share/doc/nixos";
|
||||||
desc = "Official Nixos 21.11 manual";
|
desc = "Official Nixos 21.11 manual";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
dirname = "nixos-manual-21.05";
|
||||||
|
path = "${mk-nixos-manual inputs.nixpkgs-2105}/share/doc/nixos";
|
||||||
|
desc = "Official Nixos 21.05 manual";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
dirname = "nixos-manual-20.09";
|
dirname = "nixos-manual-20.09";
|
||||||
path = "${mk-nixos-manual inputs.nixpkgs-20}/share/doc/nixos";
|
path = "${mk-nixos-manual inputs.nixpkgs-2009}/share/doc/nixos";
|
||||||
desc = "Official Nixos 20.09 manual";
|
desc = "Official Nixos 20.09 manual";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
dirname = "nixos-manual-20.03";
|
||||||
|
path = "${mk-nixos-manual inputs.nixpkgs-2003}/share/doc/nixos";
|
||||||
|
desc = "Official Nixos 20.03 manual";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
dirname = "nixos-manual-19.09";
|
dirname = "nixos-manual-19.09";
|
||||||
path = "${mk-nixos-manual inputs.nixpkgs-19}/share/doc/nixos";
|
path = "${mk-nixos-manual inputs.nixpkgs-19}/share/doc/nixos";
|
||||||
|
|
|
@ -3,7 +3,7 @@ let
|
||||||
cfg = config.services.headscale;
|
cfg = config.services.headscale;
|
||||||
server-url = "head.pbsds.net";
|
server-url = "head.pbsds.net";
|
||||||
derpPort = 3478;
|
derpPort = 3478;
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf getExe;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
environment.systemPackages = mkIf cfg.enable [ cfg.package ];
|
environment.systemPackages = mkIf cfg.enable [ cfg.package ];
|
||||||
|
@ -50,7 +50,7 @@ in
|
||||||
wantedBy = [ "headscale.service" ];
|
wantedBy = [ "headscale.service" ];
|
||||||
script = ''
|
script = ''
|
||||||
sleep 60 # Wait for headscale to be ready
|
sleep 60 # Wait for headscale to be ready
|
||||||
"${lib.getExe cfg.package}/bin/headscale namespaces create ts || true
|
${getExe cfg.package} namespaces create ts || true
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,35 @@
|
||||||
{ config, ...}:
|
{ config, pkgs, lib, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.services.tailscale;
|
||||||
|
inherit (lib) mkIf getExe;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
services.tailscale.enable = true;
|
services.tailscale.enable = true;
|
||||||
networking.firewall.checkReversePath = "loose";
|
networking.firewall.checkReversePath = "loose";
|
||||||
networking.firewall.trustedInterfaces = [ "tailscale0" ];
|
networking.firewall.trustedInterfaces = [ cfg.interfaceName ];
|
||||||
networking.firewall.allowedUDPPorts = [ config.services.tailscale.port ];
|
networking.firewall.allowedUDPPorts = [ cfg.port ];
|
||||||
|
|
||||||
# remote-set X
|
/** /
|
||||||
# tailscale up --login-server 'https://head.pbsds.net'
|
systemd.services."tailscale-autoconnect" = mkIf cfg.enable {
|
||||||
# ssh noximilien.pbsds.net headscale --namespace <namespace_name> nodes register --key <machine_key>
|
serviceConfig.Type = "oneshot";
|
||||||
|
after = [ "network-pre.target" "tailscale.service" ];
|
||||||
|
wants = [ "network-pre.target" "tailscale.service" ];
|
||||||
|
wantedBy = [ "tailscale.service" ];
|
||||||
|
script = ''
|
||||||
|
sleep 60 # Wait for tailscaled to settle
|
||||||
|
|
||||||
|
status="$(${getExe cfg.package} status -json | ${getExe pkgs.jq} -r .BackendState)"
|
||||||
|
if [ $status = "Running" ]; then
|
||||||
|
exit 0 # already authenticated
|
||||||
|
fi
|
||||||
|
|
||||||
|
#${getExe cfg.package} up -authkey tskey-examplekeyhere
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
/**/
|
||||||
|
|
||||||
|
|
||||||
|
# remote sudo nixos-rebuild switch --flake . -L
|
||||||
|
# remote-quick sudo tailscale up --login-server 'https://head.pbsds.net'
|
||||||
|
# ssh noximilien.pbsds.net sudo headscale --namespace 'ts' nodes register --key <machine_key>
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,8 +48,9 @@
|
||||||
# TODO: NAS stuff
|
# TODO: NAS stuff
|
||||||
] ++ lib.optionals config.virtualisation.docker.enable [
|
] ++ lib.optionals config.virtualisation.docker.enable [
|
||||||
"docker"
|
"docker"
|
||||||
] ++ lib.optionals config.services.headscale.enable [
|
# doesn't work...
|
||||||
config.services.headscale.group
|
#] ++ lib.optionals config.services.headscale.enable [
|
||||||
|
# config.services.headscale.group
|
||||||
];
|
];
|
||||||
|
|
||||||
initialHashedPassword = "$6$yNgxTHcP1UYkNwuZ$1sBehnKgPjVnDe0tSV8kyfynWpfjDzuohZX6SoTrMnYFa3/aiMOtI6JppYevl.M6qYhBIT0XBvL6TqSSFWn8B/";
|
initialHashedPassword = "$6$yNgxTHcP1UYkNwuZ$1sBehnKgPjVnDe0tSV8kyfynWpfjDzuohZX6SoTrMnYFa3/aiMOtI6JppYevl.M6qYhBIT0XBvL6TqSSFWn8B/";
|
||||||
|
|
Loading…
Reference in New Issue