Files
nix-config/modules/laptop/virtualization.nix
Amaury JOLY 6105c58cda reformat
2026-04-02 14:10:16 +02:00

46 lines
1.2 KiB
Nix

# Module: Virtualization
# Description: Docker and VirtualBox virtualization support
# Services: Docker daemon, VirtualBox
{
config,
lib,
pkgs,
customConfig,
...
}: {
options.custom.virtualization = {
docker = {
enable = lib.mkEnableOption "Docker container runtime";
dnsServers = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = ["172.17.0.1"];
description = "DNS servers for Docker containers (points to dnscrypt-proxy)";
};
};
virtualbox = {
enable = lib.mkEnableOption "VirtualBox virtualization";
};
};
config = lib.mkMerge [
(lib.mkIf config.custom.virtualization.docker.enable {
virtualisation.docker = {
enable = true;
daemon.settings = {
# Docker DNS points to dnscrypt-proxy configured in net.nix
dns = config.custom.virtualization.docker.dnsServers;
};
};
users.users."${customConfig.username}".extraGroups = ["docker"];
})
(lib.mkIf config.custom.virtualization.virtualbox.enable {
virtualisation.virtualbox.host.enable = true;
users.users."${customConfig.username}".extraGroups = ["vboxusers"];
})
];
}