23 Commits

Author SHA1 Message Date
Tom Alexander
24853ba6a2 Add secret for private images pulled in tekton steps. 2026-09-12 17:26:41 -04:00
Tom Alexander
f2bde9ffea Disable installing documentation. 2026-09-07 15:41:38 -04:00
Tom Alexander
0d6001d655 Add parted to debugging role on kubernetes.
This is to support expanding the storage.
2026-09-07 13:24:39 -04:00
Tom Alexander
a0e8a74906 Update packages. 2026-09-05 19:07:41 -04:00
Tom Alexander
e719948a3e Switch to quad9 for DNS.
Mullvad is shutting down their public DNS.

ref: https://mullvad.net/en/blog/shutting-down-our-public-encrypted-dns-servers-and-sponsoring-quad9-instead
2026-09-05 09:46:36 -04:00
Tom Alexander
3f281f1980 Clean up nix_builder directories at the start of a build. 2026-09-03 22:21:07 -04:00
Tom Alexander
6ed4aa08f6 Add a role for mitmproxy. 2026-08-29 09:40:21 -04:00
Tom Alexander
9bfa21368b Update to Linux 7.2.
This is to pull in the drivers for the mt7927 wireless chipset in my desktop. Normally, I would keep the rest of my machines on LTS but since Linux 7 significantly changed the kernel preemption, maintaining two configs would be more trouble than it is worth.
2026-08-29 06:50:47 -04:00
Tom Alexander
4eb7749967 Update persist directory for the latest firefox. 2026-08-29 06:50:45 -04:00
Tom Alexander
d0504bf98f Update rpcs3. 2026-08-28 09:02:47 -04:00
Tom Alexander
f1d6ae3f1b Merge branch 'update' into nix 2026-08-28 06:55:11 -04:00
Tom Alexander
85815fddfd Update deprecated podman settings. 2026-08-28 06:53:56 -04:00
Tom Alexander
5680e566bc Update packages. 2026-08-28 06:53:56 -04:00
Tom Alexander
3bbaeaf2af Install Arial font with rpcs3. 2026-08-26 17:16:22 -04:00
Tom Alexander
1845b1ac30 Increase thresholds for automatic garbage collection. 2026-08-10 22:38:26 -04:00
Tom Alexander
4a772b7276 Disable ca-derivations for the kubernetes cluster also. 2026-08-10 18:30:58 -04:00
Tom Alexander
0e231428df Disable ca-derivations.
Seeing if this is what is causing all my issues with files/directories in the nix store going missing.
2026-08-10 15:27:18 -04:00
Tom Alexander
27b5c0c9ab Disable build of sm64ex. 2026-08-09 17:18:26 -04:00
Tom Alexander
54e97da71d Enable building on quark. 2026-08-09 16:23:47 -04:00
Tom Alexander
58c78c50e6 Add The Lord of the Rings The War in the North to RPCS3. 2026-08-09 16:23:47 -04:00
Tom Alexander
e2ed4013c5 Add support for exfat. 2026-08-09 16:23:47 -04:00
Tom Alexander
3aefe7c0b5 Update nix builder to gracefully handle errors during setup. 2026-08-09 00:45:41 -04:00
Tom Alexander
a2485dcfe0 Update NixBSD build target to my repo and add a wip branch build target. 2026-08-08 18:36:06 -04:00
22 changed files with 181 additions and 101 deletions

View File

@@ -36,6 +36,7 @@ in
./roles/emacs
./roles/emulate_isa
./roles/esim
./roles/exfat
./roles/firefox
./roles/firewall
./roles/flux
@@ -63,6 +64,7 @@ in
./roles/media
./roles/memtest86
./roles/minimal_base
./roles/mitmproxy
./roles/network
./roles/nix_index
./roles/nix_repl
@@ -117,14 +119,14 @@ in
nix.settings.experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
# "ca-derivations"
# "blake3-hashes"
# "git-hashing"
];
nix.settings.trusted-users = [ "@wheel" ];
nix.settings.connect-timeout = 5;
nix.settings.min-free = 128000000;
nix.settings.max-free = 1000000000;
nix.settings.min-free = 5 * 1024 * 1024 * 1024; # Kick off garbage collect if space for nix store is less than 5 GiB
nix.settings.max-free = 10 * 1024 * 1024 * 1024; # Run that garbage collect until at least 10 GiB are free.
nix.settings.fallback = true;
nix.settings.warn-dirty = false;
nix.settings.fsync-metadata = true;
@@ -246,31 +248,31 @@ in
glew = (final.glew.override { enableEGL = false; });
};
})
(disableTests "onetbb") # oneTBB tests hang forever on machines with a single core (like my build virtual machine) https://github.com/uxlfoundation/oneTBB/issues/1557
(disableTests "aws-c-common") # aws-c-common tests time out on my build virtual machine but run fine on my laptop.
(disableOptimizations "onnxruntime") # QuantizeLinearOpTest test failing.
(final: prev: {
fwupd = prev.fwupd.overrideAttrs (
rpcs3 = prev.rpcs3.overrideAttrs (
finalAttrs: prevAttrs: {
version = "2.1.5";
version = "0.0.42-19843";
src = final.fetchFromGitHub {
owner = "fwupd";
repo = "fwupd";
tag = finalAttrs.version;
hash = "sha256-DzQ+N99ZmFRqZc2rN6PSqmoIMXUyrE8Kkn+KnT/AWPc=";
owner = "RPCS3";
repo = "rpcs3";
rev = "6567a5a2f8ab47a89db395d6b47a7b59b23d6960";
postCheckout = ''
cd $out/3rdparty
git submodule update --init \
fusion/fusion asmjit/asmjit yaml-cpp/yaml-cpp SoundTouch/soundtouch stblib/stb \
feralinteractive/feralinteractive wolfssl/wolfssl
'';
hash = "sha256-a1c1+Ui7XyHFTGEZAgRuJasCzQqr2PZNTlwaDUWVb18=";
};
patches = [ ];
}
);
})
(disableTests "onetbb") # oneTBB tests hang forever on machines with a single core (like my build virtual machine) https://github.com/uxlfoundation/oneTBB/issues/1557
(disableTests "aws-c-common") # aws-c-common tests time out on my build virtual machine but run fine on my laptop.
# Works but probably sets python2's scipy to be python3:
#
# (final: prev: {
# pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
# (python-final: python-prev: {
# scipy = final.unoptimized.python3Packages.scipy;
# })
# ];
# })
];
# This option defines the first version of NixOS you have installed on this particular machine,

View File

@@ -22,11 +22,11 @@
]
},
"locked": {
"lastModified": 1780894562,
"narHash": "sha256-c3430xwxwhHipl3jigUGMMBfpaMylDqytW/kdmB3ZGs=",
"lastModified": 1781152676,
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
"owner": "nix-community",
"repo": "disko",
"rev": "24fed06cac83bcc44ac8efbb57cab1a82fa0bedc",
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
"type": "github"
},
"original": {
@@ -170,11 +170,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1785893798,
"narHash": "sha256-69nKdvM+E/66sj9R2HEK8i0p0TOt/0MSqfXiZjcJ9nI=",
"lastModified": 1788488145,
"narHash": "sha256-s1UY+kbLtb+5ye4GnE/HKh0idUQ0iiIkMMtGI7cDRHk=",
"ref": "refs/heads/main",
"rev": "6386febdb81eb1e072ad7cb568019f06618008fe",
"revCount": 41,
"rev": "8b28dfb583e094f52fd6ab70c709cc1981d8853d",
"revCount": 46,
"type": "git",
"url": "https://code.fizz.buzz/talexander/nix_builder.git"
},
@@ -185,11 +185,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1780749050,
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
"lastModified": 1788531059,
"narHash": "sha256-hLD4l3QOGBQhkVp3mQ2lJ/YbEi99qUgKapb40KovZ88=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
"rev": "801bef6abd86b91e51083066b83fb354a11fc640",
"type": "github"
},
"original": {
@@ -199,22 +199,6 @@
"type": "github"
}
},
"nixpkgs-google": {
"locked": {
"lastModified": 1779893571,
"narHash": "sha256-wiwMyVCtmjRjlFCe2zaumCE6LRV9GzzN0ZH25NQkbAU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "45f6cfaa4605b706c870e75bd74bdb5e97eee11e",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "45f6cfaa4605b706c870e75bd74bdb5e97eee11e",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1730741070,
@@ -264,8 +248,7 @@
"impermanence": "impermanence",
"lanzaboote": "lanzaboote",
"nix_builder": "nix_builder",
"nixpkgs": "nixpkgs",
"nixpkgs-google": "nixpkgs-google"
"nixpkgs": "nixpkgs"
}
},
"rust-overlay": {

View File

@@ -20,7 +20,6 @@
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-google.url = "github:NixOS/nixpkgs/45f6cfaa4605b706c870e75bd74bdb5e97eee11e";
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";
inputs.nixpkgs.follows = "nixpkgs";
@@ -39,7 +38,6 @@
{
self,
nixpkgs,
nixpkgs-google,
disko,
impermanence,
lanzaboote,
@@ -99,9 +97,6 @@
hostPlatform.gcc.arch = "default";
hostPlatform.gcc.tune = "default";
};
google = import nixpkgs-google {
system = prev.stdenv.hostPlatform.system;
};
})
];
};

View File

@@ -94,6 +94,7 @@
me.emacs_flavor = "full";
me.emulate_isa.enable = true;
me.esim.enable = true;
me.exfat.enable = true;
me.firefox.enable = true;
me.firewall.enable = true;
me.flux.enable = true;
@@ -117,6 +118,7 @@
me.lvfs.enable = true;
me.media.enable = true;
me.memtest.enable = true;
me.mitmproxy.enable = true;
me.network.enable = true;
me.nix_index.enable = true;
me.nix_repl.enable = true;
@@ -164,7 +166,7 @@
me.zrepl.enable = true;
me.zsh.enable = true;
me.sm64ex.enable = true;
me.sm64ex.enable = false;
me.shipwright.enable = false;
me.ship2harkinian.enable = true;
};

View File

@@ -4,7 +4,7 @@
config = {
me.distributed_build.enable = true;
me.distributed_build.machines.quark = {
enable_build = false;
enable_build = true;
enable_substituter = false;
additional_config = {
speedFactor = 2;

View File

@@ -111,6 +111,7 @@
me.lvfs.enable = true;
me.media.enable = true;
me.memtest.enable = true;
me.mitmproxy.enable = true;
me.network.enable = true;
me.nix_index.enable = true;
me.nix_repl.enable = true;
@@ -159,7 +160,7 @@
me.zrepl.enable = true;
me.zsh.enable = true;
me.sm64ex.enable = true;
me.sm64ex.enable = false;
me.shipwright.enable = false;
me.ship2harkinian.enable = true;
};

View File

@@ -72,5 +72,9 @@ in
git_fix_author
rsync_clone
];
# Disable installing documentation.
documentation.doc.enable = false;
documentation.nixos.enable = false;
};
}

View File

@@ -0,0 +1,26 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
options.me = {
exfat.enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install exfat.";
};
};
config = lib.mkIf config.me.exfat.enable {
# boot.supportedFilesystems = [ "exfat" ];
environment.systemPackages = with pkgs; [
exfatprogs
];
};
}

View File

@@ -20,7 +20,7 @@
config = lib.mkIf (config.me.firefox.enable && config.me.graphical) {
programs.firefox = {
enable = true;
package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true; }) { });
package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { withPipewire = true; }) { });
languagePacks = [ "en-US" ];
preferences = {
# "identity.sync.tokenserver.uri": "https://ffsync.fizz.buzz/token/1.0/sync/1.5";
@@ -134,7 +134,7 @@
users.talexander = {
directories = [
{
directory = ".mozilla";
directory = ".config/mozilla";
user = "talexander";
group = "talexander";
mode = "0700";

View File

@@ -18,7 +18,7 @@
};
config = lib.mkIf config.me.gcloud.enable {
environment.systemPackages = with pkgs.google; [
environment.systemPackages = with pkgs; [
(google-cloud-sdk.withExtraComponents [ google-cloud-sdk.components.gke-gcloud-auth-plugin ])
];

View File

@@ -61,6 +61,7 @@
systemd.services."build-cache" =
let
enabled_targets = [
"wip"
"odo"
"odo_update"
"odowork"
@@ -99,6 +100,7 @@
IFS=$'\n\t'
DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" && pwd )"
NIX_REMOTE='local?root=/.disk/root' RUST_BACKTRACE=1 RUST_LOG=nix_builder=DEBUG ${nix_builder.packages.x86_64-linux.default}/bin/nix-builder clean --config ${./files/nix_builder.toml}
NIX_REMOTE='local?root=/.disk/root' RUST_BACKTRACE=1 RUST_LOG=nix_builder=DEBUG ${nix_builder.packages.x86_64-linux.default}/bin/nix-builder build --config ${./files/nix_builder.toml} ${builtins.concatStringsSep " " build_flags}
'';
restartIfChanged = false;

View File

@@ -1,5 +1,12 @@
output_directory = "/home/nixworker/persist/nix_builder"
[[targets]]
name = "wip"
repo = "https://code.fizz.buzz/talexander/machine_setup.git"
branch = "wip"
path = "nix/configuration"
attr = "nixosConfigurations.odo.config.system.build.toplevel"
[[targets]]
name = "odo"
repo = "https://code.fizz.buzz/talexander/machine_setup.git"
@@ -180,10 +187,10 @@ output_directory = "/home/nixworker/persist/nix_builder"
[[targets]]
name = "nixbsd"
repo = "https://github.com/nixos-bsd/nixbsd.git"
revision = "2b512eda58e6d77378bd20d6027802b158942e24"
path = "."
attr = "base.vmClosureInfo"
repo = "https://code.fizz.buzz/talexander/machine_setup.git"
branch = "nixbsd"
path = "nix/nixbsd"
attr = "computer.vm"
[[targets]]
name = "nix_builder_develop"

View File

@@ -14,30 +14,12 @@ let
full = {
PREEMPT_DYNAMIC = yes;
PREEMPT = yes;
PREEMPT_VOLUNTARY = lib.mkForce no;
PREEMPT_LAZY = lib.mkForce no;
PREEMPT_NONE = no;
};
lazy = {
PREEMPT_DYNAMIC = yes;
PREEMPT = no;
PREEMPT_VOLUNTARY = lib.mkForce no;
PREEMPT_LAZY = yes;
PREEMPT_NONE = no;
};
voluntary = {
PREEMPT_DYNAMIC = no;
PREEMPT = no;
PREEMPT_VOLUNTARY = yes;
PREEMPT_LAZY = lib.mkForce no;
PREEMPT_NONE = no;
};
none = {
PREEMPT_DYNAMIC = no;
PREEMPT = no;
PREEMPT_VOLUNTARY = lib.mkForce no;
PREEMPT_LAZY = lib.mkForce no;
PREEMPT_NONE = yes;
};
};
tick_hz =
@@ -99,16 +81,14 @@ let
TRANSPARENT_HUGEPAGE_MADVISE = yes;
};
};
common_config =
with lib.kernel;
{
common_config = with lib.kernel; {
# Google's BBRv3 TCP congestion Control
TCP_CONG_BBR = yes;
DEFAULT_BBR = yes;
};
flavors = {
server = lib.mkMerge [
preemption_type.none
preemption_type.lazy
tick_hz."300"
performance_governor.default
tick_rate.tickless
@@ -142,7 +122,8 @@ in
kernel.version = lib.mkOption {
type = lib.types.str;
default = "linux"; # LTS
# default = "linux"; # LTS
default = "linux_7_2"; # LTS
example = "linux_6_18";
description = "What version of the kernl should we use.";
};

View File

@@ -25,8 +25,8 @@
nixpkgs.overlays = [
(final: prev: {
tex = (
pkgs.texlive.combine {
inherit (pkgs.texlive)
pkgs.texliveSmall.withPackages (
ps: with ps; [
scheme-basic
dvisvgm
dvipng # for preview and export as html in org-mode
@@ -44,8 +44,8 @@
upquote # emacs org-mode pdf export
lineno # emacs org-mode pdf export
beamer # emacs org-mode presentation pdf export
;
}
]
)
);
})
];

View File

@@ -0,0 +1,25 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
options.me = {
mitmproxy.enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install mitmproxy.";
};
};
config = lib.mkIf config.me.mitmproxy.enable {
environment.systemPackages = with pkgs; [
mitmproxy
];
};
}

View File

@@ -6,6 +6,8 @@
}:
# Alternative DNS servers:
# "194.242.2.2#doh.mullvad.net"
# "2a07:e340::2#doh.mullvad.net"
# "1.0.0.1#cloudflare-dns.com"
# "1.1.1.1#cloudflare-dns.com"
# "2606:4700:4700::1001#cloudflare-dns.com"
@@ -14,6 +16,10 @@
# "8.8.8.8#dns.google"
# "2001:4860:4860::8844#dns.google"
# "2001:4860:4860::8888#dns.google"
# "9.9.9.10#dns10.quad9.net"
# "149.112.112.10#dns10.quad9.net"
# "2620:fe::10#dns10.quad9.net"
# "2620:fe::fe:10#dns10.quad9.net"
let
patchScriptBin =
@@ -39,8 +45,10 @@ in
networking.dhcpcd.enable = lib.mkDefault false;
networking.useDHCP = lib.mkDefault false;
networking.nameservers = [
"194.242.2.2#doh.mullvad.net"
"2a07:e340::2#doh.mullvad.net"
"9.9.9.10#dns10.quad9.net"
"149.112.112.10#dns10.quad9.net"
"2620:fe::10#dns10.quad9.net"
"2620:fe::fe:10#dns10.quad9.net"
];
services.resolved = {
enable = true;

View File

@@ -34,7 +34,9 @@
# Write config files in /etc/containers
virtualisation.containers.enable = true;
# By default this includes "quay.io" which leads to prompting for which registry to download from.
virtualisation.containers.registries.search = [ "docker.io" ];
virtualisation.containers.registries.settings = {
unqualified-search-registries = [ "docker.io" ];
};
virtualisation = {
podman = {
enable = true;

View File

@@ -38,7 +38,7 @@ in
};
};
Miscellaneous = {
"Pause emulation on RPCS3 focus loss" = true;
"Pause emulation on RPCS3 focus loss" = false;
"Start games in fullscreen mode" = true;
"Pause Emulation During Home Menu" = false; # true makes the home menu slow
};
@@ -53,7 +53,10 @@ in
rpcs3
];
allowedUnfree = [ "rpcs3" ];
allowedUnfree = [
"rpcs3"
"corefonts"
];
security.pam.loginLimits = [
{
@@ -70,6 +73,10 @@ in
}
];
fonts.packages = with pkgs; [
corefonts # Needed for Arial, otherwise launching games fails.
];
me.install.user.talexander.file = {
".config/rpcs3/config.yml" = lib.mkIf (config.me.rpcs3.config != null) {
source = rpcs3_config_yaml;
@@ -81,6 +88,10 @@ in
# Demon's Souls per-game config.
source = ./files/config_BLUS30443.yml;
};
".config/rpcs3/custom_configs/config_BLUS30421.yml" = {
# The Lord of the Rings The War in the North per-game config.
source = ./files/config_BLUS30421.yml;
};
".config/rpcs3/patches/patch.yml" = {
# All of the available patches.
source = ./files/patch.yml;

View File

@@ -0,0 +1,14 @@
Core:
SPU Block Size: Safe
Video:
Write Color Buffers: true
Minimum Scalable Dimension: 640
Net:
Internet enabled: Connected
IP address: 0.0.0.0
Bind address: 0.0.0.0
DNS address: 8.8.8.8
IP swap list: ""
UPNP Enabled: false
PSN status: RPCN
PSN Country: us

View File

@@ -41,7 +41,7 @@
nix.settings.experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
# "ca-derivations"
# "blake3-hashes"
# "git-hashing"
];
@@ -64,6 +64,10 @@
};
nix.settings.auto-optimise-store = !config.me.buildingPortable;
# Disable installing documentation.
documentation.doc.enable = false;
documentation.nixos.enable = false;
environment.persistence."/persist" = lib.mkIf (config.me.mountPersistence) {
hideMounts = true;
directories = [

View File

@@ -134,6 +134,18 @@ let
"nix-pull-through-cache" = {
"CACHE_GET_TOKEN" = (builtins.readFile "${./secrets/nix-pull-through-cache/auth/CACHE_GET_TOKEN}");
};
"registry-credentials" =
(generate_docker_secret {
username = builtins.readFile "${./secrets/flux-system/registry-credentials/username}";
password = builtins.readFile "${./secrets/flux-system/registry-credentials/password}";
email = builtins.readFile "${./secrets/flux-system/registry-credentials/email}";
address = builtins.readFile "${./secrets/flux-system/registry-credentials/address}";
})
// {
# "__annotations" = {
# "tekton.dev/docker-0" = "https://harbor.fizz.buzz";
# };
};
};
};
encrypted_secrets = (

View File

@@ -25,6 +25,7 @@
gptfdisk # cgdisk
arp-scan # To find devices on the network
ldns # for drill
parted
];
# This can make debugging easier by rejecting packets instead of dropping them: