diff --git a/Taskfile b/Taskfile index cef244f..8fde074 100755 --- a/Taskfile +++ b/Taskfile @@ -15,7 +15,7 @@ dump() { if [ -e "vm-$1.nix" ]; then sudo cp -f result/vzdump* /mnt/share/proxmox/dump/ elif [ -e "lxc-$1.nix" ]; then - sudo cp -f result/tarball/nixos-system-x86_64-linux.tar.xz "/mnt/share/proxmox/dump/$1.tar.xz" + sudo cp -f result/tarball/nixos-image-lxc-*.tar.xz "/mnt/share/proxmox/template/cache/$1.tar.xz" fi } @@ -38,6 +38,11 @@ deploy() { 'nixos-rebuild switch --flake .#'"$1"' --target-host admin@"'"$ip"'" --use-remote-sudo' } +jump-deploy() { + jump_ip=$(tailscale ip xalicas | head -n1) + env NIX_SSHOPTS="-J robert@$jump_ip" ./Taskfile deploy "$1" +} + ssh() { command "${2:-mosh}" admin@"$(get-ip "$1")" } diff --git a/flake.nix b/flake.nix index 3726b2f..6b8206e 100644 --- a/flake.nix +++ b/flake.nix @@ -30,12 +30,14 @@ outputs = { self, nixpkgs, ... }@inputs: majcraft = nixos-vma ./vm-majcraft.nix; homelab = nixos-vma ./vm-homelab.nix; metrics = nixos-lxc ./lxc-metrics.nix; + forge-runner = nixos-lxc ./lxc-forge-runner.nix; }; packages.${system} = { majcraft = image "majcraft"; homelab = image "homelab"; metrics = lxc "metrics"; + forge-runner = lxc "forge-runner"; }; }; } diff --git a/lxc-forge-runner.nix b/lxc-forge-runner.nix new file mode 100644 index 0000000..245c770 --- /dev/null +++ b/lxc-forge-runner.nix @@ -0,0 +1,58 @@ +{ + pkgs, + lib, + ... +}: + +{ + imports = [ + ./lxc-base.nix + ]; + + config = { + my.vm = { + name = "runner01"; + ip4 = "192.168.0.7"; + }; + + environment.systemPackages = with pkgs; [ + grafana-to-ntfy + ]; + + networking.extraHosts = '' + 192.168.0.2 xalicas + 192.168.0.3 proxmox + 192.168.0.4 craft01 + 192.168.0.5 lab01 + 192.168.0.6 metrics01 + 192.168.0.7 runner01 + 192.168.0.100 unifi + ''; + + networking.firewall.trustedInterfaces = [ "br-+" ]; + + virtualisation.docker = { + enable = true; + daemon.settings = { + fixed-cidr-v6 = "fd00::/80"; + ipv6 = true; + }; + }; + + services.gitea-actions-runner = { + package = pkgs.forgejo-runner; + instances.runner01 = { + enable = true; + name = "runner01"; + token = "E17wr2p2EH4krR5NIUokwsBhhdLCWNW5ahpEyjHY"; + url = "https://forge.rperce.net/"; + labels = [ + "node-22:docker://node:22-bookworm" + "nixos-latest:docker://nixos/nix" + "playwright-latest:docker://mcr.microsoft.com/playwright:v1.57.0-jammy" + ]; + # settings = { ... }; + }; + }; + }; +} diff --git a/lxc-metrics.nix b/lxc-metrics.nix index 207ec9e..de1ed6e 100644 --- a/lxc-metrics.nix +++ b/lxc-metrics.nix @@ -25,6 +25,7 @@ 192.168.0.4 craft01 192.168.0.5 lab01 192.168.0.6 metrics01 + 192.168.0.7 runner01 192.168.0.100 unifi '';