mirror of
https://github.com/callumio/nixfiles.git
synced 2026-08-06 20:49:17 +01:00
format all
This commit is contained in:
parent
091cfbdf96
commit
bcf0553529
40 changed files with 271 additions and 140 deletions
|
|
@ -1,5 +1,9 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
imports = [./programs ./services];
|
{
|
||||||
|
imports = [
|
||||||
|
./programs
|
||||||
|
./services
|
||||||
|
];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
services.trayscale.enable = true;
|
services.trayscale.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
env = {TERM = "xterm-256color";};
|
env = {
|
||||||
|
TERM = "xterm-256color";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hypr
|
./hypr
|
||||||
./waybar
|
./waybar
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{inputs, ...}: {
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
policies = {
|
policies = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs = {
|
programs = {
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -18,7 +19,9 @@
|
||||||
email = "psycl6@nottingham.ac.uk";
|
email = "psycl6@nottingham.ac.uk";
|
||||||
signingKey = "14861F1282EFB5C8!";
|
signingKey = "14861F1282EFB5C8!";
|
||||||
};
|
};
|
||||||
credential = {helper = "store";};
|
credential = {
|
||||||
|
helper = "store";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
@ -29,10 +32,16 @@
|
||||||
autocrlf = false;
|
autocrlf = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
init = {defaultBranch = "main";};
|
init = {
|
||||||
|
defaultBranch = "main";
|
||||||
|
};
|
||||||
|
|
||||||
push = {autoSetupRemote = true;};
|
push = {
|
||||||
ghq = {root = "~/repos";};
|
autoSetupRemote = true;
|
||||||
|
};
|
||||||
|
ghq = {
|
||||||
|
root = "~/repos";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
delta.enable = true;
|
delta.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs.jujutsu = {
|
programs.jujutsu = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs.rbw = {
|
programs.rbw = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.rofi;
|
package = pkgs.rofi;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
imports = [./mako ./kanshi];
|
{
|
||||||
|
imports = [
|
||||||
|
./mako
|
||||||
|
./kanshi
|
||||||
|
];
|
||||||
services = {
|
services = {
|
||||||
network-manager-applet.enable = true;
|
network-manager-applet.enable = true;
|
||||||
mpris-proxy.enable = true;
|
mpris-proxy.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
services.kanshi = {
|
services.kanshi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = [
|
settings = [
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.defaultTimeout = 7000;
|
settings.defaultTimeout = 7000;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
waydroid.enable = true;
|
waydroid.enable = true;
|
||||||
libvirtd.enable = true;
|
libvirtd.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,18 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
zramSwap.enable = true;
|
zramSwap.enable = true;
|
||||||
boot = {
|
boot = {
|
||||||
initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "rtsx_pci_sdmmc"];
|
initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"thunderbolt"
|
||||||
|
"nvme"
|
||||||
|
"usb_storage"
|
||||||
|
"rtsx_pci_sdmmc"
|
||||||
|
];
|
||||||
initrd.kernelModules = [ ];
|
initrd.kernelModules = [ ];
|
||||||
kernelModules = [ "kvm-intel" ];
|
kernelModules = [ "kvm-intel" ];
|
||||||
extraModulePackages = [ ];
|
extraModulePackages = [ ];
|
||||||
|
|
@ -25,7 +32,11 @@
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
powerOnBoot = true;
|
powerOnBoot = true;
|
||||||
settings = {General = {Enable = "Source,Sink,Media,Socket";};};
|
settings = {
|
||||||
|
General = {
|
||||||
|
Enable = "Source,Sink,Media,Socket";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
graphics = {
|
graphics = {
|
||||||
|
|
@ -44,7 +55,9 @@
|
||||||
|
|
||||||
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
};
|
};
|
||||||
environment.sessionVariables = {LIBVA_DRIVER_NAME = "iHD";}; # Force intel-media-driver
|
environment.sessionVariables = {
|
||||||
|
LIBVA_DRIVER_NAME = "iHD";
|
||||||
|
}; # Force intel-media-driver
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
blueman.enable = true;
|
blueman.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,14 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "artemis";
|
hostName = "artemis";
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
firewall.enable = true;
|
firewall.enable = true;
|
||||||
firewall.allowPing = true;
|
firewall.allowPing = true;
|
||||||
enableIPv6 = false;
|
enableIPv6 = false;
|
||||||
nameservers = ["9.9.9.9" "149.112.112.112"];
|
nameservers = [
|
||||||
|
"9.9.9.9"
|
||||||
|
"149.112.112.112"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
programs = {
|
programs = {
|
||||||
wireshark.enable = true;
|
wireshark.enable = true;
|
||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
|
|
@ -30,7 +31,11 @@
|
||||||
# theme_name = "Adwaita";
|
# theme_name = "Adwaita";
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
cageArgs = ["-s" "-m" "last"];
|
cageArgs = [
|
||||||
|
"-s"
|
||||||
|
"-m"
|
||||||
|
"last"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,20 @@
|
||||||
inputs,
|
inputs,
|
||||||
mods,
|
mods,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
sharedModules = [inputs.home-manager.nixosModules.home-manager inputs.stylix.nixosModules.stylix inputs.agenix.nixosModules.default] ++ mods.sharedModules;
|
let
|
||||||
|
sharedModules = [
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
inputs.stylix.nixosModules.stylix
|
||||||
|
inputs.agenix.nixosModules.default
|
||||||
|
]
|
||||||
|
++ mods.sharedModules;
|
||||||
artemis = import ./artemis { inherit inputs sharedModules; };
|
artemis = import ./artemis { inherit inputs sharedModules; };
|
||||||
hermes = import ./hermes { inherit inputs sharedModules; };
|
hermes = import ./hermes { inherit inputs sharedModules; };
|
||||||
in {
|
in
|
||||||
hosts = [artemis hermes];
|
{
|
||||||
|
hosts = [
|
||||||
|
artemis
|
||||||
|
hermes
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
c.services.mesh = {
|
c.services.mesh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -22,7 +23,10 @@
|
||||||
|
|
||||||
users.users.media = {
|
users.users.media = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = ["wheel" "multimedia"];
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"multimedia"
|
||||||
|
];
|
||||||
openssh.authorizedKeys.keys = config.keys.c;
|
openssh.authorizedKeys.keys = config.keys.c;
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
tree
|
tree
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
podman.enable = true;
|
podman.enable = true;
|
||||||
podman.dockerCompat = true;
|
podman.dockerCompat = true;
|
||||||
|
|
@ -17,7 +18,10 @@
|
||||||
tdarr = {
|
tdarr = {
|
||||||
image = "ghcr.io/haveagitgat/tdarr";
|
image = "ghcr.io/haveagitgat/tdarr";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
ports = ["0.0.0.0:8265:8265" "127.0.0.1:8266:8266"];
|
ports = [
|
||||||
|
"0.0.0.0:8265:8265"
|
||||||
|
"127.0.0.1:8266:8266"
|
||||||
|
];
|
||||||
volumes = [
|
volumes = [
|
||||||
"/var/lib/tdarr/server:/app/server"
|
"/var/lib/tdarr/server:/app/server"
|
||||||
"/var/lib/tdarr/configs:/app/configs"
|
"/var/lib/tdarr/configs:/app/configs"
|
||||||
|
|
@ -37,7 +41,10 @@
|
||||||
PUID = "1000";
|
PUID = "1000";
|
||||||
PGID = "994";
|
PGID = "994";
|
||||||
};
|
};
|
||||||
extraOptions = ["--device=/dev/dri:/dev/dri" "--network=bridge"];
|
extraOptions = [
|
||||||
|
"--device=/dev/dri:/dev/dri"
|
||||||
|
"--network=bridge"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{config, ...}: let
|
{ config, ... }:
|
||||||
|
let
|
||||||
domain = "files.cleslie.uk";
|
domain = "files.cleslie.uk";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services = {
|
services = {
|
||||||
cloudflare-dyndns.domains = [ domain ];
|
cloudflare-dyndns.domains = [ domain ];
|
||||||
copyparty = {
|
copyparty = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{config, ...}: {
|
{ config, ... }:
|
||||||
|
{
|
||||||
services.cloudflare-dyndns = {
|
services.cloudflare-dyndns = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ipv4 = true;
|
ipv4 = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
services.fail2ban = {
|
services.fail2ban = {
|
||||||
enable = true;
|
enable = true;
|
||||||
jails = {
|
jails = {
|
||||||
sshd.settings = {enabled = false;};
|
sshd.settings = {
|
||||||
|
enabled = false;
|
||||||
|
};
|
||||||
radarr.settings = {
|
radarr.settings = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
filter = "arr";
|
filter = "arr";
|
||||||
|
|
@ -74,7 +77,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
"fail2ban/filter.d/arr.local".text = pkgs.lib.mkDefault (pkgs.lib.mkAfter ''
|
"fail2ban/filter.d/arr.local".text = pkgs.lib.mkDefault (
|
||||||
|
pkgs.lib.mkAfter ''
|
||||||
[INCLUDES]
|
[INCLUDES]
|
||||||
before = common.conf
|
before = common.conf
|
||||||
|
|
||||||
|
|
@ -82,9 +86,11 @@
|
||||||
datepattern = ^%%Y-%%m-%%d %%H:%%M:%%S\.%%f\|
|
datepattern = ^%%Y-%%m-%%d %%H:%%M:%%S\.%%f\|
|
||||||
failregex = ^\s*Warn\|Auth\|Auth-Failure ip <ADDR> username '<F-USER>[^']+</F-USER>'
|
failregex = ^\s*Warn\|Auth\|Auth-Failure ip <ADDR> username '<F-USER>[^']+</F-USER>'
|
||||||
ignoreregex =
|
ignoreregex =
|
||||||
'');
|
''
|
||||||
|
);
|
||||||
|
|
||||||
"fail2ban/filter.d/jellyseerr.local".text = pkgs.lib.mkDefault (pkgs.lib.mkAfter ''
|
"fail2ban/filter.d/jellyseerr.local".text = pkgs.lib.mkDefault (
|
||||||
|
pkgs.lib.mkAfter ''
|
||||||
[INCLUDES]
|
[INCLUDES]
|
||||||
before = common.conf
|
before = common.conf
|
||||||
|
|
||||||
|
|
@ -92,15 +98,18 @@
|
||||||
failregex = ^.*\[warn\]\[API\]: Failed sign-in attempt using invalid Overseerr password {"ip":"<HOST>","email":
|
failregex = ^.*\[warn\]\[API\]: Failed sign-in attempt using invalid Overseerr password {"ip":"<HOST>","email":
|
||||||
^.*\[warn\]\[Auth\]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"<HOST>","email":
|
^.*\[warn\]\[Auth\]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"<HOST>","email":
|
||||||
ignoreregex =
|
ignoreregex =
|
||||||
'');
|
''
|
||||||
|
);
|
||||||
|
|
||||||
"fail2ban/filter.d/jellyfin.local".text = pkgs.lib.mkDefault (pkgs.lib.mkAfter ''
|
"fail2ban/filter.d/jellyfin.local".text = pkgs.lib.mkDefault (
|
||||||
|
pkgs.lib.mkAfter ''
|
||||||
[INCLUDES]
|
[INCLUDES]
|
||||||
before = common.conf
|
before = common.conf
|
||||||
|
|
||||||
[Definition]
|
[Definition]
|
||||||
failregex = ^.*Authentication request for .* has been denied \(IP: "<ADDR>"\)\.
|
failregex = ^.*Authentication request for .* has been denied \(IP: "<ADDR>"\)\.
|
||||||
ignoreregex =
|
ignoreregex =
|
||||||
'');
|
''
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,11 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
domain = "git.cleslie.uk";
|
domain = "git.cleslie.uk";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services = {
|
services = {
|
||||||
cloudflare-dyndns.domains = [ domain ];
|
cloudflare-dyndns.domains = [ domain ];
|
||||||
forgejo = {
|
forgejo = {
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,19 @@
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
boot = {
|
boot = {
|
||||||
initrd.availableKernelModules = ["xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
|
initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
initrd.kernelModules = [ ];
|
initrd.kernelModules = [ ];
|
||||||
kernelModules = [ "kvm-intel" ];
|
kernelModules = [ "kvm-intel" ];
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
|
|
@ -27,7 +34,10 @@
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/57CE-8609";
|
device = "/dev/disk/by-uuid/57CE-8609";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = ["fmask=0077" "dmask=0077"];
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{config, ...}: let
|
{ config, ... }:
|
||||||
|
let
|
||||||
domain = "mesh.cleslie.uk";
|
domain = "mesh.cleslie.uk";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services = {
|
services = {
|
||||||
headscale = {
|
headscale = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
{pkgs, ...}: let
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
mediaDir = "/var/lib/media";
|
mediaDir = "/var/lib/media";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
users = {
|
users = {
|
||||||
groups.multimedia = {gid = 994;};
|
groups.multimedia = {
|
||||||
|
gid = 994;
|
||||||
|
};
|
||||||
users."root".extraGroups = [ "multimedia" ];
|
users."root".extraGroups = [ "multimedia" ];
|
||||||
users."media".extraGroups = [ "multimedia" ];
|
users."media".extraGroups = [ "multimedia" ];
|
||||||
};
|
};
|
||||||
|
|
@ -87,7 +91,11 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
cloudflare-dyndns.domains = ["media.cleslie.uk" "watch.cleslie.uk" "request.cleslie.uk"];
|
cloudflare-dyndns.domains = [
|
||||||
|
"media.cleslie.uk"
|
||||||
|
"watch.cleslie.uk"
|
||||||
|
"request.cleslie.uk"
|
||||||
|
];
|
||||||
|
|
||||||
jellyfin = {
|
jellyfin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{pkgs, ...}: let
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
domain = "automation.cleslie.uk";
|
domain = "automation.cleslie.uk";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services = {
|
services = {
|
||||||
cloudflare-dyndns.domains = [ domain ];
|
cloudflare-dyndns.domains = [ domain ];
|
||||||
n8n = {
|
n8n = {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,13 @@
|
||||||
{config, ...}: {
|
{ config, ... }:
|
||||||
|
{
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "hermes";
|
hostName = "hermes";
|
||||||
enableIPv6 = false;
|
enableIPv6 = false;
|
||||||
firewall.allowedTCPPorts = [80 443 8265];
|
firewall.allowedTCPPorts = [
|
||||||
|
80
|
||||||
|
443
|
||||||
|
8265
|
||||||
|
];
|
||||||
firewall.checkReversePath = false;
|
firewall.checkReversePath = false;
|
||||||
iproute2.enable = true;
|
iproute2.enable = true;
|
||||||
iproute2.rttablesExtraConfig = ''
|
iproute2.rttablesExtraConfig = ''
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
_: let
|
_:
|
||||||
|
let
|
||||||
domain = "hub.cleslie.uk";
|
domain = "hub.cleslie.uk";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services = {
|
services = {
|
||||||
cloudflare-dyndns.domains = [ domain ];
|
cloudflare-dyndns.domains = [ domain ];
|
||||||
nocodb = {
|
nocodb = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
services.quassel = {
|
services.quassel = {
|
||||||
enable = true;
|
enable = true;
|
||||||
interfaces = [ "0.0.0.0" ];
|
interfaces = [ "0.0.0.0" ];
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
services = {
|
services = {
|
||||||
openssh = {
|
openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{config, ...}: let
|
{ config, ... }:
|
||||||
|
let
|
||||||
domain = "vaultwarden.cleslie.uk";
|
domain = "vaultwarden.cleslie.uk";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services = {
|
services = {
|
||||||
cloudflare-dyndns.domains = [ domain ];
|
cloudflare-dyndns.domains = [ domain ];
|
||||||
vaultwarden = {
|
vaultwarden = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{inputs, ...}: _final: prev: {
|
{ inputs, ... }:
|
||||||
|
_final: prev: {
|
||||||
nvf = inputs.nvf.packages.${prev.system}.default;
|
nvf = inputs.nvf.packages.${prev.system}.default;
|
||||||
devour-flake = prev.callPackage inputs.devour-flake { };
|
devour-flake = prev.callPackage inputs.devour-flake { };
|
||||||
agenix = inputs.agenix.packages.${prev.system}.default;
|
agenix = inputs.agenix.packages.${prev.system}.default;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
inputs',
|
inputs',
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
tmux-sessionizer-cl = pkgs.callPackage ./tmux-sessionizer { };
|
tmux-sessionizer-cl = pkgs.callPackage ./tmux-sessionizer { };
|
||||||
om = inputs'.omnix.packages.default;
|
om = inputs'.omnix.packages.default;
|
||||||
nvf = inputs'.nvf.packages.default;
|
nvf = inputs'.nvf.packages.default;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,11 @@
|
||||||
{pkgs}: let
|
{ pkgs }:
|
||||||
|
let
|
||||||
name = "tmux-sessionizer";
|
name = "tmux-sessionizer";
|
||||||
runtimeInputs = [pkgs.tmux pkgs.ghq pkgs.fzf];
|
runtimeInputs = [
|
||||||
|
pkgs.tmux
|
||||||
|
pkgs.ghq
|
||||||
|
pkgs.fzf
|
||||||
|
];
|
||||||
text = builtins.readFile ./tmux-sessionizer.sh;
|
text = builtins.readFile ./tmux-sessionizer.sh;
|
||||||
in
|
in
|
||||||
pkgs.writeShellApplication {
|
pkgs.writeShellApplication {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@ let
|
||||||
artemis = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILERlCL5ZwP/mmtBNAMtLrUwEDy+tOprUWUmsGBRlTCF";
|
artemis = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILERlCL5ZwP/mmtBNAMtLrUwEDy+tOprUWUmsGBRlTCF";
|
||||||
};
|
};
|
||||||
allSystems = builtins.attrValues systems;
|
allSystems = builtins.attrValues systems;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
"wg-conf.age".publicKeys = keys.c ++ allSystems;
|
"wg-conf.age".publicKeys = keys.c ++ allSystems;
|
||||||
"mesh-conf-infra.age".publicKeys = keys.c ++ allSystems;
|
"mesh-conf-infra.age".publicKeys = keys.c ++ allSystems;
|
||||||
"mesh-conf-cleslie.age".publicKeys = keys.c ++ allSystems;
|
"mesh-conf-cleslie.age".publicKeys = keys.c ++ allSystems;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue