Skip to content

Commit 2f351a6

Browse files
committed
feat(nix): build to an actual vm lol
1 parent 34d502a commit 2f351a6

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

flake.nix

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
];
1515

1616
CC = "clang";
17+
QEMU_NET_OPTS = "hostfwd=tcp:127.0.0.1:8080-:8080";
1718
};
1819

1920
packages.x86_64-linux.display =
@@ -24,5 +25,41 @@
2425
packages.x86_64-linux.web =
2526
let pkgs = nixpkgs.legacyPackages.x86_64-linux; in
2627
(import ./web { inherit pkgs; });
28+
29+
packages.x86_64-linux.test-vm =
30+
self.nixosConfigurations.test-vm.config.system.build.vm;
31+
32+
nixosModules.everything =
33+
{ config, ... }: {
34+
networking.firewall.allowedTCPPorts = [ 8080 ];
35+
systemd.services.ttds-runner = {
36+
wantedBy = [ "multi-user.target" ];
37+
after = [ "network.target" ];
38+
description = "Run the ttds web server, wrapping the display server.";
39+
40+
serviceConfig = {
41+
ExecStart = "${self.packages.x86_64-linux.web}/bin/ttds-web ${self.packages.x86_64-linux.display}/bin/ttds";
42+
WorkingDirectory = "/etc";
43+
};
44+
};
45+
};
46+
47+
nixosConfigurations.test-vm = nixpkgs.lib.nixosSystem {
48+
system = "x86_64-linux";
49+
modules = [
50+
{ system.stateVersion = "24.11"; }
51+
{
52+
users.users.admin = {
53+
isNormalUser = true;
54+
password = "admin";
55+
extraGroups = [ "wheel" ];
56+
};
57+
58+
# Literal string "pass"
59+
environment.etc."admin.pass".text = "14|8|1|RfLpAkDgsS08AnUlq+ZAnytfSJ+HmHYpx1/rZKSxjCo=|8SoSVn8LCPhwy7ShTJDCeX8YDzD+5ecdodmqYWWzm68HVtmxrPOkJqT5ltwQpoUVF4Zdfh1ynKF9f5DLtJQMkA==\n";
60+
}
61+
self.nixosModules.everything
62+
];
63+
};
2764
};
2865
}

0 commit comments

Comments
 (0)