init
This commit is contained in:
42
modules/laptop/virtualization.nix
Normal file
42
modules/laptop/virtualization.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
# 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" ];
|
||||
})
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user