Compare commits
10 Commits
19a0c3d97d
...
876f3813ae
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
876f3813ae | ||
|
|
51d32e66c4 | ||
|
|
12921700ab | ||
|
|
94aef10d67 | ||
|
|
fd31675cac | ||
|
|
6b79aa8fca | ||
|
|
18c95d2f9c | ||
|
|
00b2946d59 | ||
|
|
ea998d33a4 | ||
|
|
ea6a846139 |
10
README.md
10
README.md
@@ -25,3 +25,13 @@ EDITOR=vim agenix -d "some-secret.age" -i ~/.ssh/alex.pinwheel
|
|||||||
|
|
||||||
Or use some other SSH key that is has been used to key the secret.
|
Or use some other SSH key that is has been used to key the secret.
|
||||||
|
|
||||||
|
# Test VM
|
||||||
|
Build the test VM with the command:
|
||||||
|
```
|
||||||
|
cm --build-test-vm
|
||||||
|
```
|
||||||
|
|
||||||
|
and test it with:
|
||||||
|
```
|
||||||
|
cm --run-test-vm
|
||||||
|
```
|
||||||
|
|||||||
64
flake.lock
generated
64
flake.lock
generated
@@ -53,11 +53,11 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732784553,
|
"lastModified": 1734599675,
|
||||||
"narHash": "sha256-S3PiqgTS8ST07ihFDL2cPExoxHcd9I8ITecpgMz+s4M=",
|
"narHash": "sha256-jTfIoLxbVK3r6rFHKs0JS8WEYrmp0AGomzGaPTDZvrE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "fb81e75180369a888db920df8f6097fbf2f603e9",
|
"rev": "df40078d8d4f3f0439e52a3f3e44af0005e6072e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -94,11 +94,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732793095,
|
"lastModified": 1734622158,
|
||||||
"narHash": "sha256-6TrknJ8CpvSSF4gviQSeD+wyj3siRcMvdBKhOXkEMKU=",
|
"narHash": "sha256-h/fdzqlCqSa2ZCIqtDc9kshCJm6kQIoKuO0MSSmAX4A=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2f7739d01080feb4549524e8f6927669b61c6ee3",
|
"rev": "832920a60833533eaabcc93ab729801bf586fa0c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -114,11 +114,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730743354,
|
"lastModified": 1733056338,
|
||||||
"narHash": "sha256-gU4NySYyXeAzVaF5bI6BKmj2CdgiwGFnuPjXUId3Dx0=",
|
"narHash": "sha256-sp14z0mrqrtmouz1+bU4Jh8/0xi+xwQHF2l7mhGSSVU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "contrib",
|
"repo": "contrib",
|
||||||
"rev": "792f6b83dc719214e0e2a0b380c34f147b28ece2",
|
"rev": "d7c55140f1785b8d9fef351f1cd2a4c9e1eaa466",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -134,11 +134,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732782112,
|
"lastModified": 1733912267,
|
||||||
"narHash": "sha256-8rxzWGOVyijmE2ojWJxPEWqtUQ7i/lA5TvLoklwI4qw=",
|
"narHash": "sha256-I3ubew5jt8YZ27AOtIodRAYo0aew6wxY8UkWCSqz6B4=",
|
||||||
"owner": "viperML",
|
"owner": "viperML",
|
||||||
"repo": "nh",
|
"repo": "nh",
|
||||||
"rev": "24293d624556d32bd502c440b352e4fef4eeab6d",
|
"rev": "6a69a145b0c7dbd5616bbded512b8bf8b5d2f8a4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -164,11 +164,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732483221,
|
"lastModified": 1734352517,
|
||||||
"narHash": "sha256-kF6rDeCshoCgmQz+7uiuPdREVFuzhIorGOoPXMalL2U=",
|
"narHash": "sha256-mfv+J/vO4nqmIOlq8Y1rRW8hVsGH3M+I2ESMjhuebDs=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "45348ad6fb8ac0e8415f6e5e96efe47dd7f39405",
|
"rev": "b12e314726a4226298fe82776b4baeaa7bcf3dcd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -180,11 +180,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732521221,
|
"lastModified": 1734424634,
|
||||||
"narHash": "sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0=",
|
"narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4633a7c72337ea8fd23a4f2ba3972865e3ec685d",
|
"rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -196,16 +196,16 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732632634,
|
"lastModified": 1734323986,
|
||||||
"narHash": "sha256-+G7n/ZD635aN0sEXQLynU7pWMd3PKDM7yBIXvYmjABQ=",
|
"narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6f6076c37180ea3a916f84928cf3a714c5207a30",
|
"rev": "394571358ce82dff7411395829aa6a3aad45b907",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -241,7 +241,8 @@
|
|||||||
"nix-gc-env": "nix-gc-env",
|
"nix-gc-env": "nix-gc-env",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"pppdotpm-site": "pppdotpm-site"
|
"pppdotpm-site": "pppdotpm-site",
|
||||||
|
"whib-backend": "whib-backend"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
@@ -258,6 +259,23 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"whib-backend": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734695939,
|
||||||
|
"narHash": "sha256-CzASZ/7siZWTV1JS+sKdYVBLyQdLUPoZdQugtr48CwI=",
|
||||||
|
"path": "/home/alex/code/own/whib",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"path": "/home/alex/code/own/whib",
|
||||||
|
"type": "path"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
25
flake.nix
25
flake.nix
@@ -37,6 +37,12 @@
|
|||||||
url = "git+ssh://gitea@git.ppp.pm:1122/alex/ppp.pm-site.git?ref=main";
|
url = "git+ssh://gitea@git.ppp.pm:1122/alex/ppp.pm-site.git?ref=main";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
whib-backend = {
|
||||||
|
# url = "git+ssh://gitea@git.ppp.pm:1122/alex/whib.git?ref=nix-flake";
|
||||||
|
url = "path:/home/alex/code/own/whib";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -77,13 +83,20 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
test-vm = inputs.nixpkgs.lib.nixosSystem {
|
test-vm =
|
||||||
system = "x86_64-linux";
|
let
|
||||||
specialArgs = {
|
system = "x86_64-linux";
|
||||||
inherit inputs;
|
in
|
||||||
|
inputs.nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./hosts/test-vm/configuration.nix
|
||||||
|
inputs.whib-backend.nixosModules.${system}.default
|
||||||
|
];
|
||||||
};
|
};
|
||||||
modules = [ ./hosts/test-vm/configuration.nix ];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells =
|
devShells =
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
home.homeDirectory = "/home/alex";
|
home.homeDirectory = "/home/alex";
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
inputs.whib-backend.packages.${pkgs.system}.whib-import
|
||||||
|
pkgs.beekeeper-studio
|
||||||
pkgs.bitwarden-desktop
|
pkgs.bitwarden-desktop
|
||||||
pkgs.gimp
|
pkgs.gimp
|
||||||
pkgs.zip
|
pkgs.zip
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
pkgs.noto-fonts
|
pkgs.noto-fonts
|
||||||
pkgs.noto-fonts-cjk-sans
|
pkgs.noto-fonts-cjk-sans
|
||||||
pkgs.noto-fonts-emoji
|
pkgs.noto-fonts-emoji
|
||||||
pkgs.nerdfonts
|
pkgs.nerd-fonts.jetbrains-mono
|
||||||
pkgs.liberation_ttf
|
pkgs.liberation_ttf
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,20 +15,6 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf enabled {
|
config = lib.mkIf enabled {
|
||||||
nixpkgs.overlays =
|
|
||||||
let
|
|
||||||
buildGo122 = pkgs: pkg: pkg.override { buildGoModule = pkgs.buildGo122Module; };
|
|
||||||
in
|
|
||||||
[
|
|
||||||
(final: prev: {
|
|
||||||
go = prev.go_1_22;
|
|
||||||
gopls = buildGo122 prev prev.gopls;
|
|
||||||
go-tools = buildGo122 prev prev.go-tools;
|
|
||||||
govulncheck = buildGo122 prev prev.govulncheck;
|
|
||||||
gotestsum = buildGo122 prev prev.gotestsum;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager.users.alex = {
|
home-manager.users.alex = {
|
||||||
programs.go = {
|
programs.go = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./ppp.pm-site.nix
|
./ppp.pm-site.nix
|
||||||
|
./whib-backend.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
@@ -10,7 +11,8 @@
|
|||||||
networking.hostName = "test-vm";
|
networking.hostName = "test-vm";
|
||||||
|
|
||||||
mod = {
|
mod = {
|
||||||
pppdotpm-site.enable = true;
|
pppdotpm-site.enable = false;
|
||||||
|
whib-backend.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.a = {
|
users.users.a = {
|
||||||
@@ -18,16 +20,30 @@
|
|||||||
extraGroups = [ "wheel" ];
|
extraGroups = [ "wheel" ];
|
||||||
password = "a";
|
password = "a";
|
||||||
};
|
};
|
||||||
|
services.getty.autologinUser = "a";
|
||||||
|
security.sudo.wheelNeedsPassword = false;
|
||||||
|
|
||||||
virtualisation.vmVariant = {
|
virtualisation.vmVariant = {
|
||||||
# following configuration is added only when building VM with build-vm
|
# following configuration is added only when building VM with build-vm
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
|
diskSize = 4096;
|
||||||
memorySize = 2048;
|
memorySize = 2048;
|
||||||
cores = 3;
|
cores = 3;
|
||||||
graphics = false;
|
graphics = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Resize terminal to host terminal size
|
||||||
|
environment.loginShellInit = ''
|
||||||
|
${pkgs.xterm}/bin/resize
|
||||||
|
|
||||||
|
echo alias 'sd' can be used to shutdown the VM
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.interactiveShellInit = ''
|
||||||
|
alias sd='sudo shutdown now'
|
||||||
|
'';
|
||||||
|
|
||||||
environment.systemPackages = [ ];
|
environment.systemPackages = [ ];
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
|
|||||||
87
hosts/test-vm/whib-backend.nix
Normal file
87
hosts/test-vm/whib-backend.nix
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
enabled = config.mod.whib-backend.enable;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
mod.whib-backend = {
|
||||||
|
enable = lib.mkEnableOption "enable WHIB backend";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf enabled {
|
||||||
|
services.whib-backend = {
|
||||||
|
enable = true;
|
||||||
|
domain = "whib-backend.local";
|
||||||
|
|
||||||
|
backend = {
|
||||||
|
signingKey = "super-secret-key";
|
||||||
|
};
|
||||||
|
|
||||||
|
postgres = {
|
||||||
|
password = "postgrespassword";
|
||||||
|
|
||||||
|
backup = {
|
||||||
|
interval = "*-*-* **:**:00 UTC"; # Every minute, for testing
|
||||||
|
gpgPassphraseFile = ./whib-gpgPassfile;
|
||||||
|
|
||||||
|
backblazeBucket = "whib-postgres-backups";
|
||||||
|
backblazeKeyID = "003867c33cd1a9b0000000003";
|
||||||
|
backblazeKey = "K003+GUNG0lwTOMS5EheKC9YzgxFzuU";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
grafana = {
|
||||||
|
password = "granfanapassword";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.vmVariant = {
|
||||||
|
virtualisation = {
|
||||||
|
sharedDirectories = {
|
||||||
|
my-shared = {
|
||||||
|
source = "/home/alex/whib-backup";
|
||||||
|
target = "/mnt/shared";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
forwardPorts = [
|
||||||
|
{
|
||||||
|
# Service API
|
||||||
|
from = "host";
|
||||||
|
host.port = 8080;
|
||||||
|
guest.port = 8080;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# Service Metrics
|
||||||
|
from = "host";
|
||||||
|
host.port = 8181;
|
||||||
|
guest.port = 8181;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# Postgres
|
||||||
|
from = "host";
|
||||||
|
host.port = 5432;
|
||||||
|
guest.port = 5432;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# Grafana
|
||||||
|
from = "host";
|
||||||
|
host.port = 3000;
|
||||||
|
guest.port = 3000;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# Prometheus
|
||||||
|
from = "host";
|
||||||
|
host.port = 9090;
|
||||||
|
guest.port = 9090;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user