{ config, inputs, lib, pkgs, ... }: with lib; let cfg = config.nixfiles.modules.docker; in { options.nixfiles.modules.docker.enable = mkEnableOption "Docker"; config = mkIf cfg.enable { assertions = [ { assertion = cfg.enable -> !config.nixfiles.modules.podman.enable; message = "Pick only one!"; } ]; nixfiles.modules.common.shell.aliases.d = "docker"; secrets.containers-auth = { file = "${inputs.self}/secrets/containers-auth"; path = "${config.my.home}/.docker/config.json"; owner = my.username; inherit (config.my) group; }; virtualisation.docker.enable = true; environment.systemPackages = with pkgs; [ docker-compose ]; my.extraGroups = [ "docker" ]; }; }