1
1
Fork 0
nixos-configs/machine/backyard/default.nix

94 lines
2.2 KiB
Nix
Raw Normal View History

{ pkgs, ... }:
2023-08-02 00:13:35 +00:00
{
imports = [
./hardware-configuration.nix
2023-10-22 20:56:06 +00:00
./jellyfin.nix
2024-04-16 02:28:04 +00:00
./samba.nix
];
2023-08-02 00:13:35 +00:00
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
2023-08-02 00:13:35 +00:00
2024-04-16 03:02:23 +00:00
# ZFS support
boot.supportedFilesystems = [ "zfs" ];
networking.hostId = "64cc144d";
# https://old.reddit.com/r/zfs/comments/1826lgs/psa_its_not_block_cloning_its_a_data_corruption/
boot.kernelParams = [ "zfs.zfs_dmu_offset_next_sync=0" ];
2024-04-24 04:32:35 +00:00
boot.zfs.extraPools = [ "pool" ];
2024-04-16 03:02:23 +00:00
2023-08-02 01:59:06 +00:00
beatific.hostName = "backyard";
beatific.defaults.tvbSync = false;
2023-08-02 00:13:35 +00:00
# Enable networking
networking.networkmanager.enable = true;
2023-08-02 15:39:25 +00:00
networking.firewall = {
enable = true;
allowedTCPPorts = [
7474 # mirror revproxy
];
};
services.nginx = {
enable = true;
virtualHosts = {
default = {
default = true;
rejectSSL = true;
locations."/".return = "444";
};
"mirror.backyard.home" = {
listen = [
{ addr = "10.22.20.8"; }
# Serve the mirror on a unique port to ensure the revproxy connects to the right vhost
{ addr = "10.22.20.8"; port = 7474; }
];
root = "/pool/tvb/doc/website/mirror";
};
};
2023-08-02 15:39:25 +00:00
};
2023-08-02 00:13:35 +00:00
2024-04-16 21:09:02 +00:00
environment.systemPackages = with pkgs; [
ffmpeg # omnipotent media tool
2024-04-24 06:22:32 +00:00
pv # zfs send progress meter
2024-04-16 21:09:02 +00:00
smartmontools # provides smartctl drive inspector
];
2024-04-23 20:43:59 +00:00
services.zfs = {
autoScrub = {
enable = true;
pools = [ "pool" ];
interval = "monthly";
};
};
2024-04-24 04:32:01 +00:00
users.users = {
tvb = {
extraGroups = [ "networkmanager" ];
};
katydid = {
uid = 1102;
isNormalUser = true;
group = "katydid";
initialPassword = "katydid";
};
};
users.groups = {
katydid.gid = 1102;
tvbpoolro = {
gid = 1201;
members = [ "tvb" "nginx" ];
};
2024-04-24 04:32:01 +00:00
};
2023-08-02 15:39:25 +00:00
# This value governs how some stateful data, like databases, are handled
# across different versions of NixOS. This should not be changed to a new
# release unless the sysadmin has determined that no services would be
# adversely affected by changing this.
system.stateVersion = "23.05";
2023-08-02 00:13:35 +00:00
}