Compare commits

...

6 Commits

13 changed files with 89 additions and 52 deletions

35
flake.lock generated
View File

@@ -982,7 +982,10 @@
"nix-on-droid", "nix-on-droid",
"nixpkgs" "nixpkgs"
], ],
"nmd": "nmd", "nmd": [
"nix-on-droid",
"nmd"
],
"nmt": "nmt" "nmt": "nmt"
}, },
"locked": { "locked": {
@@ -1030,19 +1033,19 @@
], ],
"nixpkgs-docs": "nixpkgs-docs", "nixpkgs-docs": "nixpkgs-docs",
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap",
"nmd": "nmd_2" "nmd": "nmd"
}, },
"locked": { "locked": {
"lastModified": 1720396533, "lastModified": 1783837781,
"narHash": "sha256-UFzk/hZWO1VkciIO5UPaSpJN8s765wsngUSvtJM6d5Q=", "narHash": "sha256-2MKUKRNV+5qs3nbQDmz7L6KRHSEHDy/lZjfIAYMZSOE=",
"owner": "nix-community", "owner": "newAM",
"repo": "nix-on-droid", "repo": "nix-on-droid",
"rev": "f3d3b8294039f2f9a8fb7ea82c320f29c6b0fe25", "rev": "4f963e270e6dc7f3cfb412c73a0eb8c0c350bce2",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "newAM",
"ref": "release-24.05", "ref": "update-proot",
"repo": "nix-on-droid", "repo": "nix-on-droid",
"type": "github" "type": "github"
} }
@@ -1403,22 +1406,6 @@
} }
}, },
"nmd": { "nmd": {
"flake": false,
"locked": {
"lastModified": 1666190571,
"narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=",
"owner": "rycee",
"repo": "nmd",
"rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169",
"type": "gitlab"
},
"original": {
"owner": "rycee",
"repo": "nmd",
"type": "gitlab"
}
},
"nmd_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nix-on-droid", "nix-on-droid",

View File

@@ -60,7 +60,9 @@
}; };
nix-on-droid = { nix-on-droid = {
url = "github:nix-community/nix-on-droid/release-24.05"; # @TODO: upstream module is broken for nixpkgs-unstable
# url = "github:nix-community/nix-on-droid/release-24.05";
url = "github:newAM/nix-on-droid/update-proot";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };

View File

@@ -1,6 +1,6 @@
{ inputs, config, ... }: { inputs, config, ... }:
{ {
flake.modules.droid.core = flake.modules.nixOnDroid.core =
{ {
hostName, hostName,
userName, userName,

View File

@@ -1,5 +1,5 @@
{ {
flake.modules.droid.core = { flake.modules.nixOnDroid.core = {
nix.extraOptions = '' nix.extraOptions = ''
experimental-features = nix-command flakes experimental-features = nix-command flakes
''; '';

View File

@@ -1,5 +1,5 @@
{ {
flake.modules.droid.networking = flake.modules.nixOnDroid.networking =
{ {
config, config,
lib, lib,

View File

@@ -1,4 +1,3 @@
{ ... }:
{ {
flake.modules.homeManager.alpha = { flake.modules.homeManager.alpha = {
home.stateVersion = "26.05"; home.stateVersion = "26.05";

View File

@@ -1,4 +1,3 @@
{ ... }:
{ {
flake.modules.homeManager.arcturus = { flake.modules.homeManager.arcturus = {
home.stateVersion = "26.05"; home.stateVersion = "26.05";

View File

@@ -1,4 +1,5 @@
{ {
self,
inputs, inputs,
outputs, outputs,
config, config,
@@ -62,21 +63,63 @@ let
; ;
}; };
modules = [ modules = [
config.flake.modules.droid.core config.flake.modules.nixOnDroid.core
config.flake.modules.droid.${hostName} config.flake.modules.nixOnDroid.${hostName}
]; ];
}; };
mkNixOSNode = hostname: {
inherit hostname;
profiles.system = {
user = "root";
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.${hostname};
};
};
activateNixOnDroid =
configuration:
inputs.deploy-rs.lib.aarch64-linux.activate.custom configuration.activationPackage "${configuration.activationPackage}/activate";
mkDroidNode = hostname: {
inherit hostname;
profiles.system = {
sshUser = "nix-on-droid";
user = "nix-on-droid";
magicRollback = true;
sshOpts = [
"-p"
"8033"
];
path = activateNixOnDroid self.nixOnDroidConfigurations.${hostname};
};
};
in in
{ {
flake.nixosConfigurations = builtins.mapAttrs mkHost { flake = {
alpha = { }; nixosConfigurations = builtins.mapAttrs mkHost {
arcturus = { };
canopus = { };
sirius = { }; sirius = { };
canopus = { };
arcturus = { };
alpha = { };
vps = { }; vps = { };
}; };
flake.nixOnDroidConfigurations = builtins.mapAttrs mkDroidHost { nixOnDroidConfigurations = builtins.mapAttrs mkDroidHost {
vega = { }; vega = { };
}; };
deploy.nodes = {
sirius = mkNixOSNode "sirius";
canopus = mkNixOSNode "canopus";
arcturus = mkNixOSNode "arcturus";
alpha = mkNixOSNode "alpha";
vega = mkDroidNode "vega";
};
};
perSystem = {
checks = builtins.mapAttrs (
_: config: config.config.system.build.toplevel
) self.nixosConfigurations;
};
} }

View File

@@ -1,13 +1,13 @@
{ config, ... }: { config, ... }:
{ {
flake.modules.droid.vega = flake.modules.nixOnDroid.vega =
{ {
pkgs, pkgs,
userEmail, userEmail,
... ...
}: }:
{ {
imports = with config.flake.modules.droid; [ imports = with config.flake.modules.nixOnDroid; [
networking networking
]; ];
@@ -44,8 +44,11 @@
environment.etcBackupExtension = ".backup"; environment.etcBackupExtension = ".backup";
environment.motd = ""; environment.motd = "";
environment.packages = with pkgs; [ environment.packages = with pkgs; [
openssh ncurses
procps
util-linux
rsync rsync
gnutar
]; ];
system.stateVersion = "24.05"; system.stateVersion = "24.05";

View File

@@ -1,4 +1,3 @@
{ ... }:
{ {
flake.modules.homeManager.vps = { flake.modules.homeManager.vps = {
home.stateVersion = "26.05"; home.stateVersion = "26.05";

View File

@@ -11,6 +11,8 @@
config = lib.mkMerge [ config = lib.mkMerge [
{ {
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
boot.loader = { boot.loader = {
timeout = 1; timeout = 1;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;

View File

@@ -15,6 +15,11 @@
optimise.automatic = true; optimise.automatic = true;
settings = { settings = {
extra-platforms = [
"aarch64-linux"
"arm-linux"
];
experimental-features = [ experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.core = flake.modules.nixos.core = {
{ pkgs, ... }:
{
security = { security = {
sudo.wheelNeedsPassword = false; sudo.wheelNeedsPassword = false;
}; };