Improve core module
* Drop unsued iwdConfig option * Add flag to enable caddy (default !lite) * Add flag to enable vhost in caddy for help (default !lite) * Add flag to enable vhost in caddy for cups (default printing.enable) * Set defaults instead of a hard value to have individual options overridable
This commit is contained in:
parent
a7f5b9de2a
commit
b0765db925
|
@ -19,7 +19,7 @@ in
|
||||||
config = {
|
config = {
|
||||||
boot = {
|
boot = {
|
||||||
# Enable plymouth for better experience of booting
|
# Enable plymouth for better experience of booting
|
||||||
plymouth.enable = true;
|
plymouth.enable = mkIf (!cfg.lite) (lib.mkDefault true);
|
||||||
|
|
||||||
# Mount / luks device in initrd
|
# Mount / luks device in initrd
|
||||||
# Allow fstrim to work on it.
|
# Allow fstrim to work on it.
|
||||||
|
|
|
@ -29,12 +29,12 @@ in
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
pub-solar = {
|
pub-solar = {
|
||||||
audio.enable = lib.mkIf (!cfg.lite) true;
|
audio.enable = lib.mkIf (!cfg.lite) (lib.mkDefault true);
|
||||||
crypto.enable = lib.mkIf (!cfg.lite) true;
|
crypto.enable = lib.mkIf (!cfg.lite) (lib.mkDefault true);
|
||||||
devops.enable = lib.mkIf (!cfg.lite) true;
|
devops.enable = lib.mkIf (!cfg.lite) (lib.mkDefault true);
|
||||||
|
|
||||||
terminal-life = {
|
terminal-life = {
|
||||||
enable = true;
|
enable = lib.mkDefault true;
|
||||||
lite = cfg.lite;
|
lite = cfg.lite;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,6 +6,15 @@ let cfg = config.pub-solar.core;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.pub-solar.core = {
|
options.pub-solar.core = {
|
||||||
|
enableCaddy = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = !cfg.lite;
|
||||||
|
};
|
||||||
|
enableHelp = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = !cfg.lite;
|
||||||
|
};
|
||||||
|
|
||||||
binaryCaches = mkOption {
|
binaryCaches = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
|
@ -16,11 +25,6 @@ in
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = "Public keys of binary caches.";
|
description = "Public keys of binary caches.";
|
||||||
};
|
};
|
||||||
iwdConfig = mkOption {
|
|
||||||
type = with types; nullOr (attrsOf (attrsOf (oneOf [ bool int str ])));
|
|
||||||
default = null;
|
|
||||||
description = "Configuratoin of iNet Wireless Daemon.";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
# disable NetworkManager-wait-online by default
|
# disable NetworkManager-wait-online by default
|
||||||
|
@ -38,27 +42,38 @@ in
|
||||||
|
|
||||||
# These entries get added to /etc/hosts
|
# These entries get added to /etc/hosts
|
||||||
networking.hosts = {
|
networking.hosts = {
|
||||||
"127.0.0.1" = [ "cups.local" "help.local" "caddy.local" ];
|
"127.0.0.1" = [ ]
|
||||||
|
++ lib.optionals cfg.enableCaddy [ "caddy.local" ]
|
||||||
|
++ lib.optionals config.pub-solar.printing.enable [ "cups.local" ]
|
||||||
|
++ lib.optionals cfg.enableHelp [ "help.local" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Caddy reverse proxy for local services like cups
|
# Caddy reverse proxy for local services like cups
|
||||||
services.caddy = {
|
services.caddy = {
|
||||||
enable = true;
|
enable = cfg.enableCaddy;
|
||||||
globalConfig = ''
|
globalConfig = ''
|
||||||
default_bind 127.0.0.1
|
default_bind 127.0.0.1
|
||||||
auto_https off
|
auto_https off
|
||||||
'';
|
'';
|
||||||
extraConfig = ''
|
extraConfig = concatStringsSep "\n" [
|
||||||
|
(lib.optionalString
|
||||||
|
config.pub-solar.printing.enable
|
||||||
|
''
|
||||||
cups.local:80 {
|
cups.local:80 {
|
||||||
request_header Host localhost:631
|
request_header Host localhost:631
|
||||||
reverse_proxy unix//run/cups/cups.sock
|
reverse_proxy unix//run/cups/cups.sock
|
||||||
}
|
}
|
||||||
|
'')
|
||||||
|
|
||||||
|
(lib.optionalString
|
||||||
|
cfg.enableHelp
|
||||||
|
''
|
||||||
help.local:80 {
|
help.local:80 {
|
||||||
root * ${pkgs.psos-docs}/lib/html
|
root * ${pkgs.psos-docs}/lib/html
|
||||||
file_server
|
file_server
|
||||||
}
|
}
|
||||||
'';
|
'')
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue