setting up media server
This commit is contained in:
parent
3475d9bfaf
commit
d2e7573bea
8 changed files with 269 additions and 587 deletions
|
@ -126,39 +126,39 @@
|
|||
|
||||
environment.systemPackages = with pkgs; [
|
||||
wget
|
||||
libGL.out
|
||||
# libGL.out
|
||||
home-manager
|
||||
curl
|
||||
git-lfs
|
||||
tailscale
|
||||
# tailscale
|
||||
rsync
|
||||
gnupg
|
||||
clinfo
|
||||
# clinfo
|
||||
alsa-utils
|
||||
alsa-oss
|
||||
# alsa-oss
|
||||
alsa-tools
|
||||
psutils
|
||||
# psutils
|
||||
util-linux
|
||||
libgtop
|
||||
fontconfig
|
||||
freetype
|
||||
egl-wayland
|
||||
glfw-wayland
|
||||
openssl
|
||||
# libgtop
|
||||
# fontconfig
|
||||
# freetype
|
||||
# egl-wayland
|
||||
# glfw-wayland
|
||||
# openssl
|
||||
appimage-run
|
||||
xwayland-satellite
|
||||
xwayland-run
|
||||
cifs-utils
|
||||
samba
|
||||
# samba
|
||||
ddcutil
|
||||
ddcui
|
||||
# ddcui
|
||||
greetd.tuigreet
|
||||
bluez-tools
|
||||
bluetuith
|
||||
qemu
|
||||
quickemu
|
||||
borgbackup
|
||||
|
||||
# virt-manager
|
||||
virt-viewer
|
||||
spice
|
||||
spice-gtk
|
||||
|
@ -519,33 +519,6 @@
|
|||
services.qemuGuest.enable = true;
|
||||
services.spice-vdagentd.enable = true;
|
||||
|
||||
# systemd.network.enable = true;
|
||||
|
||||
# systemd.network.networks."10-lan" = {
|
||||
# matchConfig.Name = ["eno1" "vm-*"];
|
||||
# networkConfig = {
|
||||
# Bridge = "br0";
|
||||
# };
|
||||
# };
|
||||
|
||||
# systemd.network.netdevs."br0" = {
|
||||
# netdevConfig = {
|
||||
# Name = "br0";
|
||||
# Kind = "bridge";
|
||||
# };
|
||||
# };
|
||||
|
||||
# systemd.network.networks."10-lan-bridge" = {
|
||||
# matchConfig.Name = "br0";
|
||||
# networkConfig = {
|
||||
# Address = ["192.168.1.2/24" "2001:db8::a/64"];
|
||||
# Gateway = "192.168.1.1";
|
||||
# DNS = ["192.168.1.1"];
|
||||
# IPv6AcceptRA = true;
|
||||
# };
|
||||
# linkConfig.RequiredForOnline = "routable";
|
||||
# };
|
||||
|
||||
programs.appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
|
@ -678,6 +651,12 @@
|
|||
];
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#do not change
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
|
|
|
@ -1,5 +1,112 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config.facter.reportPath = ./facter.json;
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.hostName = "media-server"; # Define your hostname.
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Toronto";
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.media = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "input" "audio" "video" "network" "networkmanager" ]; # Enable ‘sudo’ for the user.
|
||||
packages = with pkgs; [
|
||||
tree
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
wget
|
||||
curl
|
||||
];
|
||||
|
||||
fonts = {
|
||||
enableDefaultPackages = true;
|
||||
fontDir.enable = true;
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
useEmbeddedBitmaps = true;
|
||||
};
|
||||
|
||||
powerManagement = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
amdgpu.initrd.enable = true;
|
||||
enableAllFirmware = true;
|
||||
uinput.enable = true;
|
||||
};
|
||||
|
||||
services.power-profiles-daemon = {
|
||||
enable = true;
|
||||
package = pkgs.power-profiles-daemon;
|
||||
};
|
||||
|
||||
# enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
programs.ssh.startAgent = true;
|
||||
|
||||
services.resolved = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
LLMNR=no
|
||||
ReadEtcHosts=no
|
||||
DNSSEC=no
|
||||
'';
|
||||
};
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
publish.enable = true;
|
||||
publish.userServices = true;
|
||||
openFirewall = true;
|
||||
nssmdns4 = true;
|
||||
};
|
||||
services.samba = {
|
||||
enable = true;
|
||||
package = pkgs.sambaFull;
|
||||
openFirewall = true;
|
||||
};
|
||||
services.samba-wsdd = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
|
||||
# enable fish and launch it from bash for interactive shells
|
||||
programs.fish.enable = true;
|
||||
environment.pathsToLink = [ "/share/fish" ];
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
programs.git.enable = true;
|
||||
|
||||
|
||||
|
||||
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
|
41
hosts/media-server/hardware-configuration.nix
Normal file
41
hosts/media-server/hardware-configuration.nix
Normal file
|
@ -0,0 +1,41 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sdhci_acpi" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/46b17417-d7b2-442a-8a99-de89495f20fa";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/DD4A-05C6";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/70a2e22b-aae8-4245-9884-bb6533c7682d"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue