84 lines
2 KiB
Nix
84 lines
2 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
let
|
|
userImports =
|
|
let
|
|
toUserPath = f: ../users/. + "/${f}";
|
|
onlyUserFiles = x:
|
|
lib.hasSuffix ".nix" x &&
|
|
x != "lib.nix"
|
|
;
|
|
userDirEntries = builtins.readDir ../users;
|
|
userFiles = builtins.filter onlyUserFiles (lib.attrNames userDirEntries);
|
|
in
|
|
builtins.map toUserPath userFiles;
|
|
in
|
|
{
|
|
imports = [
|
|
./hardware-configuration.nix
|
|
|
|
./buildkite.nix
|
|
./gitlab.nix
|
|
./hydra.nix
|
|
./hydra-declarative-projects.nix
|
|
./cache.nix
|
|
./nixpkgs-update.nix
|
|
./marvin-mk2.nix
|
|
./matterbridge.nix
|
|
|
|
../profiles/common.nix
|
|
../profiles/docker.nix
|
|
|
|
../services/hound
|
|
] ++ userImports;
|
|
|
|
# /boot is a mirror raid
|
|
boot.loader.grub.devices = [ "/dev/sda" "/dev/sdb" ];
|
|
boot.loader.grub.enable = true;
|
|
boot.loader.grub.version = 2;
|
|
|
|
networking.hostName = "nix-community-build01";
|
|
networking.hostId = "d2905767";
|
|
|
|
networking.usePredictableInterfaceNames = false;
|
|
networking.dhcpcd.enable = false;
|
|
|
|
networking.firewall = {
|
|
# for Nginx
|
|
allowedTCPPorts = [ 443 80 ];
|
|
};
|
|
|
|
systemd.network = {
|
|
enable = true;
|
|
networks."eth0".extraConfig = ''
|
|
[Match]
|
|
Name = eth0
|
|
[Network]
|
|
Address = 2a01:4f8:13b:2ceb::1/64
|
|
Gateway = fe80::1
|
|
Address = 94.130.143.84/26
|
|
Gateway = 94.130.143.65
|
|
'';
|
|
};
|
|
|
|
# nginx is being used as the frontend HTTP server for all the services
|
|
# running on the box
|
|
services.nginx.enable = true;
|
|
|
|
services.cron.enable = true;
|
|
services.cron.systemCronJobs = [
|
|
# record that this machine is alive
|
|
"*/5 * * * * root ${pkgs.curl}/bin/curl -X POST -sfL https://hc-ping.com/fcf6c029-5b57-44aa-b392-923f3d894dd9"
|
|
];
|
|
|
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
boot.supportedFilesystems = [ "zfs" ];
|
|
|
|
security.acme.email = "trash@nix-community.org";
|
|
security.acme.acceptTerms = true;
|
|
|
|
nix.gc.automatic = true;
|
|
nix.gc.options = "--delete-older-than 30d";
|
|
|
|
system.stateVersion = "20.03";
|
|
|
|
}
|