added podman and distrobox

This commit is contained in:
Jakub Kropáček 2025-01-27 15:57:36 +01:00
parent 4e89ce1137
commit 7cec1eede3
5 changed files with 36 additions and 27 deletions

View file

@ -52,11 +52,11 @@
]
},
"locked": {
"lastModified": 1737480538,
"narHash": "sha256-rk/cmrvq3In0TegW9qaAxw+5YpJhRWt2p74/6JStrw0=",
"lastModified": 1737762889,
"narHash": "sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4481a16d1ac5bff4a77c608cefe08c9b9efe840d",
"rev": "daf04c5950b676f47a794300657f1d3d14c1a120",
"type": "github"
},
"original": {
@ -67,11 +67,11 @@
},
"nix-flatpak": {
"locked": {
"lastModified": 1736952876,
"narHash": "sha256-dJXuLP2CBkIG333L+Rb3e1D0oXHYbl0MgmKPGuvFuAI=",
"lastModified": 1737806078,
"narHash": "sha256-FjgNPBLMCpmwtJT5LiQYkM2lDY+yAmW1ZN1Idx7QeDg=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "b6966d5fa96b0fae99a4da0b5bdfbb0a75f5c058",
"rev": "83cc6a28afc4155fd3fe28274f6b5287f51ed2b6",
"type": "github"
},
"original": {
@ -82,11 +82,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1737359802,
"narHash": "sha256-utplyRM6pqnN940gfaLFBb9oUCSzkan86IvmkhsVlN8=",
"lastModified": 1737751639,
"narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "61c79181e77ef774ab0468b28a24bc2647d498d6",
"rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4",
"type": "github"
},
"original": {
@ -98,11 +98,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1737469691,
"narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=",
"lastModified": 1737885589,
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab",
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
"type": "github"
},
"original": {

View file

@ -25,6 +25,7 @@ in
cargo
clippy
clang
distrobox
];
programs.go = {
enable = true;

View file

@ -47,6 +47,7 @@
enable = true;
changeDefaultNetwork = true;
};
podman.enable = true;
de.gnome = {
enable = true;
};

View file

@ -4,16 +4,9 @@
...
}:
let
cfg = config.krop.docker;
in
{
options.krop.docker = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether to enable Docker service.";
};
cfg = config.krop;
docker-cfg = {
enable = lib.mkEnableOption "Whether to enable Docker.";
addUserToGroup = lib.mkOption {
type = lib.types.bool;
default = true;
@ -27,11 +20,20 @@ in
description = "Whether to change docker daemon to use different networks.";
};
};
podman-cfg = {
enable = lib.mkEnableOption "Whether to enable Podman.";
};
in
{
options.krop = {
docker = docker-cfg;
podman = podman-cfg;
};
config = lib.mkIf cfg.enable {
virtualisation.docker = {
config = {
virtualisation.docker = lib.mkIf cfg.docker.enable {
enable = true;
daemon.settings = lib.mkIf cfg.changeDefaultNetwork {
daemon.settings = lib.mkIf cfg.docker.changeDefaultNetwork {
default-address-pools = [
{
base = "10.250.0.0/16";
@ -40,7 +42,12 @@ in
];
};
};
users.users.krop = lib.mkIf cfg.addUserToGroup {
virtualisation.podman = lib.mkIf cfg.podman.enable {
enable = true;
};
users.users.krop = lib.mkIf (cfg.docker.addUserToGroup && cfg.docker.enable) {
extraGroups = [ "docker" ];
};
};

View file

@ -6,6 +6,6 @@
./python.nix
./ide.nix
./cli.nix
./docker.nix
./containers.nix
];
}