Modify like, basically everything idk, probably a lot of secrets and url names and colmena and whatnot
This commit is contained in:
parent
0ab856b18e
commit
b3ba7481d8
107 changed files with 437 additions and 696 deletions
|
@ -1,11 +1,11 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, pkgsUnstable, ... }:
|
||||
{
|
||||
programs.ranger = {
|
||||
enable = true;
|
||||
#package = pkgs.ranger;
|
||||
package = pkgsUnstable.ranger;
|
||||
settings = {
|
||||
preview_images = true;
|
||||
#preview_images_method = "sixel";
|
||||
preview_images_method = "sixel";
|
||||
dirname_in_tabs = true;
|
||||
autosave_bookmarks = false;
|
||||
show_hidden = true;
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
{
|
||||
vars.displays = {
|
||||
tower1 = "Microstep MSI G24C 0000000000001";
|
||||
tower2 = "BNQ BenQ GW2270 6CH00781019";
|
||||
tower2 = "Dell Inc. DELL P2214H KW14V4965YKS";
|
||||
tower3 = "Eizo Nanao Corporation CG223W 23252050";
|
||||
tower4 = "Samsung Electric Company SAMSUNG Unknown";
|
||||
tower4 = "Sony SONY TV 0x01010101";
|
||||
|
||||
detritus1 = "Dell Inc. DELL P2214H KW14V4965YKS";
|
||||
detritus2 = "HannStar Display Corp iP192A 051AW1WY03797";
|
||||
intuos1 = "Wacom Tech Cintiq W1310 MIRACULIX";
|
||||
intuos2 = "BNQ BenQ GW2270 6CH00781019";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -11,6 +11,13 @@
|
|||
mode = "1920x1080@143.979996Hz";
|
||||
};
|
||||
}
|
||||
{
|
||||
output = {
|
||||
criteria = tower3;
|
||||
mode = "1680x1050@59.883";
|
||||
transform = "90";
|
||||
};
|
||||
}
|
||||
|
||||
# Profiles
|
||||
{
|
||||
|
@ -20,19 +27,22 @@
|
|||
{
|
||||
criteria = tower1;
|
||||
position = "3840,405";
|
||||
status = "enable";
|
||||
}
|
||||
{
|
||||
criteria = tower2;
|
||||
position = "1920,405";
|
||||
status = "enable";
|
||||
}
|
||||
{
|
||||
criteria = tower3;
|
||||
position = "5760,0";
|
||||
transform = "90";
|
||||
status = "enable";
|
||||
}
|
||||
{
|
||||
criteria = tower4;
|
||||
position = "0,405";
|
||||
status = "enable";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
@ -44,49 +54,34 @@
|
|||
{
|
||||
criteria = tower1;
|
||||
position = "1920,405";
|
||||
status = "enable";
|
||||
}
|
||||
{
|
||||
criteria = tower2;
|
||||
position = "0,405";
|
||||
status = "enable";
|
||||
}
|
||||
{
|
||||
criteria = tower3;
|
||||
position = "3840,0";
|
||||
transform = "90";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
profile = {
|
||||
name = "detritus";
|
||||
outputs = [
|
||||
{
|
||||
criteria = detritus1;
|
||||
position = "0,0";
|
||||
}
|
||||
{
|
||||
criteria = detritus2;
|
||||
position = "1920,0";
|
||||
scale = 0.85;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
profile = {
|
||||
name = "byod";
|
||||
outputs = [
|
||||
{
|
||||
criteria = "Dell Inc. DELL U3423WE H8LGMP3";
|
||||
scale = 1.15;
|
||||
status = "enable";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
profile = {
|
||||
name = "intuos";
|
||||
outputs = [
|
||||
{
|
||||
criteria = "eDP-1";
|
||||
status = "disable";
|
||||
criteria = intuos1;
|
||||
position = "1920,278";
|
||||
scale = 1.80;
|
||||
}
|
||||
{
|
||||
criteria = intuos2;
|
||||
position = "0,0";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
@ -238,7 +238,7 @@
|
|||
output = [
|
||||
"!${config.vars.displays.tower2}"
|
||||
"!${config.vars.displays.tower3}"
|
||||
"!${config.vars.displays.detritus2}"
|
||||
"!${config.vars.displays.intuos2}"
|
||||
"*"
|
||||
];
|
||||
modules-left = [
|
||||
|
@ -273,7 +273,7 @@
|
|||
output = [
|
||||
config.vars.displays.tower2
|
||||
config.vars.displays.tower3
|
||||
config.vars.displays.detritus2
|
||||
config.vars.displays.intuos2
|
||||
];
|
||||
modules-left = [
|
||||
"sway/workspaces"
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
{ ... }:
|
||||
{ config, ... }:
|
||||
{
|
||||
# HID devices
|
||||
wayland.windowManager.sway.config.input = {
|
||||
"9610:4103:SINOWEALTH_Game_Mouse" = {
|
||||
pointer_accel = "-0.9";
|
||||
};
|
||||
"9639:64097:Compx_2.4G_Receiver_Mouse" = {
|
||||
pointer_accel = "-0.82";
|
||||
};
|
||||
"9610:4103:SINOWEALTH_Game_Mouse".pointer_accel = "-0.9";
|
||||
"9639:64097:Compx_2.4G_Receiver_Mouse".pointer_accel = "-0.82";
|
||||
"type:touch".map_to_output = ''"${config.vars.displays.intuos1}"'';
|
||||
|
||||
# Wildcard, affects everything
|
||||
"*" = {
|
||||
accel_profile = "flat";
|
||||
dwt = "disabled";
|
||||
|
|
|
@ -38,6 +38,11 @@
|
|||
(assign "${tower1}" workspaces1) ++
|
||||
(assign "${tower2}" workspaces2) ++
|
||||
(assign "${tower3}" workspaces3) ++
|
||||
(assign "${tower4}" workspaces4);
|
||||
(assign "${tower4}" workspaces4) ++
|
||||
|
||||
(assign "${intuos2}" workspaces1) ++
|
||||
(assign "${intuos2}" workspaces2) ++
|
||||
(assign "${intuos1}" workspaces3) ++
|
||||
(assign "${intuos1}" workspaces4);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
{ lib, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./grub
|
||||
./lanzaboote
|
||||
./limine
|
||||
./plymouth
|
||||
./services
|
||||
./systemd
|
||||
];
|
||||
|
||||
boot = {
|
||||
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||
blacklistedKernelModules = [ "pcspkr" ];
|
||||
kernel.sysctl = {
|
||||
"vm.max_map_count" = 2147483642;
|
||||
"kernel.sysrq" = 1;
|
||||
};
|
||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||
loader.systemd-boot.editor = false;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
boot.loader.grub = {
|
||||
enable = lib.mkDefault false;
|
||||
efiSupport = true;
|
||||
efiInstallAsRemovable = true;
|
||||
};
|
||||
}
|
|
@ -1,7 +1,5 @@
|
|||
{ config, pkgs, lanzaboote, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [ lanzaboote.nixosModules.lanzaboote ];
|
||||
|
||||
boot.lanzaboote.pkiBundle = "/etc/secureboot";
|
||||
|
||||
environment = {
|
||||
|
|
8
modules/system/devices/boot/limine/default.nix
Normal file
8
modules/system/devices/boot/limine/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ config, pkgs, name, ... }:
|
||||
{
|
||||
boot.loader.limine = {
|
||||
biosSupport = !pkgs.stdenv.hostPlatform.isAarch64;
|
||||
efiInstallAsRemovable = true;
|
||||
efiSupport = true;
|
||||
};
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
{
|
||||
config.boot = lib.mkIf config.boot.plymouth.enable {
|
||||
consoleLogLevel = 0;
|
||||
loader.timeout = 0;
|
||||
initrd.verbose = false;
|
||||
kernelParams = [
|
||||
"loglevel=3"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, ... }:
|
||||
{ config, name, ... }:
|
||||
{
|
||||
boot.initrd.systemd.services.root-reset = {
|
||||
enable = config.environment.persistence."/persist".enable;
|
||||
|
@ -10,7 +10,7 @@
|
|||
serviceConfig.Type = "oneshot";
|
||||
script = ''
|
||||
mkdir -p /mnt
|
||||
mount -t btrfs /dev/${config.networking.hostName}/root /mnt
|
||||
mount -t btrfs /dev/${name}/root /mnt
|
||||
|
||||
if [[ -e /mnt/prev ]]; then
|
||||
btrfs subvolume delete /mnt/prev
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
boot.loader.systemd-boot = {
|
||||
editor = false;
|
||||
graceful = true;
|
||||
};
|
||||
}
|
|
@ -11,9 +11,9 @@
|
|||
};
|
||||
};
|
||||
|
||||
services = lib.mkIf config.environment.persistence."/persist".enable {
|
||||
services = {
|
||||
btrfs.autoScrub = {
|
||||
enable = true;
|
||||
enable = (config.fileSystems."/".fsType == "btrfs");
|
||||
interval = "weekly";
|
||||
};
|
||||
fstrim.enable = true;
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
{ impermanence, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
imports = [ impermanence.nixosModules.impermanence ];
|
||||
|
||||
environment.persistence."/persist" = {
|
||||
hideMounts = true;
|
||||
directories = [
|
||||
"/storage"
|
||||
"/var/lib/nixos"
|
||||
{
|
||||
directory = "/var/lib/nixos";
|
||||
mode = "0700";
|
||||
}
|
||||
{
|
||||
directory = "/var/lib/nixos-containers";
|
||||
mode = "0700";
|
||||
}
|
||||
];
|
||||
files = [ "/etc/machine-id" ];
|
||||
};
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
"${midas.config.deployment.targetHost}" = [ "midas" ];
|
||||
"${kitty.config.deployment.targetHost}" = [ "kitty" ];
|
||||
"${detritus.config.deployment.targetHost}" = [ "detritus" ];
|
||||
"${elder.config.deployment.targetHost}" = [ "elder" ];
|
||||
"${prophet.config.deployment.targetHost}" = [ "prophet" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
{
|
||||
fileSystems = let
|
||||
common = {
|
||||
fsType = "nfs4";
|
||||
fsType = "nfs";
|
||||
options = [
|
||||
"noatime"
|
||||
"noauto"
|
||||
"soft"
|
||||
"x-systemd.automount"
|
||||
|
@ -22,10 +23,6 @@
|
|||
device = "detritus:/storage";
|
||||
mountPoint = "/network/Detritus";
|
||||
};
|
||||
"elder" = common // {
|
||||
device = "elder:/storage";
|
||||
mountPoint = "/network/Elder";
|
||||
};
|
||||
"prophet" = common // {
|
||||
device = "prophet:/storage";
|
||||
mountPoint = "/network/Prophet";
|
||||
|
|
6
modules/system/devices/video/amd/default.nix
Normal file
6
modules/system/devices/video/amd/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{ ... }:
|
||||
{
|
||||
boot.kernelParams = [ "amd_pstate=active" ];
|
||||
|
||||
hardware.amdgpu.legacySupport.enable = true;
|
||||
}
|
|
@ -1,6 +1,9 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [ ./nvidia ];
|
||||
imports = [
|
||||
./amd
|
||||
./nvidia
|
||||
];
|
||||
|
||||
hardware.graphics = {
|
||||
enable = builtins.elem "pc" config.system.nixos.tags;
|
||||
|
|
|
@ -8,10 +8,14 @@
|
|||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
nvidiaSettings = false;
|
||||
open = true;
|
||||
open = if lib.versionOlder config.hardware.nvidia.package.version "560" then false else true;
|
||||
powerManagement.enable = config.hardware.nvidia.open;
|
||||
};
|
||||
|
||||
nixpkgs.allowUnfreePackages = [ "nvidia-x11" ];
|
||||
nixpkgs = {
|
||||
allowUnfreePackages = [ "nvidia-x11" ];
|
||||
config.nvidia.acceptLicense = true;
|
||||
};
|
||||
|
||||
specialisation = lib.mkIf (lib.elem "nvidia" config.services.xserver.videoDrivers) {
|
||||
nouveau.configuration.config.services.xserver.videoDrivers = lib.mkForce [ "nouveau" ];
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
{ hm, stable, unstable, blender, impermanence, nur, ... }:
|
||||
{ stable, unstable, blender, impermanence, nur, ... }:
|
||||
{
|
||||
imports = [ hm.nixosModules.home-manager ];
|
||||
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
backupFileExtension = "bak";
|
||||
|
|
Binary file not shown.
|
@ -20,7 +20,8 @@
|
|||
"pci=routeirq"
|
||||
];
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
# Enable the gui manager
|
||||
programs.virt-manager.enable = builtins.elem "pc" config.system.nixos.tags;
|
||||
|
||||
# Allow looking glass to be accessed by users
|
||||
systemd.tmpfiles.rules = [ "f /dev/shm/looking-glass 0660 - libvirtd -" ];
|
||||
|
|
|
@ -11,7 +11,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
programs.ssh.startAgent = true;
|
||||
programs.ssh = {
|
||||
startAgent = true;
|
||||
|
||||
# Don't host prompt for servers
|
||||
knownHosts = {
|
||||
midas.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFcFMvrx9/iUZ1mEubf+QF1i3LNTxFhaU/1zFSjdo0kK";
|
||||
kitty.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIrGmsya5DXKuXO6jNjUlrYHqk49KLzxM/60GXtLRLrL";
|
||||
detritus.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDPD9m/rUjb88C4Kin2YhMrMVigu5IEf20FzwfAvz8SI";
|
||||
prophet.publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICrp3Y/X2BRUENx+0GMTmB1VDA6SiwkGgdJMHSdMMepM";
|
||||
};
|
||||
};
|
||||
|
||||
security.pam.services.sshd.allowNullPassword = true;
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
imports = [
|
||||
./cfdyndns
|
||||
./forgejo
|
||||
./hedgedoc
|
||||
./icecast
|
||||
./incus
|
||||
./jellyfin
|
||||
|
|
|
@ -8,17 +8,17 @@
|
|||
lfs.enable = true;
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = "git.${config.vars.mainDomain}";
|
||||
ROOT_URL = "https://git.${config.vars.mainDomain}:443";
|
||||
DOMAIN = "git.${config.vars.primeDomain}";
|
||||
ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}:443";
|
||||
HTTP_PORT = 3110;
|
||||
SSH_PORT = 2299;
|
||||
START_SSH_SERVER = true;
|
||||
};
|
||||
mailer = {
|
||||
ENABLED = true;
|
||||
SMTP_ADDR = "mx.${config.vars.mainDomain}";
|
||||
FROM = "NixFox Git <noreply@${config.vars.mainDomain}>";
|
||||
USER = "noreply@${config.vars.mainDomain}";
|
||||
SMTP_ADDR = "mx.${config.vars.mailDomain}";
|
||||
FROM = "NixFox Git <noreply@${config.vars.primeDomain}>";
|
||||
USER = "noreply@${config.vars.primeDomain}";
|
||||
PASSWD = config.secrets.mailPass.nixfoxNoReply;
|
||||
PROTOCOL = "smtps";
|
||||
};
|
||||
|
@ -32,7 +32,7 @@
|
|||
|
||||
networking.firewall.allowedTCPPorts = [ 2299 ];
|
||||
|
||||
services.cloudflare-dyndns.domains = [ "git.${config.vars.mainDomain}" ];
|
||||
services.cloudflare-dyndns.domains = [ config.services.forgejo.settings.server.DOMAIN ];
|
||||
|
||||
environment.persistence."/persist".directories = [ "/var/lib/forgejo" ];
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."git.${config.vars.mainDomain}" = lib.mkIf config.services.forgejo.enable {
|
||||
services.nginx.virtualHosts."${config.services.forgejo.settings.server.DOMAIN}" = lib.mkIf config.services.forgejo.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
|
|
15
modules/system/services/server/hedgedoc/default.nix
Normal file
15
modules/system/services/server/hedgedoc/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
imports = [ ./nginx ];
|
||||
|
||||
services.hedgedoc.settings = {
|
||||
domain = "hedgedoc.${config.vars.primeDomain}";
|
||||
port = 8001;
|
||||
host = "127.0.0.1";
|
||||
protocolUseSSL = true;
|
||||
allowOrigin = [
|
||||
"localhost"
|
||||
config.services.hedgedoc.settings.domain
|
||||
];
|
||||
};
|
||||
}
|
11
modules/system/services/server/hedgedoc/nginx/default.nix
Normal file
11
modules/system/services/server/hedgedoc/nginx/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."${config.services.hedgedoc.settings.domain}" = lib.mkIf config.services.hedgedoc.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:${toString config.services.hedgedoc.settings.port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
services.icecast = {
|
||||
listen.port = 73;
|
||||
hostname = "radio.${config.vars.mainDomain}";
|
||||
hostname = "radio.${config.vars.primeDomain}";
|
||||
admin = {
|
||||
user = "admin";
|
||||
password = config.secrets.cast.adminPass;
|
||||
|
@ -17,7 +17,7 @@
|
|||
<source-password>${config.secrets.cast.sourcePass}</source-password>
|
||||
</authentication>
|
||||
<location>Canada</location>
|
||||
<admin>contact@${config.vars.mainDomain}</admin>
|
||||
<admin>contact@${config.vars.primeDomain}</admin>
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
settings.init.allow_root.set(true)
|
||||
settings.scheduler.fast_queues.set(2)
|
||||
|
||||
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/storage/Music/NixBops"))
|
||||
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/network/Midas/Music/NixBops"))
|
||||
stream_fallback = fallback([stream, stream])
|
||||
|
||||
output.icecast(
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
settings.init.allow_root.set(true)
|
||||
settings.scheduler.fast_queues.set(2)
|
||||
|
||||
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/storage/Music/Scrap"))
|
||||
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/network/Midas/Music/Scrap"))
|
||||
stream_fallback = fallback([stream, stream])
|
||||
|
||||
output.icecast(
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."radio.${config.vars.mainDomain}" = lib.mkIf config.services.icecast.enable {
|
||||
services.nginx.virtualHosts."${config.services.icecast.hostname}" = lib.mkIf config.services.icecast.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."jelly.${config.vars.mainDomain}" = lib.mkIf config.services.jellyfin.enable {
|
||||
services.nginx.virtualHosts."jelly.${config.vars.primeDomain}" = lib.mkIf config.services.jellyfin.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
config = lib.mkIf config.mailserver.enable {
|
||||
mailserver = {
|
||||
fqdn = "mx.${config.vars.mainDomain}";
|
||||
fqdn = "mx.${config.vars.mailDomain}";
|
||||
domains = [
|
||||
"nixfox.ca"
|
||||
"bloxelcom.net"
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
enable = true;
|
||||
settings = {
|
||||
service_addr = ":1323";
|
||||
domain = "autoconfig.nixfox.ca";
|
||||
domain = "autoconfig.${config.vars.mailDomain}";
|
||||
imap = {
|
||||
server = "mx.nixfox.ca";
|
||||
server = "mx.${config.vars.mailDomain}";
|
||||
port = 143;
|
||||
};
|
||||
smtp = {
|
||||
server = "mx.nixfox.ca";
|
||||
server = "mx.${config.vars.mailDomain}";
|
||||
port = 587;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."autoconfig.${config.vars.mainDomain}" = lib.mkIf config.services.go-autoconfig.enable {
|
||||
services.nginx.virtualHosts."autoconfig.${config.vars.mailDomain}" = lib.mkIf config.services.go-autoconfig.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
htpasswd_encryption = "bcrypt";
|
||||
};
|
||||
};
|
||||
cloudflare-dyndns.domains = [ "cal.nixfox.ca" ];
|
||||
cloudflare-dyndns.domains = [ "cal.${config.vars.mailDomain}" ];
|
||||
};
|
||||
|
||||
environment.persistence."/persist".directories = [ "/var/lib/radicale" ];
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."cal.${config.vars.mainDomain}" = lib.mkIf config.services.radicale.enable {
|
||||
services.nginx.virtualHosts."cal.${config.vars.mailDomain}" = lib.mkIf config.services.radicale.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
config = lib.mkIf config.mailserver.enable {
|
||||
services.roundcube = {
|
||||
enable = true;
|
||||
hostName = "mail.${config.vars.mainDomain}";
|
||||
hostName = "mail.${config.vars.mailDomain}";
|
||||
extraConfig = ''
|
||||
$config['smtp_server'] = "tls://mx.${config.vars.mainDomain}";
|
||||
$config['smtp_server'] = "tls://mx.${config.vars.mailDomain}";
|
||||
$config['smtp_user'] = "%u";
|
||||
$config['smtp_pass'] = "%p";
|
||||
'';
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
{
|
||||
config = lib.mkIf config.services.mastodon.enable {
|
||||
services.mastodon = {
|
||||
localDomain = "social.nixfox.ca";
|
||||
localDomain = "social.${config.vars.primeDomain}";
|
||||
streamingProcesses = 4;
|
||||
configureNginx = true;
|
||||
smtp = {
|
||||
createLocally = false;
|
||||
host = "mx.nixfox.ca";
|
||||
host = "mx.${config.vars.mailDomain}";
|
||||
port = 587;
|
||||
authenticate = true;
|
||||
fromAddress = "NixFox Mastodon <noreply@nixfox.ca>";
|
||||
user = "noreply@nixfox.ca";
|
||||
fromAddress = "NixFox Mastodon <noreply@${config.vars.primeDomain}>";
|
||||
user = "noreply@${config.vars.primeDomain}";
|
||||
passwordFile = pkgs.writeText "smtp_pass.txt" config.secrets.mailPass.nixfoxNoReply;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
max-port = 50000;
|
||||
use-auth-secret = true;
|
||||
static-auth-secret = config.secrets.coturnSecret;
|
||||
realm = "turn.${config.vars.mainDomain}";
|
||||
realm = "turn.${config.vars.primeDomain}";
|
||||
cert = "/var/lib/acme/${config.services.coturn.realm}/fullchain.pem";
|
||||
pkey = "/var/lib/acme/${config.services.coturn.realm}/key.pem";
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
config = lib.mkIf config.services.coturn.enable {
|
||||
services.nginx.virtualHosts."turn.${config.vars.mainDomain}" = {
|
||||
services.nginx.virtualHosts."turn.${config.vars.primeDomain}" = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
listen = [{
|
||||
|
@ -12,7 +12,7 @@
|
|||
locations."/".proxyPass = "http://127.0.0.1:1380";
|
||||
};
|
||||
|
||||
security.acme.certs."turn.${config.vars.mainDomain}" = {
|
||||
security.acme.certs."turn.${config.vars.primeDomain}" = {
|
||||
group = "turnserver";
|
||||
postRun = "systemctl restart coturn.service";
|
||||
};
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
|
||||
nixpkgs.config.element-web.conf = {
|
||||
default_server_config."m.homeserver" = {
|
||||
base_url = "https://matrix.${config.vars.mainDomain}";
|
||||
server_name = "matrix.${config.vars.mainDomain}";
|
||||
base_url = "https://matrix.${config.vars.primeDomain}";
|
||||
server_name = "matrix.${config.vars.primeDomain}";
|
||||
};
|
||||
branding = {
|
||||
auth_header_logo_url = "https://www.${config.vars.mainDomain}/images/copyright/profile.png";
|
||||
#welcome_background_url = "https://www.${config.vars.mainDomain}/images/backgrounds/template-background.png";
|
||||
auth_header_logo_url = "https://www.${config.vars.primeDomain}/images/copyright/profile.png";
|
||||
#welcome_background_url = "https://www.${config.vars.primeDomain}/images/backgrounds/template-background.png";
|
||||
};
|
||||
embedded_pages.home_url = "https://www.${config.vars.mainDomain}/";
|
||||
embedded_pages.home_url = "https://www.${config.vars.primeDomain}/";
|
||||
disable_custom_urls = true;
|
||||
disable_guests = true;
|
||||
default_theme = "dark";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."chat.${config.vars.mainDomain}" = lib.mkIf config.services.matrix-synapse.enable {
|
||||
services.nginx.virtualHosts."chat.${config.vars.primeDomain}" = lib.mkIf config.services.matrix-synapse.enable {
|
||||
enableACME = true;
|
||||
addSSL = true;
|
||||
root = "${pkgs.element-web}";
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
config = lib.mkIf config.services.matrix-synapse.enable {
|
||||
services.matrix-synapse = {
|
||||
settings = {
|
||||
server_name = "${config.vars.mainDomain}";
|
||||
public_baseurl = "https://matrix.${config.vars.mainDomain}";
|
||||
server_name = "${config.vars.primeDomain}";
|
||||
public_baseurl = "https://matrix.${config.vars.primeDomain}";
|
||||
suppress_key_server_warning = true;
|
||||
|
||||
# Email notifications about account status
|
||||
email = {
|
||||
notif_from = "NixFox Matrix <noreply@${config.vars.mainDomain}>";
|
||||
smtp_host = "mx.${config.vars.mainDomain}";
|
||||
smtp_user = "noreply@${config.vars.mainDomain}";
|
||||
smtp_host = "mx.${config.vars.mailDomain}";
|
||||
smtp_user = "noreply@${config.vars.primeDomain}";
|
||||
smtp_pass = config.secrets.mailPass.nixfoxNoReply;
|
||||
notif_from = "NixFox Matrix <noreply@${config.vars.primeDomain}>";
|
||||
enable_tls = true;
|
||||
smtp_port = 587;
|
||||
require_transport_security = true;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."matrix.${config.vars.mainDomain}" = lib.mkIf config.services.matrix-synapse.enable {
|
||||
services.nginx.virtualHosts."matrix.${config.vars.primeDomain}" = lib.mkIf config.services.matrix-synapse.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations = {
|
||||
|
|
|
@ -3,17 +3,13 @@
|
|||
imports = [
|
||||
./common
|
||||
./servers
|
||||
minecraft.nixosModules.minecraft-servers
|
||||
];
|
||||
|
||||
config = lib.mkIf config.services.minecraft-servers.enable {
|
||||
nixpkgs = {
|
||||
overlays = [ minecraft.overlay ];
|
||||
allowUnfreePackages = [ "minecraft-server" ];
|
||||
};
|
||||
|
||||
services.minecraft-servers.eula = true;
|
||||
|
||||
nixpkgs.allowUnfreePackages = [ "minecraft-server" ];
|
||||
|
||||
environment.persistence."/persist".directories = [ "/srv/minecraft" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -14,6 +14,6 @@
|
|||
symlinks = config.services.minecraft-servers.common.paperSymlinks;
|
||||
files = config.services.minecraft-servers.common.configFiles;
|
||||
};
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.blockworld.enable [ "bloxel.${config.vars.mainDomain}" ];
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.blockworld.enable [ "bloxel.${config.vars.primeDomain}" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
symlinks = config.services.minecraft-servers.common.paperSymlinks;
|
||||
files = config.services.minecraft-servers.common.configFiles;
|
||||
};
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.cornworld.enable [ "corn.${config.vars.mainDomain}" ];
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.cornworld.enable [ "corn.${config.vars.primeDomain}" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
symlinks = config.services.minecraft-servers.common.paperSymlinks;
|
||||
files = config.services.minecraft-servers.common.configFiles;
|
||||
};
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.dewdemolisher.enable [ "dew.${config.vars.mainDomain}" ];
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.dewdemolisher.enable [ "dew.${config.vars.primeDomain}" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,6 +26,6 @@
|
|||
};
|
||||
files = config.services.minecraft-servers.common.configFiles;
|
||||
};
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.johnside.enable [ "john.${config.vars.mainDomain}" ];
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.johnside.enable [ "john.${config.vars.primeDomain}" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
symlinks = config.services.minecraft-servers.common.paperSymlinks;
|
||||
files = config.services.minecraft-servers.common.configFiles;
|
||||
};
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.marsh.enable [ "marsh.${config.vars.mainDomain}" ];
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.marsh.enable [ "marsh.${config.vars.primeDomain}" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
symlinks = config.services.minecraft-servers.common.paperSymlinks;
|
||||
files = config.services.minecraft-servers.common.configFiles;
|
||||
};
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.skyblock.enable [ "skyblock.${config.vars.mainDomain}" ];
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.skyblock.enable [ "skyblock.${config.vars.primeDomain}" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,6 +18,6 @@ in {
|
|||
server-port = 30005;
|
||||
};
|
||||
};
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable [ "beta.${config.vars.mainDomain}" ];
|
||||
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable [ "beta.${config.vars.primeDomain}" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
config = lib.mkIf config.services.nextcloud.enable {
|
||||
services.nextcloud = {
|
||||
package = pkgs.nextcloud31;
|
||||
hostName = "files.${config.vars.mainDomain}";
|
||||
hostName = "files.${config.vars.primeDomain}";
|
||||
https = true;
|
||||
config = {
|
||||
adminuser = "admin";
|
||||
|
@ -19,11 +19,11 @@
|
|||
trusted_proxies = [ "127.0.0.1" ];
|
||||
trusted_domains = [ config.services.nextcloud.hostName ];
|
||||
overwriteprotocol = "https";
|
||||
mail_smtphost = "mx.${config.vars.mainDomain}";
|
||||
mail_domain = "${config.vars.mainDomain}";
|
||||
mail_smtphost = "mx.${config.vars.mailDomain}";
|
||||
mail_domain = "${config.vars.primeDomain}";
|
||||
mail_from_address = "noreply";
|
||||
mail_smtpauth = "true";
|
||||
mail_smtpname = "noreply@${config.vars.mainDomain}";
|
||||
mail_smtpname = "noreply@${config.vars.primeDomain}";
|
||||
mail_smtppassword = config.secrets.mailPass.nixfoxNoReply;
|
||||
mail_smtpmode = "smtp";
|
||||
mail_smtpport = 587;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."files.${config.vars.mainDomain}" = lib.mkIf config.services.nextcloud.enable {
|
||||
services.nginx.virtualHosts."files.${config.vars.primeDomain}" = lib.mkIf config.services.nextcloud.enable {
|
||||
enableACME = true;
|
||||
addSSL = true;
|
||||
locations."/" = {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
config = lib.mkIf config.services.nginx.enable {
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
defaults.email = "contact@${config.vars.mainDomain}";
|
||||
defaults.email = "contact@${config.vars.primeDomain}";
|
||||
};
|
||||
environment.persistence."/persist".directories = [ "/var/lib/acme" ];
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."live.${config.vars.mainDomain}" = lib.mkIf config.services.owncast.enable {
|
||||
services.nginx.virtualHosts."live.${config.vars.primeDomain}" = lib.mkIf config.services.owncast.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."tor.${config.vars.mainDomain}" = lib.mkIf config.services.transmission.enable {
|
||||
services.nginx.virtualHosts."tor.${config.vars.primeDomain}" = lib.mkIf config.services.transmission.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
|
|
|
@ -4,16 +4,16 @@
|
|||
|
||||
config = lib.mkIf config.services.vaultwarden.enable {
|
||||
services.vaultwarden.config = {
|
||||
domain = "https://pass.${config.vars.mainDomain}";
|
||||
domain = "https://pass.${config.vars.primeDomain}";
|
||||
signupsAllowed = false;
|
||||
rocketAddress = "127.0.0.1";
|
||||
rocketPort = 8222;
|
||||
|
||||
# Smtp email
|
||||
smtpHost = "mx.${config.vars.mainDomain}";
|
||||
smtpFrom = "noreply@${config.vars.mainDomain}";
|
||||
smtpHost = "mx.${config.vars.mailDomain}";
|
||||
smtpFrom = "noreply@${config.vars.primeDomain}";
|
||||
smtpFromName = "Vaultwarden";
|
||||
smtpUsername = "noreply@${config.vars.mainDomain}";
|
||||
smtpUsername = "noreply@${config.vars.primeDomain}";
|
||||
smtpPassword = config.secrets.mailPass.nixfoxNoReply;
|
||||
smtpSecurity = "starttls";
|
||||
smtpPort = 587;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
services.nginx.virtualHosts."pass.${config.vars.mainDomain}" = lib.mkIf config.services.vaultwarden.enable {
|
||||
services.nginx.virtualHosts."pass.${config.vars.primeDomain}" = lib.mkIf config.services.vaultwarden.enable {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
imports = [
|
||||
./cache
|
||||
./channels
|
||||
./distributed
|
||||
./maintenence
|
||||
./unfree
|
||||
];
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
{ config, lib, nodes, ... }:
|
||||
{
|
||||
nix = {
|
||||
# Machines to build derviations on
|
||||
buildMachines = with nodes; [
|
||||
{
|
||||
hostName = "midas";
|
||||
system = midas.config.nixpkgs.hostPlatform.system;
|
||||
supportedFeatures = midas.config.nix.settings.system-features;
|
||||
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUZjRk12cng5L2lVWjFtRXViZitRRjFpM0xOVHhGaGFVLzF6RlNqZG8wa0sgcm9vdEBraXR0eQo=";
|
||||
protocol = "ssh-ng";
|
||||
sshKey = "/root/.ssh/buildkey";
|
||||
maxJobs = 8;
|
||||
}
|
||||
{
|
||||
hostName = "kitty";
|
||||
system = kitty.config.nixpkgs.hostPlatform.system;
|
||||
supportedFeatures = kitty.config.nix.settings.system-features;
|
||||
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUlyR21zeWE1RFhLdVhPNmpOalVscllIcWs0OUtMenhNLzYwR1h0TFJMckwgcm9vdEBraXR0eQo=";
|
||||
protocol = "ssh-ng";
|
||||
sshKey = "/root/.ssh/buildkey";
|
||||
maxJobs = 8;
|
||||
}
|
||||
{
|
||||
hostName = "detritus";
|
||||
system = detritus.config.nixpkgs.hostPlatform.system;
|
||||
supportedFeatures = detritus.config.nix.settings.system-features;
|
||||
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSU4rR3ZMcm80RFZtbHZtWGNhc1UxZ2N0SVg5cWN0N21adEVscEI3MzVBb0wgcm9vdEBkZXRyaXR1cwo=";
|
||||
protocol = "ssh-ng";
|
||||
sshKey = "/root/.ssh/buildkey";
|
||||
maxJobs = 8;
|
||||
}
|
||||
{
|
||||
hostName = "elder";
|
||||
system = elder.config.nixpkgs.hostPlatform.system;
|
||||
supportedFeatures = elder.config.nix.settings.system-features;
|
||||
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUZqbUo2Ymt1TzU3Z3A2R1pERWZSMU83a3JkZjV3aXFyT0JDNXB6VERsOTEgcm9vdEBlbGRlcgo=";
|
||||
protocol = "ssh-ng";
|
||||
sshKey = "/root/.ssh/buildkey";
|
||||
maxJobs = 8;
|
||||
}
|
||||
{
|
||||
hostName = "prophet";
|
||||
system = prophet.config.nixpkgs.hostPlatform.system;
|
||||
supportedFeatures = prophet.config.nix.settings.system-features;
|
||||
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUNycDNZL1gyQlJVRU54KzBHTVRtQjFWREE2U2l3a0dnZEpNSFNkTU1lcE0gcm9vdEBwcm9waGV0Cg==";
|
||||
protocol = "ssh-ng";
|
||||
sshKey = "/root/.ssh/buildkey";
|
||||
maxJobs = 8;
|
||||
}
|
||||
];
|
||||
|
||||
# Enable distributed builds
|
||||
distributedBuilds = true;
|
||||
|
||||
settings = {
|
||||
# Serve derivations more efficiently, using substituters
|
||||
substituters = [
|
||||
"ssh-ng://midas"
|
||||
"ssh-ng://kitty"
|
||||
"ssh-ng://detritus"
|
||||
"ssh-ng://elder"
|
||||
"ssh-ng://prophet"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"midas:YpyfZyVlTlPjzcVsYBnN13EgeK95y1WXxm9h1V8tM7E="
|
||||
"kitty:QLl9Do4v+2Q/fapozUGoXIKJul+Zck3yAsmAo9Lg4is="
|
||||
"detritus:xtQVaIyDIBWS+EAU11dBsW9BUMT7aAZRPjKp3Udgdvc="
|
||||
"elder:U+zIEvxNeqOxAWbZyrJzDNrJF1GJdcrLEYbIqmKGd7U="
|
||||
"prophet:NPlWmuX1vz95uUIddQXlwrkmdSMZW1U27CdEY812brg="
|
||||
];
|
||||
|
||||
# Settings to sign the derivations and allow building
|
||||
max-jobs = if builtins.elem "server" config.system.nixos.tags then "auto" else 0;
|
||||
secret-key-files = "/var/lib/nixos/cache-priv-key.pem";
|
||||
trusted-users = [ "root" ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
config.vars = {
|
||||
mainUser = "bun";
|
||||
mainDomain = "nixfox.ca";
|
||||
primeDomain = "nixfox.ca";
|
||||
mailDomain = "nixfox.ca";
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue