Initial basic setup
This commit is contained in:
45
modules/common.nix
Normal file
45
modules/common.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{ lib, pkgs, inputs, config, options, ... }:
|
||||
let
|
||||
inherit (lib) mkIf mkDefault mkAliasDefinitions;
|
||||
inherit (lib.my) mkOpt;
|
||||
in {
|
||||
options.my = with lib.types; {
|
||||
user = mkOpt (attrsOf anything) {};
|
||||
};
|
||||
|
||||
config =
|
||||
let
|
||||
defaultUsername = "dev";
|
||||
uname = config.my.user.name;
|
||||
in {
|
||||
my.user = rec {
|
||||
name = mkDefault defaultUsername;
|
||||
isNormalUser = true;
|
||||
uid = mkDefault 1000;
|
||||
extraGroups = mkDefault [ "wheel" ];
|
||||
password = mkDefault "hunter2"; # TODO: secrets...
|
||||
};
|
||||
|
||||
time.timeZone = mkDefault "Europe/Dublin";
|
||||
|
||||
users.mutableUsers = false;
|
||||
users.users.${uname} = mkAliasDefinitions options.my.user;
|
||||
users.groups.${uname}.gid = mkDefault config.users.users.${uname}.uid;
|
||||
|
||||
security = {
|
||||
sudo.enable = mkDefault false;
|
||||
doas = {
|
||||
enable = mkDefault true;
|
||||
wheelNeedsPassword = mkDefault false;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
iperf3
|
||||
];
|
||||
|
||||
system.stateVersion = "21.11";
|
||||
system.configurationRevision = with inputs; mkIf (self ? rev) self.rev;
|
||||
};
|
||||
}
|
10
modules/server.nix
Normal file
10
modules/server.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib.my) mkBoolOpt;
|
||||
in {
|
||||
options.my.server.enable = mkBoolOpt false;
|
||||
config = mkIf config.my.server.enable {
|
||||
services.getty.autologinUser = config.my.user.name;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user