Compare commits

..

43 Commits

Author SHA1 Message Date
Linus Heckemann 86ae720a2a garage: add reverse proxy for S3 access from outside
TODO: subdomains?
1 year ago
Julien Malka df7c5aa2f9
luj: key update 1 year ago
Raito Bezarius 80099f64ab users/friends: allow linus to be root 1 year ago
Raito Bezarius 5a1aa0eef7 epyc: add garage node 1 year ago
Raito Bezarius 8d57383bc3 epyc: add raito@thorkell in builder 1 year ago
Julien Malka 3dcb366c3b
I need to hydraing 1 year ago
Julien Malka b152bd7826
added luj x2100 key 1 year ago
Raito Bezarius 279344c454 epyc: add TheMuppets 1 year ago
Raito Bezarius 39134145c0 epyc: add linageOS better 1 year ago
Raito Bezarius 07e223048d epyc: add lineageOS again 1 year ago
gabriel-doriath-dohler eff88f398d keys: gdd quality 1 year ago
Raito Bezarius 47e322b416 epyc: disable lineageOS for now 1 year ago
Raito Bezarius 6228f5a2df epyc: add android cache 1 year ago
Raito Bezarius 6eec25d2bb epyc: let authentication remote 1 year ago
Raito Bezarius 69aac159fa epyc: open postgresql publicly 1 year ago
Raito Bezarius 7c1ab12829 friends: init with linus 1 year ago
Julien Malka 6ae5f622fb
removed builbot from trusted users 1 year ago
Julien Malka e460e8ca8a
Added nom to packages 1 year ago
Raito Bezarius 62e37c45ea keys: ninjaTrappeur → ninjatrappeur 1 year ago
Raito Bezarius a812707b62 friends: init with ninjatrappeur 1 year ago
Raito Bezarius 85154e3d19 flake: bump 1 year ago
Raito Bezarius 38e86907c8 epyc: maybe we can afford 2 jobs on localhost for Hydra? 1 year ago
Raito Bezarius 0e8785863e epyc: nerf it 1 year ago
Raito Bezarius ada25e575f flake: bump 1 year ago
Raito Bezarius 14ec5cc6fe epyc: add nix-top 1 year ago
Julien Malka 65c58a00bb
added attic to buildbot 1 year ago
Raito Bezarius 88873083d5 epyc: 64 → 42 max jobs otherwise RAM explodes too quickly with browsers and whatever 1 year ago
Raito Bezarius d9d32e0194 epyc: init hydra settings properly 1 year ago
Raito Bezarius 567b99aa57 epyc: add hydra.newtype.fr 1 year ago
Raito Bezarius 81cf3e0769 epyc: add riscv64-linux emulation support 1 year ago
Julien Malka ebea10d242
added buildbot workers 1 year ago
Julien Malka c208537f49
Updated hypervisor input 1 year ago
Raito Bezarius 8d187d1ef0 infra: boot a simple VM 1 year ago
Raito Bezarius 444a655fec infra: enable experimental hypervisor on EPYC machine 1 year ago
Raito Bezarius e3f59ee35f flake: add nixos-hypervisor input
Private repository for now.
1 year ago
Julien Malka 147ca052d4
import ssh-cursed module 1 year ago
Julien Malka c898d56781
added luj's remote builders 1 year ago
Raito Bezarius 5e9b7b7732 nix-daemon: improve open files for NixOS VM tests and thundering effects for GC 1 year ago
Raito Bezarius 7fd10c28cb zsh: use grml configuration by default 1 year ago
Raito Bezarius 02fa2102d6 configurations: add trusted cache, terminfo and kitty's terminfo 1 year ago
Tom Hubrecht 820adcfa31 misc: Add .gitignore 1 year ago
Tom Hubrecht 379d764490 infra(epyc): Add an ssh key for tomate 1 year ago
Raito Bezarius 696929edb4 infra(epyc): add my key on builder and iperf3 server 1 year ago

1
.gitignore vendored

@ -0,0 +1 @@
.direnv

@ -8,6 +8,7 @@ let
nur
colmena
flake-registry
nixos-hypervisor
nixos-hardware
nixpkgs-unstable
srvos
@ -34,53 +35,61 @@ let
./modules/hosts.nix
./modules/network.nix
./modules/zsh.nix
./modules/ssh-cursed.nix
./modules/buildbot
disko.nixosModules.disko
srvos.nixosModules.server
# srvos.nixosModules.mixins-telegraf
srvos.nixosModules.mixins-trusted-nix-caches
srvos.nixosModules.mixins-terminfo
nixos-hypervisor.nixosModules.host
# srvos.nixosModules.mixins-telegraf
# srvos.nixosModules.mixins-terminfo
agenix.nixosModules.default
({ pkgs
, config
, lib
, ...
}: let
sopsFile = ./. + "/hosts/${config.networking.hostName}.yml";
in {
nix.nixPath = [
"home-manager=${home-manager}"
"nixpkgs=${pkgs.path}"
"nur=${nur}"
];
environment.systemPackages = [
pkgs.kitty.terminfo
];
}:
let
sopsFile = ./. + "/hosts/${config.networking.hostName}.yml";
in
{
nix.nixPath = [
"home-manager=${home-manager}"
"nixpkgs=${pkgs.path}"
"nur=${nur}"
];
# TODO: share nixpkgs for each machine to speed up local evaluation.
#nixpkgs.pkgs = self.inputs.nixpkgs.legacyPackages.${system};
# TODO: share nixpkgs for each machine to speed up local evaluation.
#nixpkgs.pkgs = self.inputs.nixpkgs.legacyPackages.${system};
#users.withSops = builtins.pathExists sopsFile;
#sops.secrets = lib.mkIf (config.users.withSops) {
# root-password-hash.neededForUsers = true;
#};
# sops.defaultSopsFile = lib.mkIf (builtins.pathExists sopsFile) sopsFile;
#users.withSops = builtins.pathExists sopsFile;
#sops.secrets = lib.mkIf (config.users.withSops) {
# root-password-hash.neededForUsers = true;
#};
# sops.defaultSopsFile = lib.mkIf (builtins.pathExists sopsFile) sopsFile;
nix.extraOptions = ''
flake-registry = ${flake-registry}/flake-registry.json
builders-use-substitutes = true
'';
nix.extraOptions = ''
flake-registry = ${flake-registry}/flake-registry.json
'';
nix.registry = {
home-manager.flake = home-manager;
nixpkgs.flake = nixpkgs;
nur.flake = nur;
};
time.timeZone = "UTC";
nix.registry = {
home-manager.flake = home-manager;
nixpkgs.flake = nixpkgs;
nur.flake = nur;
};
time.timeZone = "UTC";
})
environment.systemPackages = [
pkgs.kitty.terminfo
];
})
];
in
{
@ -93,21 +102,15 @@ in
++ [
./hosts/epyc.nix
];
};
vieuxtype = nixosSystem {
system = "x86_64-linux";
modules =
commonModules
++ colmenaModules
++ [
./hosts/vieuxtype.nix
];
};
};
flake.colmena = {
meta.nixpkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [
nixos-hypervisor.overlays.default
];
};
epyc = {
imports =
@ -115,15 +118,6 @@ in
++ [
./hosts/epyc.nix
];
};
vieuxtype = {
system = "x86_64-linux";
modules =
commonModules
++ [
./hosts/vieuxtype.nix
];
};
};
}

@ -1,63 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='412px' height='462px' viewBox='0 0 412px 462px' version='1.1'>
<rect id='Machine_0_rect' class='Machine' x='0' y='0' width='412' height='424' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Machine_0_text' class='Machine' font-family='Monospace' x='7' y='17' fill='rgb(0,0,0)' font-size='10px'>Machine (5936MB total)</text>
<rect id='Package_0_rect' class='Package' x='7' y='24' width='178' height='255' fill='rgb(210,231,164)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Package_0_text' class='Package' font-family='Monospace' x='14' y='41' fill='rgb(0,0,0)' font-size='10px'>Package L#0</text>
<rect id='L3_0_rect' class='L3' x='14' y='79' width='80' height='24' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='L3_0_text' class='L3' font-family='Monospace' x='21' y='96' fill='rgb(0,0,0)' font-size='10px'>L3 (16MB)</text>
<rect id='L2_0_rect' class='L2' x='14' y='110' width='80' height='24' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='L2_0_text' class='L2' font-family='Monospace' x='21' y='127' fill='rgb(0,0,0)' font-size='10px'>L2 (4096KB)</text>
<rect id='L1d_0_rect' class='L1d' x='14' y='141' width='74' height='24' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='L1d_0_text' class='L1d' font-family='Monospace' x='21' y='158' fill='rgb(0,0,0)' font-size='10px'>L1d (32KB)</text>
<rect id='L1i_0_rect' class='L1i' x='14' y='172' width='74' height='24' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='L1i_0_text' class='L1i' font-family='Monospace' x='21' y='189' fill='rgb(0,0,0)' font-size='10px'>L1i (32KB)</text>
<rect id='Core_0_rect' class='Core' x='14' y='203' width='64' height='69' fill='rgb(190,190,190)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Core_0_text' class='Core' font-family='Monospace' x='21' y='220' fill='rgb(0,0,0)' font-size='10px'>Core L#0</text>
<rect id='PU_0_rect' class='PU' x='21' y='227' width='50' height='38' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='PU_0_text' class='PU' font-family='Monospace' x='28' y='244' fill='rgb(0,0,0)' font-size='10px'>PU L#0</text>
<text id='PU_0_text_1' class='PU' font-family='Monospace' x='37' y='258' fill='rgb(0,0,0)' font-size='10px'>P#0</text>
<rect id='NUMANode_0_rect' class='NUMANode' x='14' y='48' width='164' height='24' fill='rgb(239,223,222)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='NUMANode_0_text' class='NUMANode' font-family='Monospace' x='21' y='65' fill='rgb(0,0,0)' font-size='10px'>NUMANode L#0 P#0 (5936MB)</text>
<rect id='HostBridge_0_rect' class='HostBridge' x='192' y='24' width='7' height='7' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line' class='HostBridge' x1='199' y1='27' x2='206' y2='27' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line_2' class='HostBridge' x1='206' y1='27' x2='230' y2='27' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line_3' class='HostBridge' x1='206' y1='103' x2='230' y2='103' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line_4' class='HostBridge' x1='206' y1='134' x2='230' y2='134' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line_5' class='HostBridge' x1='206' y1='165' x2='230' y2='165' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line_6' class='HostBridge' x1='206' y1='241' x2='230' y2='241' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line_7' class='HostBridge' x1='206' y1='303' x2='230' y2='303' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line_8' class='HostBridge' x1='206' y1='365' x2='230' y2='365' stroke='rgb(0,0,0)' stroke-width='1'/>
<line id='HostBridge_0_line_1' class='HostBridge' x1='206' y1='27' x2='206' y2='365' stroke='rgb(0,0,0)' stroke-width='1'/>
<rect id='PCI_0_rect' class='PCI' x='230' y='24' width='82' height='69' fill='rgb(190,210,149)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='PCI_0_text' class='PCI' font-family='Monospace' x='237' y='41' fill='rgb(0,0,0)' font-size='10px'>PCI 00:01.1</text>
<rect id='Block_0_rect' class='Block' x='237' y='48' width='68' height='38' fill='rgb(222,222,222)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Block_0_text' class='Block' font-family='Monospace' x='244' y='65' fill='rgb(0,0,0)' font-size='10px'>Block sr0</text>
<text id='Block_0_text_1' class='Block' font-family='Monospace' x='244' y='79' fill='rgb(0,0,0)' font-size='10px'>541 MB</text>
<rect id='PCI_1_rect' class='PCI' x='230' y='100' width='80' height='24' fill='rgb(190,210,149)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='PCI_1_text' class='PCI' font-family='Monospace' x='237' y='117' fill='rgb(0,0,0)' font-size='10px'>PCI 00:02.0</text>
<rect id='PCI_2_rect' class='PCI' x='230' y='131' width='80' height='24' fill='rgb(190,210,149)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='PCI_2_text' class='PCI' font-family='Monospace' x='237' y='148' fill='rgb(0,0,0)' font-size='10px'>PCI 00:03.0</text>
<rect id='PCI_3_rect' class='PCI' x='230' y='162' width='82' height='69' fill='rgb(190,210,149)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='PCI_3_text' class='PCI' font-family='Monospace' x='237' y='179' fill='rgb(0,0,0)' font-size='10px'>PCI 00:05.0</text>
<rect id='Block_1_rect' class='Block' x='237' y='186' width='68' height='38' fill='rgb(222,222,222)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Block_1_text' class='Block' font-family='Monospace' x='244' y='203' fill='rgb(0,0,0)' font-size='10px'>Block sda</text>
<text id='Block_1_text_1' class='Block' font-family='Monospace' x='244' y='217' fill='rgb(0,0,0)' font-size='10px'>40 GB</text>
<rect id='PCI_4_rect' class='PCI' x='230' y='238' width='82' height='55' fill='rgb(190,210,149)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='PCI_4_text' class='PCI' font-family='Monospace' x='237' y='255' fill='rgb(0,0,0)' font-size='10px'>PCI 00:12.0</text>
<rect id='Net_2_rect' class='Net' x='237' y='262' width='68' height='24' fill='rgb(222,222,222)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Net_2_text' class='Net' font-family='Monospace' x='244' y='279' fill='rgb(0,0,0)' font-size='10px'>Net ens18</text>
<rect id='PCI_5_rect' class='PCI' x='230' y='300' width='82' height='55' fill='rgb(190,210,149)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='PCI_5_text' class='PCI' font-family='Monospace' x='237' y='317' fill='rgb(0,0,0)' font-size='10px'>PCI 00:13.0</text>
<rect id='Net_3_rect' class='Net' x='237' y='324' width='68' height='24' fill='rgb(222,222,222)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Net_3_text' class='Net' font-family='Monospace' x='244' y='341' fill='rgb(0,0,0)' font-size='10px'>Net ens19</text>
<rect id='PCI_6_rect' class='PCI' x='230' y='362' width='82' height='55' fill='rgb(190,210,149)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='PCI_6_text' class='PCI' font-family='Monospace' x='237' y='379' fill='rgb(0,0,0)' font-size='10px'>PCI 00:14.0</text>
<rect id='Net_4_rect' class='Net' x='237' y='386' width='68' height='24' fill='rgb(222,222,222)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Net_4_text' class='Net' font-family='Monospace' x='244' y='403' fill='rgb(0,0,0)' font-size='10px'>Net ens20</text>
<rect id='Misc_0_rect' class='Misc' x='319' y='24' width='86' height='24' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='Misc_0_text' class='Misc' font-family='Monospace' x='326' y='41' fill='rgb(0,0,0)' font-size='10px'>MemoryModule</text>
<rect id='anon_rect' x='0' y='424' width='412' height='38' fill='rgb(255,255,255)' stroke='rgb(0,0,0)' stroke-width='1'/>
<text id='anon_text' font-family='Monospace' x='7' y='441' fill='rgb(0,0,0)' font-size='10px'>Host: vieuxtype</text>
<text id='anon_text_1' font-family='Monospace' x='7' y='455' fill='rgb(0,0,0)' font-size='10px'>Date: Mon 05 Jun 2023 08:15:31 PM CEST</text>
</svg>

Before

Width:  |  Height:  |  Size: 7.9 KiB

@ -1,83 +0,0 @@
# vieuxtype
```
System: Host: vieuxtype Kernel: 6.1.31 x86_64 bits: 64 compiler: gcc v: 12.2.0
parameters: initrd=\efi\nixos\mf13ryz0gl48s8672gzg80lvq9yd8189-initrd-linux-6.1.31-initrd.efi
init=/nix/store/5c8yhqcmf24d61m99cpqc3ffjma90cxs-nixos-system-vieuxtype-23.05.553.e7603eba51f/init
console=ttyS0,115200 panic=30 boot.panic_on_fail loglevel=4
Console: N/A Distro: NixOS 23.05 (Stoat)
Machine: Type: Kvm System: QEMU product: Standard PC (i440FX + PIIX, 1996) v: pc-i440fx-7.2
serial: N/A Chassis: type: 1 v: pc-i440fx-7.2 serial: N/A
Mobo: N/A model: N/A serial: N/A UEFI: EFI Development Kit II / OVMF v: 3.20230228-2
date: 04/04/2023
Memory: RAM: total: 5.8 GiB used: 820.6 MiB (13.8%)
Array-1: capacity: 6 GiB slots: 1 EC: Multi-bit ECC max-module-size: 6 GiB note: est.
Device-1: DIMM 0 size: 6 GiB speed: N/A type: RAM detail: other bus-width: Unknown
total: Unknown manufacturer: QEMU part-no: Not Specified serial: Not Specified
PCI Slots: Message: No PCI Slot data found.
CPU: Info: Single Core model: Common KVM bits: 64 type: MCP arch: Netburst Presler
family: F (15) model-id: 6 stepping: 1 microcode: 1 cache: L2: 16 MiB
flags: lm nx pae sse sse2 sse3 bogomips: 5199
Speed: 2600 MHz min/max: N/A base/boost: 2000/2000 Core speed (MHz): 1: 2600
Vulnerabilities: Type: itlb_multihit status: KVM: VMX unsupported
Type: l1tf mitigation: PTE Inversion
Type: mds
status: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Type: meltdown mitigation: PTI
Type: mmio_stale_data status: Unknown: No mitigations
Type: retbleed status: Not affected
Type: spec_store_bypass status: Vulnerable
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
Type: spectre_v2
mitigation: Retpolines, STIBP: disabled, RSB filling, PBRSB-eIBRS: Not affected
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics: Device-1: vendor: Red Hat driver: bochs-drm v: N/A alternate: bochs bus-ID: 00:02.0
chip-ID: 1234:1111 class-ID: 0300
Display: server: No display server data found. Headless machine? tty: N/A
Message: Advanced graphics data unavailable in console for root.
Audio: Message: No device data found.
Network: Device-1: Intel 82371AB/EB/MB PIIX4 ACPI vendor: Red Hat Qemu virtual machine
type: network bridge driver: piix4_smbus v: N/A modules: i2c_piix4 port: 10c0
bus-ID: 00:01.3 chip-ID: 8086:7113 class-ID: 0680
Device-2: Red Hat Virtio network driver: virtio-pci v: 1 modules: virtio_pci port: 10e0
bus-ID: 00:12.0 chip-ID: 1af4:1000 class-ID: 0200
IF: ens18 state: up speed: -1 duplex: unknown mac: da:3e:b0:11:ae:0a
IP v4: 169.254.129.42/16 type: noprefixroute scope: global broadcast: 169.254.255.255
IP v6: 2a01:e0a:5f9:9681:33ba:55f5:6e55:beef/64 type: temporary dynamic scope: global
IP v6: 2a01:e0a:5f9:9681:d83e:b0ff:fe11:ae0a/64 type: dynamic mngtmpaddr scope: global
IP v6: 2a01:e0a:5f9:9681:a498:fffb:e48d:299/64 scope: global
IP v6: fe80::d83e:b0ff:fe11:ae0a/64 scope: link
Device-3: Red Hat Virtio network driver: virtio-pci v: 1 modules: virtio_pci port: 1400
bus-ID: 00:13.0 chip-ID: 1af4:1000 class-ID: 0200
IF: ens19 state: up speed: -1 duplex: unknown mac: 72:38:5f:a6:82:5a
IP v4: 10.32.64.196/20 type: dynamic noprefixroute scope: global
broadcast: 10.32.79.255
IP v6: fe80::7038:5fff:fea6:825a/64 scope: link
Device-4: Red Hat Virtio network driver: virtio-pci v: 1 modules: virtio_pci port: 1420
bus-ID: 00:14.0 chip-ID: 1af4:1000 class-ID: 0200
IF: ens20 state: up speed: -1 duplex: unknown mac: 8e:38:09:a2:8c:9e
IP v4: 10.32.64.224/20 type: dynamic noprefixroute scope: global
broadcast: 10.32.79.255
IP v6: fe80::8c38:9ff:fea2:8c9e/64 scope: link
IF-ID-1: tailscale0 state: unknown speed: -1 duplex: full mac: N/A
IP v6: fe80::7d4f:3369:71cc:66d5/64 virtual: stable-privacy scope: link
WAN IP: 82.65.118.1
Drives: Local Storage: total: 40 GiB used: 10.33 GiB (25.8%)
ID-1: /dev/sda maj-min: 8:0 vendor: QEMU model: HARDDISK size: 40 GiB block-size:
physical: 512 B logical: 512 B speed: <unknown> serial: drive-scsi0 rev: 2.5+
scheme: GPT
SMART: no
Partition: ID-1: / raw-size: 11.5 GiB size: 11.22 GiB (97.55%) used: 10.27 GiB (91.6%) fs: ext4
block-size: 4096 B dev: /dev/sda1 maj-min: 8:1
ID-2: /boot raw-size: 511 MiB size: 510 MiB (99.80%) used: 54.9 MiB (10.8%) fs: vfat
block-size: 512 B dev: /dev/sda3 maj-min: 8:3
Swap: Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
ID-1: swap-1 type: partition size: 8 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/sda2
maj-min: 8:2
Sensors: Message: No sensor data found. Is lm-sensors configured?
Info: Processes: 107 Uptime: N/A wakeups: 1 Init: systemd v: 253 target: multi-user.target
tool: systemctl Compilers: gcc: 12.2.0 Packages: 899 nix-default: 9 nix-sys: 881
lib: 155 nix-usr: 9 lib: 3 Client: Sudo v: 1.9.13p3 inxi: 3.3.04
```
![hardware topology](vieuxtype.lstopo.svg)

@ -9,11 +9,11 @@
]
},
"locked": {
"lastModified": 1684153753,
"narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=",
"lastModified": 1690228878,
"narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=",
"owner": "ryantm",
"repo": "agenix",
"rev": "db5637d10f797bb251b94ef9040b237f4702cde3",
"rev": "d8c973fd228949736dedf61b7f8cc1ece3236792",
"type": "github"
},
"original": {
@ -22,21 +22,43 @@
"type": "github"
}
},
"colmena": {
"attic": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1689457600,
"narHash": "sha256-1XLn2ZZMaqQx+Ys3eel5hQRkgUn3DeHcVb2JT8WYU0A=",
"owner": "zhaofengli",
"repo": "attic",
"rev": "4902d57f5dae8ec660ee9ee14c45c2192f9fe8b1",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"repo": "attic",
"type": "github"
}
},
"colmena": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
],
"stable": "stable"
},
"locked": {
"lastModified": 1685163780,
"narHash": "sha256-tMwseHtEFDpO3WKeZKWqrKRAZI6TiEULidxEbzicuFg=",
"lastModified": 1688224393,
"narHash": "sha256-rsAvFNhRFzTF7qyb6WprLFghJnRxMFjvD2e5/dqMp4I=",
"owner": "zhaofengli",
"repo": "colmena",
"rev": "c61bebae1dc1d57237577080b1ca1e37a3fbcebf",
"rev": "19384f3ee2058c56021e4465a3ec57e84a47d8dd",
"type": "github"
},
"original": {
@ -45,6 +67,36 @@
"type": "github"
}
},
"crane": {
"inputs": {
"flake-compat": [
"attic",
"flake-compat"
],
"flake-utils": [
"attic",
"flake-utils"
],
"nixpkgs": [
"attic",
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1677892403,
"narHash": "sha256-/Wi0L1spSWLFj+UQxN3j0mPYMoc7ZoAujpUF/juFVII=",
"owner": "ipetkov",
"repo": "crane",
"rev": "105e27adb70a9890986b6d543a67761cbc1964a2",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
@ -74,11 +126,11 @@
]
},
"locked": {
"lastModified": 1685970051,
"narHash": "sha256-F5ZxBD2DeNd+Q0dDKYBhv76kfjVG/X0ccXjSKpa8KdI=",
"lastModified": 1690739034,
"narHash": "sha256-roW02IaiQ3gnEEDMCDWL5YyN+C4nBf/te6vfL7rG0jk=",
"owner": "nix-community",
"repo": "disko",
"rev": "29d632d7e8fa86f937153ecdfd7d768411001d2d",
"rev": "4015740375676402a2ee6adebc3c30ea625b9a94",
"type": "github"
},
"original": {
@ -88,6 +140,22 @@
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1650374568,
@ -110,11 +178,32 @@
]
},
"locked": {
"lastModified": 1685662779,
"narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=",
"lastModified": 1690933134,
"narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3",
"rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixos-hypervisor",
"nixpkgs"
]
},
"locked": {
"lastModified": 1687762428,
"narHash": "sha256-DIf7mi45PKo+s8dOYF+UlXHzE0Wl/+k3tXUyAoAnoGE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "37dd7bb15791c86d55c5121740a1887ab55ee836",
"type": "github"
},
"original": {
@ -126,11 +215,11 @@
"flake-registry": {
"flake": false,
"locked": {
"lastModified": 1682423975,
"narHash": "sha256-zvOBrH3hwCedgpaWiOSHYSt+fgF/RhaJs8R5qOX6AYc=",
"lastModified": 1689333397,
"narHash": "sha256-g1Nn0sgH/hR/gEAQ1q6bloU+Q+V+Y4HlBBH6CBxC0HM=",
"owner": "NixOS",
"repo": "flake-registry",
"rev": "8054bfa00d60437297d670ab3296a117e7059a10",
"rev": "5d8dc3eb692809ffd9a2f22cdb8015aa11972905",
"type": "github"
},
"original": {
@ -140,6 +229,21 @@
}
},
"flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
@ -182,27 +286,27 @@
]
},
"locked": {
"lastModified": 1667907331,
"narHash": "sha256-bHkAwkYlBjkupPUFcQjimNS8gxWSWjOTevEuwdnp5m0=",
"lastModified": 1687871164,
"narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=",
"owner": "rycee",
"repo": "home-manager",
"rev": "6639e3a837fc5deb6f99554072789724997bc8e5",
"rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-22.05",
"ref": "release-23.05",
"repo": "home-manager",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1684899633,
"narHash": "sha256-NtwerXX8UFsoNy6k+DukJMriWtEjQtMU/Urbff2O2Dg=",
"lastModified": 1690957133,
"narHash": "sha256-0Y4CiOIszhHDDXHFmvHUpmhUotKOIn0m3jpMlm6zUTE=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "4cc688ee711159b9bcb5a367be44007934e1a49d",
"rev": "24f9162b26f0debd163f6d94752aa2acb9db395a",
"type": "github"
},
"original": {
@ -211,29 +315,68 @@
"type": "github"
}
},
"nixos-hypervisor": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1688428885,
"narHash": "sha256-fVIbXKvHmxSUAKTMiXx799UasQwU2XT+op7bzvtfl8c=",
"ref": "main",
"rev": "9f32a304708fd9c91c081db05eee1b4f2e0226cc",
"revCount": 2,
"type": "git",
"url": "ssh://gitea@git.newtype.fr/newtype/nixos-hypervisor"
},
"original": {
"ref": "main",
"type": "git",
"url": "ssh://gitea@git.newtype.fr/newtype/nixos-hypervisor"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1685952468,
"narHash": "sha256-YCOr9kttCqoa9IZMjHxX6SlwenTg7FsSmG9TaT76mSE=",
"lastModified": 1686519857,
"narHash": "sha256-VkBhuq67aXXiCoEmicziuDLUPPjeOTLQoj6OeVai5zM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "70f7275b32f49bc67ae3532b758b80cb6c27f98a",
"rev": "6b1b72c0f887a478a5aac355674ff6df0fc44f44",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.05",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1685004253,
"narHash": "sha256-AbVL1nN/TDicUQ5wXZ8xdLERxz/eJr7+o8lqkIOVuaE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e01645c40b92d29f3ae76344a6d654986a91a91",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1685938391,
"narHash": "sha256-96Jw6TbWDLSopt5jqCW8w1Fc1cjQyZlhfBnJ3OZGpME=",
"lastModified": 1691003216,
"narHash": "sha256-Qq/MPkhS12Bl0X060pPvX3v9ac3f2rRQfHjjozPh/Qs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "31cd1b4afbaf0b1e81272ee9c31d1ab606503aed",
"rev": "4a56ce9727a0c5478a836a0d8a8f641c5b9a3d5f",
"type": "github"
},
"original": {
@ -243,13 +386,29 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1691083802,
"narHash": "sha256-bjWTVGskCWR2BdB0Glnj2FyHooNiFThkFBF4oaAMe2s=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "096c262bbb73d84b8298d81c7daa9890c6ccd6da",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1685980073,
"narHash": "sha256-7BkreZ2cH488dR1XPcdlALj+2g+NvrZdG9ZhwRt0YFI=",
"lastModified": 1691109630,
"narHash": "sha256-NkltnE+ZMABNP7pJVj7ftu/58aTGa5PXxICLr8fjkI4=",
"owner": "nix-community",
"repo": "NUR",
"rev": "de817406e39c1f9be28fde1d62c1f1f0c91acb09",
"rev": "dcd922e7738fc027c73cd2cc110015d38fba9651",
"type": "github"
},
"original": {
@ -261,18 +420,47 @@
"root": {
"inputs": {
"agenix": "agenix",
"attic": "attic",
"colmena": "colmena",
"disko": "disko",
"flake-parts": "flake-parts",
"flake-registry": "flake-registry",
"home-manager": "home-manager_2",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"nixos-hypervisor": "nixos-hypervisor",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable",
"nur": "nur",
"srvos": "srvos"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": [
"attic",
"crane",
"flake-utils"
],
"nixpkgs": [
"attic",
"crane",
"nixpkgs"
]
},
"locked": {
"lastModified": 1675391458,
"narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"srvos": {
"inputs": {
"nixpkgs": [
@ -280,11 +468,11 @@
]
},
"locked": {
"lastModified": 1685966850,
"narHash": "sha256-HaWNbihBIBATmSbuXLzA92C4858tNdS9Q5kRHJNagVo=",
"lastModified": 1690557184,
"narHash": "sha256-KMGPz3pP7OoUZaUhgcuYG84CtVaJOQw6RK8J0fAtKt0=",
"owner": "numtide",
"repo": "srvos",
"rev": "4f22e6fcaf17c6313c2ecdc996760c3e4b14a623",
"rev": "ceed433086a85e5540bd73cff46497af5a09e36f",
"type": "github"
},
"original": {
@ -308,6 +496,27 @@
"repo": "nixpkgs",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixos-hypervisor",
"nixpkgs"
]
},
"locked": {
"lastModified": 1688026376,
"narHash": "sha256-qJmkr9BWDpqblk4E9/rCsAEl39y2n4Ycw6KRopvpUcY=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "df3f32b0cc253dfc7009b7317e8f0e7ccd70b1cf",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",

@ -1,13 +1,6 @@
{
description = "NixOS configuration with flakes";
nixConfig.extra-substituters = [
"https://newtype.cachix.org"
];
nixConfig.extra-trusted-public-keys = [
"newtype.cachix.org-1:Gd5G2EVFNJslfR3PxA2+JY7mHT6MwVJ6biv5Cg47SD0="
];
# To update all inputs:
# $ nix flake update --recreate-lock-file
inputs = {
@ -23,7 +16,7 @@
nixos-hardware.url = "github:NixOS/nixos-hardware";
nur.url = "github:nix-community/NUR";
home-manager.url = "github:rycee/home-manager/release-22.05";
home-manager.url = "github:rycee/home-manager/release-23.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
agenix.url = "github:ryantm/agenix";
@ -32,10 +25,17 @@
colmena.url = "github:zhaofengli/colmena";
colmena.inputs.nixpkgs.follows = "nixpkgs";
attic.url = "github:zhaofengli/attic";
srvos.url = "github:numtide/srvos";
# actually not used when using the modules but than nothing ever will try to fetch this nixpkgs variant
srvos.inputs.nixpkgs.follows = "nixpkgs";
# Ryan's experimental hypervisor based on cloud-hypervisor
# Private repository, you need a valid SSH key to access it
nixos-hypervisor.url = "git+ssh://gitea@git.newtype.fr/newtype/nixos-hypervisor?ref=main";
nixos-hypervisor.inputs.nixpkgs.follows = "nixpkgs";
flake-registry.url = "github:NixOS/flake-registry";
flake-registry.flake = false;
};
@ -83,19 +83,19 @@
] ++ pkgs.lib.optional (pkgs.stdenv.isLinux) pkgs.mkpasswd;
};
packages = {
# netboot = pkgs.callPackage ./modules/netboot/netboot.nix {
# # this nixosSystem is built for x86_64 machines regardless of the host machine
# pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
# inherit (inputs.nixpkgs.lib) nixosSystem;
# extraModules = [
# self.inputs.nur.nixosModules.nur
# { _module.args.inputs = self.inputs; }
# ];
# };
# netboot = pkgs.callPackage ./modules/netboot/netboot.nix {
# # this nixosSystem is built for x86_64 machines regardless of the host machine
# pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
# inherit (inputs.nixpkgs.lib) nixosSystem;
# extraModules = [
# self.inputs.nur.nixosModules.nur
# { _module.args.inputs = self.inputs; }
# ];
# };
# netboot-pixie-core = pkgs.callPackage ./modules/netboot/netboot-pixie-core.nix {
# inherit (self'.packages) netboot;
# };
# netboot-pixie-core = pkgs.callPackage ./modules/netboot/netboot-pixie-core.nix {
# inherit (self'.packages) netboot;
# };
};
};
flake = {

@ -1,14 +1,53 @@
{ lib, ... }:
let
gcc-system-features = arch: lib.optionals (arch != null) ([ "gccarch-${arch}" ]
++ map (x: "gccarch-${x}") lib.systems.architectures.inferiors.${arch});
in
{
imports = [
../modules/ipmi-supermicro.nix
../modules/hardware/supermicro-H12SSL-i.nix
../modules/iperf-server.nix
../modules/hypervisor.nix
../modules/hydra/coordinator.nix
../modules/android-cache.nix
../modules/garage.nix
../modules/users/friends.nix
];
networking.hostName = "epyc";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Open public access to our PostgreSQL.
services.postgresql.enableTCPIP = true;
services.postgresql.authentication = ''
host hydra-nixos-org hydra_ro ::/0 trust
'';
networking.firewall.allowedTCPPorts = [ 5432 ];
virtualisation.nvisor.vms = {
vm01 = {
config = { pkgs, ... }: {
environment.systemPackages = [ pkgs.hello ];
};
};
};
nix.buildMachines = [
{ hostName = "localhost";
systems = [
"x86_64-linux"
"riscv64-linux"
];
supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ] ++ gcc-system-features "znver3";
maxJobs = 2;
}
];
boot.binfmt.emulatedSystems = [ "riscv64-linux" "aarch64-linux" "riscv64-linux" ];
simd.arch = "znver3";
system.stateVersion = "23.05";
}

@ -1,28 +0,0 @@
{
imports = [
../modules/hardware/vm.nix
../modules/gitea.nix
../modules/tailscale.nix
../modules/users/yvan.nix
];
fileSystems."/" = {
device = "/dev/disk/by-uuid/fe1d2e0d-9210-4a2d-b584-d1e131747ea3";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/8782-7801";
fsType = "vfat";
};
swapDevices =
[{ device = "/dev/disk/by-uuid/c9511ddb-e41f-436c-ad1f-9b587ed0ba11"; }];
networking.hostName = "vieuxtype";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# simd.arch = "znver3";
system.stateVersion = "23.05";
}

@ -0,0 +1,14 @@
{ lib, ... }:
let
mirrors = {
"https://android.googlesource.com" = "/var/lib/src/aosp/mirror";
"https://github.com/LineageOS" = "/var/lib/src/lineageos/LineageOS";
"https://github.com/TheMuppets" = "/var/lib/src/themuppets/TheMuppets";
};
in
{
nix.envVars.ROBOTNIX_GIT_MIRRORS = lib.concatStringsSep "|" (lib.mapAttrsToList (local: remote: "${local}=${remote}") mirrors);
# Also add local mirrors to nix sandbox exceptions
nix.sandboxPaths = lib.attrValues mirrors;
}

@ -0,0 +1,59 @@
{ lib, pkgs, config, inputs, ... }:
with lib;
let
cfg = config.luj.buildbot;
port = "1810";
package = pkgs.buildbot-worker;
python = package.pythonModule;
home = "/var/lib/buildbot-worker";
buildbotDir = "${home}/worker";
in
{
#buildbot worker
# nix.settings.allowed-users = [ "buildbot-worker" ];
nix.settings.trusted-users = [ "buildbot-worker" ];
users.users.buildbot-worker = {
description = "Buildbot Worker User.";
isSystemUser = true;
createHome = true;
home = "/var/lib/buildbot-worker";
group = "buildbot-worker";
useDefaultShell = true;
};
users.groups.buildbot-worker = { };
systemd.services.buildbot-worker = {
reloadIfChanged = true;
description = "Buildbot Worker.";
after = [ "network.target" "buildbot-master.service" ];
wantedBy = [ "multi-user.target" ];
path = [
pkgs.nix-eval-jobs
pkgs.git
pkgs.gh
pkgs.nix
pkgs.nix-output-monitor
inputs.attic.packages.x86_64-linux.attic
];
environment.PYTHONPATH = "${python.withPackages (_: [package])}/${python.sitePackages}";
environment.MASTER_URL = ''TCP:2a01\\:e34\\:ec2a\\:8e60\\:8ec7\\:b5d2\\:f663\\:a67a:9989'';
environment.BUILDBOT_DIR = buildbotDir;
environment.WORKER_PASSWORD_FILE = "/var/lib/buildbot-worker/password.txt";
serviceConfig = {
Type = "simple";
User = "buildbot-worker";
Group = "buildbot-worker";
WorkingDirectory = home;
# Restart buildbot with a delay. This time way we can use buildbot to deploy itself.
ExecReload = "+${pkgs.systemd}/bin/systemd-run --on-active=60 ${pkgs.systemd}/bin/systemctl restart buildbot-worker";
ExecStart = "${python.pkgs.twisted}/bin/twistd --nodaemon --pidfile= --logfile - --python ${./worker.py}";
};
};
}

@ -0,0 +1,58 @@
#!/usr/bin/env python3
import multiprocessing
import os
import socket
from io import open
from buildbot_worker.bot import Worker
from twisted.application import service
def require_env(key: str) -> str:
val = os.environ.get(key)
assert val is not None, "val is not set"
return val
def setup_worker(application: service.Application, id: int) -> None:
basedir = f"{require_env('BUILDBOT_DIR')}-{id}"
os.makedirs(basedir, mode=0o700, exist_ok=True)
master_url = require_env("MASTER_URL")
hostname = socket.gethostname()
workername = f"{hostname}-{id}"
with open(
require_env("WORKER_PASSWORD_FILE"), "r", encoding="utf-8"
) as passwd_file:
passwd = passwd_file.read().strip("\r\n")
keepalive = 600
umask = None
maxdelay = 300
numcpus = None
allow_shutdown = None
s = Worker(
"2a01:e34:ec2a:8e60:8ec7:b5d2:f663:a67a",
9989,
workername,
passwd,
basedir,
keepalive,
umask=umask,
maxdelay=maxdelay,
numcpus=numcpus,
allow_shutdown=allow_shutdown,
)
s.setServiceParent(application)
# note: this line is matched against to check that this is a worker
# directory; do not edit it.
application = service.Application("buildbot-worker")
for i in range(14):
setup_worker(application, i)

@ -3,8 +3,8 @@
isNormalUser = true;
home = "/home/nix";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAZpEtSfB0GDwcELc5/AKNiBZJV9OVfQ0BMFzBlF+8Yd raito@everywhere"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA3hCOyFwuoCLt5W9e9yQSwj9I+VspB0kNNHsoFngbgZ raito@thors"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF07Sy0O+oletFYlrfS0+XtBWJO2F+Rc9J/ocNLBa/OE raito@thorkell"
];
uid = 5001;
};

@ -0,0 +1,37 @@
{ pkgs, ... }: {
services.garage = {
enable = true;
package = pkgs.garage_0_8;
settings = {
db_engine = "lmdb";
block_size = (10 * 1024 * 1024); # 10MB
replication_mode = "none";
rpc_bind_addr = "[::1]:3901";
rpc_public_addr = "[::1]:3901";
rpc_secret = "f5b8ede0abe0a3d454d96e8b352e29a1d94522b64274d23b256d57482441ccc1";
s3_api = {
s3_region = "garage";
api_bind_addr = "[::1]:3900";
root_domain = ".s3.infra.newtype.fr";
};
s3_web = {
bind_addr = "[::1]:3902";
root_domain = ".web.infra.newtype.fr";
index = "index.html";
};
};
};
services.nginx = {
enable = true;
virtualHosts."s3.infra.newtype.fr" = {
forceSSL = true;
enableACME = true;
locations."/".proxyPass = "http://[::1]:3900/";
};
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
}

@ -1,34 +0,0 @@
{ ... }: {
services.gitea = {
enable = true;
appName = "Newtype's Git";
mailerPasswordFile = "/var/lib/secrets/gitea/mailpw";
settings = {
server = {
ROOT_URL = "https://git.newtype.fr";
DOMAIN = "git.newtype.fr";
};
service.DISABLE_REGISTRATION = true;
session.COOKIE_SECURE = true;
mailer = {
ENABLED = true;
HOST = "mail.gandi.net:465";
USER = "git@newtype.fr";
FROM = "Newtype's Git <git@newtype.fr>";
IS_TLS_ENABLED = true;
};
};
};
services.nginx = {
enable = true;
virtualHosts."git.newtype.fr" = {
enableACME = true;
forceSSL = true;
locations."/" = { proxyPass = "http://127.0.0.1:3000"; };
};
};
security.acme.certs = { "git.newtype.fr".email = "contact@newtype.fr"; };
security.acme.acceptTerms = true;
}

@ -1,14 +0,0 @@
{ lib, modulesPath, ... }: {
imports = [ "${modulesPath}/profiles/qemu-guest.nix" ];
boot.initrd.availableKernelModules =
[ "ata_piix" "uhci_hcd" "virtio_pci" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
services.qemuGuest.enable = true;
# VMs are noisy for this type of thing usually.
nix.settings.max-jobs = lib.mkDefault 1;
}

@ -37,14 +37,11 @@ in
)
"Please add network configuration for ${config.networking.hostName}. None found in ${./hosts.nix}";
# usually, for each host there is a hostname.infra.newtype.fr
# usually, for each host there is a hostname.dse.in.tum.de and hostname.r domain
networking.newtype.hosts = {
epyc = {
ipv6 = "2001:470:ca5e:dee:587c:7a50:f36c:cae8";
};
vieuxtype = {
ipv6 = "2a01:e0a:5f9:9681:a498:fffb:e48d:299";
};
};
};
}

@ -0,0 +1,81 @@
{ pkgs, ... }: {
services.hydra = {
enable = true;
hydraURL = "https://hydra.newtype.fr";
notificationSender = "hydra@localhost";
buildMachinesFiles = [ "/etc/nix/machines" ];
useSubstitutes = true;
};
environment.systemPackages = [ pkgs.nix-prefetch-git ];
nix.trustedUsers = [ "hydra" "hydra-www" ];
services.postgresql = {
enableJIT = true;
settings = {
checkpoint_completion_target = "0.9";
default_statistics_target = 100;
max_connections = 500;
work_mem = "20MB";
maintenance_work_mem = "2GB";
shared_buffers = "8GB";
min_wal_size = "1GB";
max_wal_size = "2GB";
wal_buffers = "16MB";
max_worker_processes = 16;
max_parallel_workers_per_gather = 8;
max_parallel_workers = 16;
# NVMe related performance tuning
effective_io_concurrency = 200;
random_page_cost = "1.1";
# We can risk losing some transactions.
synchronous_commit = "off";
effective_cache_size = "16GB";
# autovacuum and autoanalyze much more frequently:
# at these values vacuum should run approximately
# every 2 mass rebuilds, or a couple times a day
# on the builds table. Some of those queries really
# benefit from frequent vacuums, so this should
# help. In particular, I'm thinking the jobsets
# pages.
autovacuum_vacuum_scale_factor = 0.002;
autovacuum_analyze_scale_factor = 0.001;
shared_preload_libraries = "pg_stat_statements";
compute_query_id = "on";
};
};
security.acme = {
acceptTerms = true;
defaults.email = "ryan@lahfa.xyz";
};
services.nginx = {
enable = true;
recommendedZstdSettings = true;
recommendedBrotliSettings = true;
recommendedGzipSettings = true;
recommendedOptimisation =true;
recommendedTlsSettings = true;
recommendedProxySettings = true;
};
services.nginx.virtualHosts."hydra.newtype.fr" = {
forceSSL = true;
enableACME = true;
# TODO: remove compression for some locations
locations."/".proxyPass = "http://localhost:3000";
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
}

@ -0,0 +1,5 @@
{ ... }: {
virtualisation.nvisor = {
enable = true;
};
}

@ -1,6 +1,7 @@
{ lib
, config
, pkgs
, inputs
, ...
}:
@ -29,6 +30,17 @@ in
{ domain = "*"; item = "nofile"; type = "-"; value = "20480"; }
];
# Memory accounting techniques
systemd.services.nix-daemon.serviceConfig = {
MemoryAccounting = true;
MemoryMax = "225G";
MemoryHigh = "220G";
MemorySwapMax = "2G";
ManagedOOMSwap = "kill";
ManagedOOMMemoryPressure = "kill";
MemoryPressureWatch = "on";
};
nix = {
# Garbage-collect often
gc.automatic = true;
@ -38,19 +50,21 @@ in
# Randomize GC to avoid thundering herd effects.
gc.randomizedDelaySec = "1800";
# 2.11, 2.12 suffers from a bug with remote builders…
package = pkgs.nixVersions.nix_2_13;
# Inchallah, it works.
# package = lib.mkForce inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.nixVersions.nix_2_17;
# should be enough?
nrBuildUsers = lib.mkDefault 32;
# https://github.com/NixOS/nix/issues/719
nrBuildUsers = 128;
settings = {
keep-outputs = true;
keep-derivations = true;
# in zfs we trust
fsync-metadata = lib.boolToString (!config.boot.isContainer or config.fileSystems."/".fsType != "zfs");
use-cgroups = true;
http-connections = 0;
auto-allocate-uids = true;
cores = 64; # 128 is too much, it will explode the RAM for now. Let's keep it serious.
max-jobs = 2; # Do not build more than 2 derivations at once in the event, both of them are too big, yes this is stupid, fix it in Nix.
fsync-metadata = true;
substituters = [
"https://nix-community.cachix.org"
"https://tum-dse.cachix.org"
@ -60,6 +74,14 @@ in
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"tum-dse.cachix.org-1:v67rK18oLwgO0Z4b69l30SrV1yRtqxKpiHodG4YxhNM="
];
experimental-features = [
"auto-allocate-uids"
"ca-derivations"
"cgroups"
"discard-references"
"fetch-closure"
"impure-derivations"
];
};
};

@ -1,13 +1,12 @@
{ pkgs, ... }: {
# documentation.dev.enable = true;
# environment.extraOutputsToInstall = [ "info" "man" "devman" ];
{ pkgs, inputs, ... }: {
# this extends the list from:
# https://github.com/numtide/srvos/blob/master/server.nix#L10
environment.systemPackages = with pkgs; [
socat
whois
nix-output-monitor
inputs.attic.packages.x86_64-linux.attic
jq
psmisc
libarchive
@ -38,22 +37,7 @@
ipmitool
(neovim.override {
viAlias = true;
vimAlias = true;
configure = {
packages.myPlugins = with pkgs.vimPlugins; {
start = [ vim-lastplace vim-nix ];
opt = [ ];
};
};
})
nix-top
# tries to default to soft-float due to out-dated cc-rs
] ++ lib.optional (!stdenv.hostPlatform.isRiscV) bandwhich;
programs.vim.defaultEditor = true;
environment.variables = { EDITOR = "nvim"; };
programs.mosh.enable = true;
programs.tmux.enable = true;
}

@ -0,0 +1,36 @@
{
programs.ssh.extraConfig = ''
Host telecom-bastion
HostName ssh.enst.fr
User jmalka
IdentityFile /home/luj/.ssh/id_ed25519
Host lame11
Hostname lame11.enst.fr
User nix-remote-builder
ProxyJump telecom-bastion
IdentityFile /home/luj/.ssh/id_ed25519
Host lame10
Hostname lame10.enst.fr
User nix-remote-builder
ProxyJump telecom-bastion
IdentityFile /home/luj/.ssh/id_ed25519
Host lame12
Hostname lame12.enst.fr
User nix-remote-builder
ProxyJump telecom-bastion
IdentityFile /home/luj/.ssh/id_ed25519
Host lame16
Hostname lame16.enst.fr
User nix-remote-builder
ProxyJump telecom-bastion
IdentityFile /home/luj/.ssh/id_ed25519
Host lame17
Hostname lame17.enst.fr
User nix-remote-builder
ProxyJump telecom-bastion
IdentityFile /home/luj/.ssh/id_ed25519
'';
}

@ -1,5 +0,0 @@
{ config, ... }: {
services.tailscale.enable = true;
networking.firewall.checkReversePath = "loose";
networking.firewall.allowedUDPPorts = [ config.services.tailscale.port ];
}

@ -13,6 +13,7 @@ in
isNormalUser = true;
home = "/home/raito";
inherit extraGroups;
shell = "/run/current-system/sw/bin/zsh";
uid = 1000;
openssh.authorizedKeys.keyFiles = [ ./keys/raito.keys ];
};
@ -21,7 +22,9 @@ in
luj = {
isNormalUser = true;
home = "/home/luj";
inherit (config.users.users.raito) extraGroups;
inherit (config.users.users.raito);
extraGroups = extraGroups ++ [ "production-hydra-db" ];
shell = "/run/current-system/sw/bin/zsh";
uid = 1001;
openssh.authorizedKeys.keyFiles = [ ./keys/luj.keys ];
};
@ -31,6 +34,7 @@ in
isNormalUser = true;
home = "/home/gdd";
inherit (config.users.users.raito) extraGroups;
shell = "/run/current-system/sw/bin/zsh";
uid = 1002;
openssh.authorizedKeys.keyFiles = [ ./keys/gdd.keys ];
};
@ -40,6 +44,7 @@ in
isNormalUser = true;
home = "/home/akechi";
inherit (config.users.users.raito) extraGroups;
shell = "/run/current-system/sw/bin/zsh";
uid = 1003;
openssh.authorizedKeys.keyFiles = [ ./keys/akechi.keys ];
};
@ -49,6 +54,7 @@ in
isNormalUser = true;
home = "/home/tomate";
inherit (config.users.users.raito) extraGroups;
shell = "/run/current-system/sw/bin/zsh";
uid = 1004;
openssh.authorizedKeys.keyFiles = [ ./keys/tomate.keys ];
};

@ -0,0 +1,28 @@
{ ... }:
let
trustedFriendGroups = [
"production-hydra-db"
];
in
{
users.users = {
ninjatrappeur = {
isNormalUser = true;
home = "/home/ninjatrappeur";
shell = "/run/current-system/sw/bin/zsh";
uid = 2000;
extraGroups = trustedFriendGroups;
openssh.authorizedKeys.keyFiles = [ ./keys/ninjatrappeur.keys ];
};
linus = {
isNormalUser = true;
home = "/home/linus";
shell = "/run/current-system/sw/bin/zsh";
uid = 2001;
# Raito: I allowed linus to be root to get some stuff done
# on behalf of me.
extraGroups = [ "wheel" ] ++ trustedFriendGroups;
openssh.authorizedKeys.keyFiles = [ ./keys/linus.keys ];
};
};
}

@ -1 +1,2 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICE7TN5NQKGojNGIeTFiHjLHTDQGT8i05JFqX/zLW2zc
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIqnCNhMl5KgERtpFAVUjd11JDsf0uQ/8NY5sj4tnjw5

@ -0,0 +1,4 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDf7hGFfUHhtgYY0G/Dh9isjIxkvUjlAKAMvLIZs5NLXwEfnxDTVZW/ijfF2qDozAmYQHZqbeyhJX7YlO6nYjWRBxqBeqAMHhtu3PkiysSCCUymhJ2uDHUAox+BT8IGE3sCKYIXRdmSFoibgQad9AHsQ6OLoIaNgMV7rspdBcO/CjyCkHN440XhQKz/Sq2SyygI9Qkuz0qDdQOgIraVi//EXDAvij0QXlkmh+3xBJwEqt8Pe1KP9itwvGyzGX/aAheCBSf7HPcLzJUgcWymW6FL4AE0KqNVb8Q8ahaEM5UgbXUCauDON8H4OR1Zngszw128wklwxOr7q5gB++Ks1OQlHMGgiVYZ2wC0DXlx68BKSMNnJRHWCI4r63a3bAWGCqKbcCHpimjPAHisPoaoHffVUaIpj65klj+GkoHAgo/pl0S6o4OqVpOau3Qkn95D1KDbUiE1l0HdgZaRmOKRvTKec1V3tfB2rA83Q1cZCWC5ZSwk3wihYPywMyIo6G8f2M2bFot7k/sS9ZMSle6oZDrc6A8qWnaxMZYbEXdFGy02550vdymshJ9RpSLfK1oBKoKk7yL2hk1UHm6obXYXn/F0KvDr7nAM6gOf9NnOrPHKt14WDb0GsZwNd34g1RCcBUcXewh4ZJOHerzsS2h3D30BNQUNCaF8ZQr6FYXp7v9gnQ==
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN3EmXYSXsimS+vlGYtfTkOGuwvkXU0uHd2yYKLOxD2F
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIJWYrcu8usyqdLv4XO4i5TPaQhB+lH3Xbu2uz64hQe3
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAICDgQA1A1uHJsqLsSLLkuWNlxXrpGRD6Qx11WBbfP+SmAAAAEXNzaDpsaW51c0BiZWl3ZXJr

@ -1,4 +1,5 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9Uzb7szWlux7HuxLZej9cBR5MhLz/vaAPPfSoozt2k
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHoYi9YFzovZfwrY3BUA3QqcyBE8gfNTncbs3qqkLbyY
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDCKfPoMNrnyNWH6J1OvQ+n1rvSS9Sc2iZf6E1JQC+L4
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIESMWr29i3rhj32oLV3DKe57YI+jvNaKjZhhpq6dEjsn
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJOCKgHRHAJDSgKqYNfWboL04mnEOM0m0K3TGxBhBNDR
@ -8,4 +9,5 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILxfFq8wx5Bet5Q0gI28/lc9ryYYFQelpZdPPdzxGBbA
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGa+7n7kNzb86pTqaMn554KiPrkHRGeTJ0asY1NjSbpr
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILKIDLmQQ+P+jE4zVRpdVp8fmYEe4nzPDqYZt6A4eyIi
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAkj2xsN7Qt/Ew2QO+HiF2yOjXPRucZ3SbIdPDLJoh22
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDMBW7rTtfZL9wtrpCVgariKdpN60/VeAzXkh9w3MwbO
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCUt5I3IgONzYsMOFnRXtvR/uLXlIs6oWsCmh6YGgnpGD4M9lFdoYAOeC1faQUnP66sNs6AoacrGlPZ1UkVUqYEoIr2hiNCDRzzLCQ2J/sSaw7Hv0PKT7MWMo8R076M3TrdunCchBJI1noez3waM9aL4b/iYVhxym28ET55QrWjyMQfZL9PXzOKZatNVcK8AmdtSbI+pFrm/tTZPa321drm9PHOo9CL+lG4YmVZcXa0bVfVtk1GXlWwNpCj2ExLmbF1rRpAa05khfnbg3sBSklwf5NRXj11KneodKRF81ji7MtBhIIfoEXSYht7yspdkkS9e9mv16VGV+2ziM8zG3MK/iUq7fg5ksN54D3DNrd9iI5WjQZsLUrK0ypxO2NtvupWGYt3rCyKA/QvynbxOWFp6cy3Evej142hsfbiOcPIgCtGdHIBevp+KmPxkHBqsJPBqb3Y7nOMT1/ggDMtvHZEZJjEI2D2RjZNEXGbq63OPAqEkgmecW0cXlrjLEGhF2E=

@ -0,0 +1,3 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClF9ko5u4zf0CEvleEeRbo9r6BMNgXEGO/rDNZOEHcKxVaeIi+/xF6ZQ5MZbcmH08lswq32hb1XwXg7Gk+ofUdEvCD/kC/vJijt7IFkardy6BNOSWQJLEf6/BpL3LzDQhi7iZXPF46VYoPVGHBh8fKQaAtOCrhbf/8JutfTwCglEztjoiQxY5b8OMfntjBSl6TJwZPJAoQllbJJz9q90sBetvqx6Y08eqIzsSZw6pznpvivRR+TSKU0EkVYS2y2zBAvPK6oyunj5zi01/FACT+Qn70dUkumZAvcPssbl0hCs/xDLgEL6hCEvoszodyMYVn7HS0KwfUlfiGdNUOFHIl
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHzd1XAB7Pc8Tplur5iV3llOXtvlHru8pLtQlbvHzmt1
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOE7oDtq+xt5RuvMigDZMeZQODFr5Otz6HCO8wnI80oo

@ -1 +1,2 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+EZXYziiaynJX99EW8KesnmRTZMof3BoIs3mdEl8L3
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPM1jpXR7BWQa7Sed7ii3SbvIPRRlKb3G91qC0vOwfJn thubrecht@dell-xps

@ -1,17 +0,0 @@
{ ... }: {
users.users.yvan = {
isNormalUser = true;
home = "/home/yvan";
description = "Yvan's account";
extraGroups = [ "wheel" "www-data" ];
openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdMWQ1D9VJNrIzvgU8QMQwhy7Q/OFI9JNLpo/Kr0uXCeZBtSn9eMzZa88Q8gDaHnlc/BlTnlSomWP/S9u8+j21d+rXgDyPgJUqMjGBxFo4lZue3DlACXKQcwWXiNlGQKFPzSNBN62N3cRwm1R7Won9xVwedS4UnxsXbOGHkBnajQx40Ej3WRVBVbSjKKGaZKKCNO5hfistRP7RtqhwxYK7D/CyOfwnIUuBAnC3QYDYDph7SD2E5OX3rKwPDPnei0zaIMMXyFrMtv/czYOsisOud2H/VX0vipQh59qji/ZNSE31LemF4VcvC1307JX3uEwSfVWiBsWGPGfc/epQ4ixl yvan@X230" # Yvan's X230
];
};
services.mastodon = {
enable = true;
smtp = { host = "mail.gandi.net"; fromAddress = "yvan@sraka.xyz"; };
localDomain = "sraka.xyz";
};
}

@ -4,8 +4,7 @@
programs.zsh.enableGlobalCompInit = false;
programs.zsh.interactiveShellInit = ''
source ${pkgs.zsh-nix-shell}/share/zsh-nix-shell/nix-shell.plugin.zsh
'';
'';
programs.zsh = {
autosuggestions.enable = true;
promptInit = ''

Loading…
Cancel
Save