format nix

This commit is contained in:
Aaron Honeycutt 2025-09-18 17:24:56 -06:00
parent 6dd9b64e37
commit de53a26819
69 changed files with 1585 additions and 1400 deletions

View file

@ -1,132 +1,134 @@
{ config, pkgs, lib, inputs, ... }:
{
imports =
[
./hardware-configuration.nix
];
config,
pkgs,
lib,
inputs,
...
}: {
imports = [
./hardware-configuration.nix
];
# Latest kernel
# boot.kernelPackages = pkgs.linuxPackages_latest;
# Latest kernel
# boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader = {
systemd-boot.enable = true;
systemd-boot.consoleMode = "0";
systemd-boot.configurationLimit = 5;
};
boot.loader = {
systemd-boot.enable = true;
systemd-boot.consoleMode = "0";
systemd-boot.configurationLimit = 5;
};
boot.plymouth.enable = true;
boot.initrd.systemd.enable = true;
boot.kernelParams = [ "quiet" ];
boot.plymouth.enable = true;
boot.initrd.systemd.enable = true;
boot.kernelParams = ["quiet"];
#nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
#nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
swapDevices = [ {
device = "/var/lib/swapfile";
size = 16*1024;
} ];
swapDevices = [
{
device = "/var/lib/swapfile";
size = 16 * 1024;
}
];
zramSwap.enable = true;
zramSwap.enable = true;
networking.networkmanager.enable = true;
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "America/Denver";
# Set your time zone.
time.timeZone = "America/Denver";
# Enter keyboard layout
services.xserver.xkb.layout = "us";
# Enter keyboard layout
services.xserver.xkb.layout = "us";
# Define user accounts
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = [ "wheel" "networkmanager" "adm"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
# Define user accounts
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = ["wheel" "networkmanager" "adm"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
};
};
# Allow Unfree
nixpkgs.config.allowUnfree = true;
# Allow Unfree
nixpkgs.config.allowUnfree = true;
# Install some packages
environment.systemPackages =
with pkgs;
[
# nixpkgs CLI tools
avahi
dmidecode
freshfetch
git
git-lfs
helix
libcamera
lshw
restic
unzip
wget
xz
zellij
zlib
# GUI tools
firefox
zed-editor
# Install some packages
environment.systemPackages = with pkgs; [
# nixpkgs CLI tools
avahi
dmidecode
freshfetch
git
git-lfs
helix
libcamera
lshw
restic
unzip
wget
xz
zellij
zlib
# Flake CLI tools
inputs.pinix.packages.${system}.default
inputs.nixpkgs-ahoneybun.packages.${system}.honeyfetch
inputs.nixpkgs-ahoneybun.packages.${system}.naviterm
];
# Enable/Disable hardware
## Turn off PulseAudio
#services.pulseaudio.enable = false;
# GUI tools
firefox
zed-editor
# Enable Pipewire
security.rtkit.enable = true;
services.pipewire = {
# Flake CLI tools
inputs.pinix.packages.${system}.default
inputs.nixpkgs-ahoneybun.packages.${system}.honeyfetch
inputs.nixpkgs-ahoneybun.packages.${system}.naviterm
];
# Enable/Disable hardware
## Turn off PulseAudio
#services.pulseaudio.enable = false;
# Enable Pipewire
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Enable services
services.fwupd.enable = true;
services.printing.enable = true;
services.openssh.enable = true;
services.avahi = {
enable = true;
#nssmdns4 = true;
openFirewall = true;
# Needed for detecting scanners
publish = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
addresses = true;
userServices = true;
};
};
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Scanner support
hardware.sane.enable = true;
hardware.sane.extraBackends = [pkgs.sane-airscan];
services.ipp-usb.enable = true;
# Enable services
services.fwupd.enable = true;
services.printing.enable = true;
services.openssh.enable = true;
services.hardware.bolt.enable = true;
services.avahi = {
enable = true;
#nssmdns4 = true;
openFirewall = true;
# Needed for detecting scanners
publish = {
enable = true;
addresses = true;
userServices = true;
};
};
# Scanner support
hardware.sane.enable = true;
hardware.sane.extraBackends = [ pkgs.sane-airscan ];
services.ipp-usb.enable = true;
services.hardware.bolt.enable = true;
# System
system.stateVersion = "25.05";
system.autoUpgrade.enable = true;
# System
system.stateVersion = "25.05";
system.autoUpgrade.enable = true;
}

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
# COSMIC
services = {
displayManager.cosmic-greeter.enable = true;
@ -8,7 +10,7 @@
};
# Add community COSMIC packages
environment.systemPackages = (with pkgs; [
environment.systemPackages = with pkgs; [
cosmic-ext-tweaks
]);
];
}

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
# GNOME
services.xserver = {
enable = true;
@ -9,23 +11,22 @@
};
# Add GNOME packages
environment.systemPackages = (with pkgs; [
environment.systemPackages = with pkgs; [
dconf-editor
gedit
loupe
]);
];
# Remove GNOME packages
environment.gnome.excludePackages = (with pkgs; [
environment.gnome.excludePackages = with pkgs; [
epiphany # web browser
geary
gnome-software
gnome-connections
gnome-photos
gnome-tour
]);
];
# Services
services.udev.packages = with pkgs; [ gnome-settings-daemon ];
services.udev.packages = with pkgs; [gnome-settings-daemon];
}

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
# Start herbstluftwm
services.xserver = {
enable = true;
@ -8,11 +10,8 @@
windowManager.herbstluftwm.enable = true;
};
environment.systemPackages = (with pkgs; [
environment.systemPackages = with pkgs; [
polybar # status bar
rofi # launcher
]);
];
}

View file

@ -1,15 +1,16 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
# Desktop
services.xserver = {
enable = true;
desktopManager.pantheon.enable = true;
};
# Remove Pantheon packages
environment.pantheon.excludePackages = (with pkgs; [
pantheon.appcenter # AppCenter as it can't be used on NixOS
]);
# Remove Pantheon packages
environment.pantheon.excludePackages = with pkgs; [
pantheon.appcenter # AppCenter as it can't be used on NixOS
];
}

View file

@ -1,16 +1,16 @@
{ config, pkgs, ... }:
{
# Plasma
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
config,
pkgs,
...
}: {
# Plasma
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
# Install some packages
environment.systemPackages =
with pkgs;
[
kdePackages.dragon
kdePackages.merkuro
# kdePackages.neochat # disable due to insecure issue with olm
];
# Install some packages
environment.systemPackages = with pkgs; [
kdePackages.dragon
kdePackages.merkuro
# kdePackages.neochat # disable due to insecure issue with olm
];
}

View file

@ -1,13 +1,15 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
alacritty # gpu accelerated terminal
sway
wayland
xdg-utils # for openning default programms when clicking links
glib # gsettings
gnome3.adwaita-icon-theme # default gnome cursors
gnome3.adwaita-icon-theme # default gnome cursors
swaylock
swayidle
grim # screenshot functionality
@ -23,7 +25,7 @@
enable = true;
wlr.enable = true;
# gtk portal needed to make gtk apps happy
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
extraPortals = [pkgs.xdg-desktop-portal-gtk];
};
# enable sway window manager

View file

@ -1,21 +1,20 @@
{ pkgs ? import <nixpkgs> {} }:
{pkgs ? import <nixpkgs> {}}:
pkgs.mkShell {
packages = with pkgs; [
# Rust
cargo
rustc
pkgs.mkShell {
packages = with pkgs; [
# Rust
cargo
rustc
# System
pkg-config
util-linux
];
# System
pkg-config
util-linux
];
#inputsFrom = with pkgs; [ bat ];
#inputsFrom = with pkgs; [ bat ];
RUST_BACKTRACE = 1;
RUST_BACKTRACE = 1;
shellHook = ''
echo "Ready to make some Rust!"
'';
shellHook = ''
echo "Ready to make some Rust!"
'';
}

View file

@ -1,30 +1,30 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
nativeBuildInputs = with pkgs; [
chrpath
cpio
debianutils
diffstat
file
gawk
git
glibcLocales
gnat
gnumake
iputils
lz4
# Python 3.12 and packages for it
python312
python312Packages.jinja2
python312Packages.gitpython
python312Packages.pexpect
python312Packages.pip
python312Packages.subunit
socat
texinfo
unzip
wget
xz
zstd
];
{pkgs ? import <nixpkgs> {}}:
pkgs.mkShell {
nativeBuildInputs = with pkgs; [
chrpath
cpio
debianutils
diffstat
file
gawk
git
glibcLocales
gnat
gnumake
iputils
lz4
# Python 3.12 and packages for it
python312
python312Packages.jinja2
python312Packages.gitpython
python312Packages.pexpect
python312Packages.pip
python312Packages.subunit
socat
texinfo
unzip
wget
xz
zstd
];
}

240
flake.nix
View file

@ -1,123 +1,131 @@
{
description = "Generic System Flake file";
description = "Generic System Flake file";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/release-25.05";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/release-25.05";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
helix.url = "github:helix-editor/helix/refs/tags/25.07.1";
cosmic-unstable.url = "github:ninelore/nixpkgs-cosmic-unstable/main";
nixpkgs-ahoneybun.url = "gitlab:ahoneybun/nixpkgs/main";
};
outputs = inputs @ {
self,
nixpkgs,
home-manager,
nixos-hardware,
helix,
cosmic-unstable,
nixpkgs-ahoneybun,
...
}: {
nixosConfigurations = {
"nixos" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
./gnome.nix
./configuration.nix
./hardware-configuration.nix
];
};
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
helix.url = "github:helix-editor/helix/refs/tags/25.07.1";
cosmic-unstable.url = "github:ninelore/nixpkgs-cosmic-unstable/main";
nixpkgs-ahoneybun.url = "gitlab:ahoneybun/nixpkgs/main";
};
outputs = inputs@{ self, nixpkgs, home-manager, nixos-hardware, helix, cosmic-unstable, nixpkgs-ahoneybun, ... }: {
nixosConfigurations = {
"nixos" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./gnome.nix
./configuration.nix
./hardware-configuration.nix
"shepard" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
./gnome.nix
./shepard.nix
./configuration.nix
./hardware-configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.aaronh = import ./home.nix;
}
{
nixpkgs.overlays = [
(final: prev: {
helix = inputs.helix.packages.${prev.system}.default;
})
];
};
"shepard" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./gnome.nix
./shepard.nix
./configuration.nix
./hardware-configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.aaronh = import ./home.nix;
}
{
nixpkgs.overlays = [
(final: prev: {
helix = inputs.helix.packages.${prev.system}.default;
})
];
}
];
};
"edi" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./edi.nix
./configuration.nix
./hardware-configuration.nix
];
};
"garrus" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./garrus.nix
#./gnome.nix
./cosmic.nix
./configuration.nix
nixos-hardware.nixosModules.system76
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.aaronh = import ./home.nix;
}
{
nixpkgs.overlays = [
(final: prev: {
helix = inputs.helix.packages.${prev.system}.default;
})
];
}
];
};
"pixel-slate" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./pixel-slate.nix
./configuration.nix
];
};
"drack" = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
specialArgs = { inherit inputs; };
modules = [
./drack.nix
./gnome.nix
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.aaronh = import ./home.nix;
}
];
};
"vm" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./vm.nix
./configuration.nix
./hardware-configuration.nix
];
};
}
];
};
};
"edi" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
./edi.nix
./configuration.nix
./hardware-configuration.nix
];
};
"garrus" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
./garrus.nix
#./gnome.nix
./cosmic.nix
./configuration.nix
nixos-hardware.nixosModules.system76
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.aaronh = import ./home.nix;
}
{
nixpkgs.overlays = [
(final: prev: {
helix = inputs.helix.packages.${prev.system}.default;
})
];
}
];
};
"pixel-slate" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
./pixel-slate.nix
./configuration.nix
];
};
"drack" = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
specialArgs = {inherit inputs;};
modules = [
./drack.nix
./gnome.nix
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.aaronh = import ./home.nix;
}
];
};
"vm" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./vm.nix
./configuration.nix
./hardware-configuration.nix
];
};
};
};
}

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
home = {
username = "aaronh";
homeDirectory = "/home/aaronh";
@ -15,7 +17,7 @@
signal-desktop
# CLI
];
home.sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
@ -38,24 +40,24 @@
userName = "Aaron Honeycutt";
userEmail = "aaronhoneycutt@protonmail.com";
aliases = {
undo = "rebase -i HEAD~2";
amend = "commit -a --amend";
force = "push -f";
undo = "rebase -i HEAD~2";
amend = "commit -a --amend";
force = "push -f";
};
extraConfig = {
color = {
ui = "auto";
ui = "auto";
};
color.status = {
added = "green bold";
changed = "yellow bold";
untracked = "red bold";
added = "green bold";
changed = "yellow bold";
untracked = "red bold";
};
push = {
autoSetupRemote = "true";
autoSetupRemote = "true";
};
init = {
defaultBranch = "main";
defaultBranch = "main";
};
core.editor = "hx";
};
@ -71,7 +73,7 @@
programs.helix = {
enable = true;
settings = {
theme = "ferra";
theme = "ferra";
};
};
@ -81,5 +83,4 @@
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.nginx = {
enable = true;
virtualHosts."ahoneybun.net" = {
@ -24,14 +27,14 @@
serviceConfig = {
ExecStart = "/run/current-system/sw/bin/zola -r /mnt/DATA/Website/ahoneybun-net build";
};
wantedBy = [ "default.target" ];
wantedBy = ["default.target"];
};
systemd.user.timers."website-zola-build" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "2h";
OnUnitActiveSec = "7h";
};
wantedBy = ["timers.target"];
timerConfig = {
OnBootSec = "2h";
OnUnitActiveSec = "7h";
};
};
}

View file

@ -1,8 +1,11 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.audiobookshelf = {
enable = true;
openFirewall = true;
};
}
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services = {
cloudflared = {
enable = true;
@ -9,7 +12,7 @@
credentialsFile = "{{/path/to/UUID.json}}";
default = "http_status:404";
ingress = {
"honeycutt.family" = "http://localhost:5678"; # Glances homepage
"honeycutt.family" = "http://localhost:5678"; # Glances homepage
"www.honeycutt.family" = "http://localhost:5678"; # Glances homepage
"aaron.honeycutt.family" = "http://localhost:80"; # Zola (personal site)
"home.honeycutt.family" = "http://10.0.0.200:8123"; # Home Assistant

View file

@ -1,9 +1,12 @@
{ lib, pkgs, config, ... }:
let
{
lib,
pkgs,
config,
...
}: let
cfg = config.services.forgejo;
srv = cfg.settings.server;
in
{
in {
services.forgejo = {
enable = true;
database.type = "postgres";
@ -20,4 +23,4 @@ in
service.DISABLE_REGISTRATION = true;
};
};
}
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.gatus = {
enable = true;
openFirewall = true;
@ -61,4 +64,4 @@
];
};
};
}
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
{
config,
pkgs,
lib,
...
}: {
services.glance = {
enable = true;
openFirewall = true;
@ -9,138 +12,140 @@
host = "0.0.0.0";
port = 5678;
};
theme = {
background-color = "270 5 17";
primary-color = "21 97 85";
negative-color = "358 100 68";
contrast-multiplier = 1.2;
theme = {
background-color = "270 5 17";
primary-color = "21 97 85";
negative-color = "358 100 68";
contrast-multiplier = 1.2;
};
pages = [{
name = "Home";
hide-desktop-navigation = true;
center-vertically = true;
columns = [
{
size = "small";
widgets = [
{
type = "clock";
hour-format = "24h";
timezones = [
{
timezone = "Asia/Tokyo";
label = "Tokyo";
}
{
timezone = "Europe/Dublin";
label = "Dublin";
}
];
}
{
type = "calendar";
}
{
type = "weather";
units = "imperial";
hour-format = "24h";
location = "Aurora, Colorado, United States";
}
];
}
{
size = "full";
widgets = [
{
type = "search";
search-engine = "duckduckgo";
new-tab = true;
}
{
type = "bookmarks";
groups = [
{
title = "Media";
color = "17 100 74";
links = [
{
title = "Music";
url = "https://music.ahoneybun.net/";
}
{
title = "Videos";
url = "https://videos.ahoneybun.net/";
}
{
title = "Photos";
url = "https://photos.ahoneybun.net/";
}
{
title = "Audiobooks";
url = "https://audiobookshelf.ahoneybun.net/";
}
{
title = "Books & Comics";
url = "https://books.ahoneybun.net/";
}
];
}
{
title = "Infrastructure";
color = "355 65 65";
links = [
{
title = "Forgejo";
url = "https://git.ahoneybun.net/";
}
];
}
{
title = "Knowledge";
color = "240 19 85";
links = [
{
title = "Personal Wiki";
url = "https://wiki.ahoneybun.net/";
}
];
}
];
}
{
type = "monitor";
title = "Services";
sites = [
{
title = "Navidrome";
url = "https://music.ahoneybun.net/";
}
{
title = "Jellyfin";
url = "https://videos.ahoneybun.net/";
}
{
title = "Immich";
url = "https://photos.ahoneybun.net/";
}
{
title = "Forgejo";
url = "https://git.ahoneybun.net";
}
{
title = "Gollum";
url = "https://wiki.ahoneybun.net";
}
{
title = "Wastebin";
url = "https://bin.ahoneybun.net";
}
];
}
];
}
];
}];
pages = [
{
name = "Home";
hide-desktop-navigation = true;
center-vertically = true;
columns = [
{
size = "small";
widgets = [
{
type = "clock";
hour-format = "24h";
timezones = [
{
timezone = "Asia/Tokyo";
label = "Tokyo";
}
{
timezone = "Europe/Dublin";
label = "Dublin";
}
];
}
{
type = "calendar";
}
{
type = "weather";
units = "imperial";
hour-format = "24h";
location = "Aurora, Colorado, United States";
}
];
}
{
size = "full";
widgets = [
{
type = "search";
search-engine = "duckduckgo";
new-tab = true;
}
{
type = "bookmarks";
groups = [
{
title = "Media";
color = "17 100 74";
links = [
{
title = "Music";
url = "https://music.ahoneybun.net/";
}
{
title = "Videos";
url = "https://videos.ahoneybun.net/";
}
{
title = "Photos";
url = "https://photos.ahoneybun.net/";
}
{
title = "Audiobooks";
url = "https://audiobookshelf.ahoneybun.net/";
}
{
title = "Books & Comics";
url = "https://books.ahoneybun.net/";
}
];
}
{
title = "Infrastructure";
color = "355 65 65";
links = [
{
title = "Forgejo";
url = "https://git.ahoneybun.net/";
}
];
}
{
title = "Knowledge";
color = "240 19 85";
links = [
{
title = "Personal Wiki";
url = "https://wiki.ahoneybun.net/";
}
];
}
];
}
{
type = "monitor";
title = "Services";
sites = [
{
title = "Navidrome";
url = "https://music.ahoneybun.net/";
}
{
title = "Jellyfin";
url = "https://videos.ahoneybun.net/";
}
{
title = "Immich";
url = "https://photos.ahoneybun.net/";
}
{
title = "Forgejo";
url = "https://git.ahoneybun.net";
}
{
title = "Gollum";
url = "https://wiki.ahoneybun.net";
}
{
title = "Wastebin";
url = "https://bin.ahoneybun.net";
}
];
}
];
}
];
}
];
};
};
}

View file

@ -1,26 +1,29 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.gollum = {
enable = true;
no-edit = true;
stateDir = "/mnt/DATA/Wiki";
};
systemd.user.services."wiki-git-update" = {
enable = true;
description = "wiki-git-update runs git to pull latest wiki changes";
serviceConfig = {
ExecStart = "/run/current-system/sw/bin/git -C /mnt/DATA/knowledge-base pull";
};
wantedBy = [ "default.target" ];
wantedBy = ["default.target"];
};
systemd.user.timers."wiki-git-update" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "1h";
OnUnitActiveSec = "6h";
};
wantedBy = ["timers.target"];
timerConfig = {
OnBootSec = "1h";
OnUnitActiveSec = "6h";
};
};
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.home-assistant = {
enable = true;
extraComponents = [
@ -24,11 +27,11 @@
# https://www.home-assistant.io/integrations/default_config/
default_config = {};
homeassistant = {
unit_system = "imperial";
temperature_unit = "F";
time_zone = "America/Denver";
unit_system = "imperial";
temperature_unit = "F";
time_zone = "America/Denver";
};
feedreader.urls = [ "https://nixos.org/blogs.xml" ];
feedreader.urls = ["https://nixos.org/blogs.xml"];
};
};
}
}

View file

@ -8,14 +8,34 @@
color = "neutral";
headerStyle = "boxed";
layout = {
media = { style = "row"; columns = 4; };
infra = { style = "row"; columns = 2; };
games = { style = "row"; columns = 1; };
media = {
style = "row";
columns = 4;
};
infra = {
style = "row";
columns = 2;
};
games = {
style = "row";
columns = 1;
};
};
};
widgets = [
{ resources = { label = "system"; cpu = true; memory = true; }; }
{ resources = { label = "storage"; disk = [ "/mnt/DATA" ]; }; }
{
resources = {
label = "system";
cpu = true;
memory = true;
};
}
{
resources = {
label = "storage";
disk = ["/mnt/DATA"];
};
}
];
services = [
{
@ -69,14 +89,14 @@
}
{
Audiobookshelf = {
icon = "audiobookshelf.png";
href = "https://audiobookshelf.ahoneybun.net";
description = "audiobook player";
widget = {
type = "audiobookshelf";
url = "https://audiobookshelf.ahoneybun.net";
key = "";
};
icon = "audiobookshelf.png";
href = "https://audiobookshelf.ahoneybun.net";
description = "audiobook player";
widget = {
type = "audiobookshelf";
url = "https://audiobookshelf.ahoneybun.net";
key = "";
};
};
}
];
@ -116,4 +136,4 @@
}
];
};
}
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.nginx = {
enable = true;
virtualHosts."honeyfetch.app" = {
@ -30,14 +33,14 @@
serviceConfig = {
ExecStart = "/run/current-system/sw/bin/zola -r /mnt/DATA/honeyfetch-website build";
};
wantedBy = [ "default.target" ];
wantedBy = ["default.target"];
};
systemd.user.timers."honeyfetch-website-zola-build" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "2h";
OnUnitActiveSec = "7h";
};
wantedBy = ["timers.target"];
timerConfig = {
OnBootSec = "2h";
OnUnitActiveSec = "7h";
};
};
}

View file

@ -1,10 +1,13 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.hydra = {
enable = true;
hydraURL = "localhost:3000";
buildMachinesFiles = [ "/etc/nix/machines" ];
buildMachinesFiles = ["/etc/nix/machines"];
notificationSender = "hydra@localhost";
useSubstitutes = true;
};
@ -13,8 +16,8 @@
{
hostName = "localhost";
protocol = null;
# system = "x86_64-linux";
systems = [ "x86_64-linux" "aarch64-linux" ];
# system = "x86_64-linux";
systems = ["x86_64-linux" "aarch64-linux"];
supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"];
maxJobs = 8;
}

View file

@ -1,9 +1,12 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.jellyfin = {
enable = true;
user = "aaronh";
enable = true;
user = "aaronh";
};
environment.systemPackages = with pkgs; [
jellyfin

View file

@ -1,8 +1,11 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.kavita = {
enable = true;
# tokenKeyFile = "/home/aaronh/TokenKey"; # Update depending on the setup
enable = true;
# tokenKeyFile = "/home/aaronh/TokenKey"; # Update depending on the setup
};
}

View file

@ -1,8 +1,11 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.komga = {
enable = true;
openFirewall = true;
};
}
}

View file

@ -1,10 +1,12 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.minecraft-server = {
enable = true;
eula = true;
openFirewall = true;
enable = true;
eula = true;
openFirewall = true;
};
}
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.navidrome = {
enable = true;
user = "aaronh";
@ -11,4 +14,4 @@
MusicFolder = "/mnt/DATA/Media/Music";
};
};
}
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
environment.etc."nextcloud-admin-pass".text = "test123";
services.nextcloud = {
enable = true;
@ -8,8 +11,8 @@
package = pkgs.nextcloud28;
hostName = "localhost";
config = {
adminpassFile = "/etc/nextcloud-admin-pass";
adminpassFile = "/etc/nextcloud-admin-pass";
};
settings.trusted_domains = [ "10.0.0.10*" ];
settings.trusted_domains = ["10.0.0.10*"];
};
}
}

View file

@ -1,20 +1,23 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.photoprism = {
enable = true;
port = 2342;
originalsPath = "/mnt/DATA/Media/Photos";
address = "0.0.0.0";
settings = {
PHOTOPRISM_ADMIN_USER = "admin";
PHOTOPRISM_ADMIN_PASSWORD = "admin";
PHOTOPRISM_DEFAULT_LOCALE = "en";
PHOTOPRISM_DATABASE_DRIVER = "mysql";
PHOTOPRISM_DATABASE_NAME = "photoprism";
PHOTOPRISM_DATABASE_SERVER = "/var/run/mysqld/mysqld.sock";
PHOTOPRISM_DATABASE_USER = "photoprism";
};
enable = true;
port = 2342;
originalsPath = "/mnt/DATA/Media/Photos";
address = "0.0.0.0";
settings = {
PHOTOPRISM_ADMIN_USER = "admin";
PHOTOPRISM_ADMIN_PASSWORD = "admin";
PHOTOPRISM_DEFAULT_LOCALE = "en";
PHOTOPRISM_DATABASE_DRIVER = "mysql";
PHOTOPRISM_DATABASE_NAME = "photoprism";
PHOTOPRISM_DATABASE_SERVER = "/var/run/mysqld/mysqld.sock";
PHOTOPRISM_DATABASE_USER = "photoprism";
};
};
# MySQL
@ -22,13 +25,14 @@
enable = true;
dataDir = "/var/lib/mysql";
package = pkgs.mariadb;
ensureDatabases = [ "photoprism" ];
ensureUsers = [ {
name = "photoprism";
ensurePermissions = {
"photoprism.*" = "ALL PRIVILEGES";
};
} ];
ensureDatabases = ["photoprism"];
ensureUsers = [
{
name = "photoprism";
ensurePermissions = {
"photoprism.*" = "ALL PRIVILEGES";
};
}
];
};
}

View file

@ -1,14 +1,17 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.transmission = {
enable = true;
openFirewall = true;
settings = {
download-dir = "/mnt/DATA/Downloads";
rpc-bind-address = "0.0.0.0";
rpc-host-whitelist-enabled = false;
rpc-whitelist-enabled = false;
};
enable = true;
openFirewall = true;
settings = {
download-dir = "/mnt/DATA/Downloads";
rpc-bind-address = "0.0.0.0";
rpc-host-whitelist-enabled = false;
rpc-whitelist-enabled = false;
};
};
}
}

View file

@ -1,8 +1,11 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
services.wastebin = {
enable = true;
settings.WASTEBIN_BASE_URL = "https://bin.ahoneybun.net";
enable = true;
settings.WASTEBIN_BASE_URL = "https://bin.ahoneybun.net";
};
}
}

View file

@ -1,13 +1,15 @@
{ config, pkgs, lib, ... }:
{
imports =
[
./hardware-configuration.nix
];
config,
pkgs,
lib,
...
}: {
imports = [
./hardware-configuration.nix
];
boot.kernelParams = [
"console=tty0"
boot.kernelParams = [
"console=tty0"
"clk_ignore_unused"
"pd_ignore_unused"
"arm64.nopauth"
@ -43,10 +45,10 @@
"msm"
# USB (required for installation from USB)
"qcom_q6v5_pas" # This module loads a lot of FW blobs
"qcom_q6v5_pas" # This module loads a lot of FW blobs
"usb_storage"
"uas"
];
];
networking.hostName = "drack";
@ -56,5 +58,4 @@
# Set wifi MAC on X13s
SUBSYSTEM=="net", ACTION=="add", ATTRS{vendor}=="0x17cb", ATTRS{device}=="0x1103", PROGRAM="/usr/share/ubuntu-x13s-settings/set-wifi-mac-addr %k"
'';
}

View file

@ -1,13 +1,14 @@
{ config, pkgs, lib, ... }:
{
imports =
[
./hardware-configuration.nix
];
config,
pkgs,
lib,
...
}: {
imports = [
./hardware-configuration.nix
];
boot.kernelParams = [ "console=tty0" ];
boot.kernelParams = ["console=tty0"];
networking.hostName = "jaal";
}

View file

@ -1,8 +1,11 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}: {
imports = [
(import <mobile-nixos/lib/configuration.nix> { device = "oneplus-fajita"; })
(import <mobile-nixos/lib/configuration.nix> {device = "oneplus-fajita";})
./hardware-configuration.nix
<mobile-nixos/examples/plasma-mobile/plasma-mobile.nix>
];
@ -11,7 +14,7 @@
# boot.kernelPackages = pkgs.linuxPackages_latest;
nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.gc = {
automatic = true;
@ -23,24 +26,24 @@
networking.wireless.enable = false;
networking.networkmanager.enable = true;
networking.hostName = "lexi";
# SSH
services.openssh = {
enable = true;
};
};
# Use PulseAudio
hardware.pulseaudio.enable = true;
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Bluetooth audio
hardware.pulseaudio.package = pkgs.pulseaudioFull;
# Enable power management options
powerManagement.enable = true;
# It's recommended to keep enabled on these constrained devices
zramSwap.enable = true;
@ -50,7 +53,7 @@
};
time.timeZone = "America/Denver";
users.users."aaronh" = {
isNormalUser = true;
description = "Aaron Honeycutt";
@ -63,23 +66,24 @@
"wheel"
];
# GUI
packages = with pkgs; [
portfolio-filemanager
# GUI
packages = with pkgs; [
portfolio-filemanager
# CLI
grim
# CLI
grim
];
};
};
# Remove GNOME packages
environment.gnome.excludePackages = (with pkgs; [
gnome-photos
gnome-tour
]);
environment.gnome.excludePackages = with pkgs; [
gnome-photos
gnome-tour
];
environment.systemPackages = (with pkgs; [
# rest of your packages
]);
environment.systemPackages = with pkgs; [
# rest of your packages
];
system.stateVersion = "23.11";
system.stateVersion = "25.05";
}

View file

@ -1,22 +1,25 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}: {
imports = [
(import <mobile-nixos/lib/configuration.nix> { device = "pine64-pinephone"; })
(import <mobile-nixos/lib/configuration.nix> {device = "pine64-pinephone";})
./hardware-configuration.nix
<mobile-nixos/examples/phosh/phosh.nix>
];
fileSystems."/mnt/ExtraDrive" =
{ device = "/dev/disk/by-uuid/631d2b85-2e0b-4740-8b45-6147cf15193f";
fsType = "ext4";
};
fileSystems."/mnt/ExtraDrive" = {
device = "/dev/disk/by-uuid/631d2b85-2e0b-4740-8b45-6147cf15193f";
fsType = "ext4";
};
# Kernel changes
# boot.kernelPackages = pkgs.linuxPackages_latest;
nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.gc = {
automatic = true;
@ -28,24 +31,24 @@
networking.wireless.enable = false;
networking.networkmanager.enable = true;
networking.hostName = "peebee";
# SSH
services.openssh = {
enable = true;
};
};
# Use PulseAudio
hardware.pulseaudio.enable = true;
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Bluetooth audio
hardware.pulseaudio.package = pkgs.pulseaudioFull;
# Enable power management options
powerManagement.enable = true;
# It's recommended to keep enabled on these constrained devices
zramSwap.enable = true;
@ -55,7 +58,7 @@
};
time.timeZone = "America/Denver";
users.users."aaronh" = {
isNormalUser = true;
description = "Aaron Honeycutt";
@ -68,23 +71,24 @@
"wheel"
];
# GUI
packages = with pkgs; [
portfolio-filemanager
# GUI
packages = with pkgs; [
portfolio-filemanager
# CLI
grim
# CLI
grim
];
};
};
# Remove GNOME packages
environment.gnome.excludePackages = (with pkgs; [
gnome-photos
gnome-tour
]);
environment.gnome.excludePackages = with pkgs; [
gnome-photos
gnome-tour
];
environment.systemPackages = (with pkgs; [
# rest of your packages
]);
environment.systemPackages = with pkgs; [
# rest of your packages
];
system.stateVersion = "23.11";
system.stateVersion = "25.05";
}

View file

@ -1,32 +1,33 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
imports = [
# ./gnome.nix
];
# ./gnome.nix
];
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_rpi4;
initrd.availableKernelModules = [ "xhci_pci" "usbhid" "usb_storage" ];
initrd.availableKernelModules = ["xhci_pci" "usbhid" "usb_storage"];
loader = {
grub.enable = false;
generic-extlinux-compatible.enable = true;
};
};
# boot.kernelPackages = pkgs.linuxPackages_latest;
# boot.kernelPackages = pkgs.linuxPackages_latest;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
options = [ "noatime" ];
options = ["noatime"];
};
};
@ -38,33 +39,31 @@
# Set your time zone.
time.timeZone = "America/Denver";
environment.systemPackages =
with pkgs;
[
git
neofetch
restic
wget
];
environment.systemPackages = with pkgs; [
git
neofetch
restic
wget
];
# Define user accounts
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = [ "wheel" "networkmanager" "adm"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
};
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = ["wheel" "networkmanager" "adm"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
};
# Enable Pipewire
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Turn off PulseAudio
hardware.pulseaudio.enable = false;
@ -76,7 +75,7 @@
# Enable CUPS
services.printing.enable = true;
# Allow Unfree
nixpkgs.config.allowUnfree = true;
@ -87,8 +86,8 @@
buildMachinesFiles = [];
useSubstitutes = true;
};
# System
# System
system.stateVersion = "24.05";
system.autoUpgrade.enable = true;
}

View file

@ -1,13 +1,17 @@
{ config, pkgs, lib, inputs, ... }:
{
config,
pkgs,
lib,
inputs,
...
}: {
imports = [
# ./gnome.nix
# ./gnome.nix
];
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_rpi4;
initrd.availableKernelModules = [ "xhci_pci" "usbhid" "usb_storage" ];
initrd.availableKernelModules = ["xhci_pci" "usbhid" "usb_storage"];
loader = {
grub.enable = false;
@ -15,13 +19,13 @@
};
};
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
options = [ "noatime" ];
options = ["noatime"];
};
};
@ -33,33 +37,31 @@
# Set your time zone.
time.timeZone = "America/Denver";
environment.systemPackages =
with pkgs;
[
git
restic
wget
environment.systemPackages = with pkgs; [
git
restic
wget
inputs.nixpkgs-ahoneybun.packages.${system}.honeyfetch
];
inputs.nixpkgs-ahoneybun.packages.${system}.honeyfetch
];
# Define user accounts
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = [ "wheel" "networkmanager" "adm"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
};
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = ["wheel" "networkmanager" "adm"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
};
# Enable Pipewire
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Turn off PulseAudio
hardware.pulseaudio.enable = false;

View file

@ -11,16 +11,23 @@
nixpkgs-ahoneybun.url = "gitlab:ahoneybun-nix/nixpkgs/main";
};
outputs = inputs@{ self, nixpkgs, home-manager, nixos-hardware, nixpkgs-ahoneybun, ... }: {
outputs = inputs @ {
self,
nixpkgs,
home-manager,
nixos-hardware,
nixpkgs-ahoneybun,
...
}: {
nixosConfigurations = {
"vetra" = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
specialArgs = { inherit inputs; };
specialArgs = {inherit inputs;};
modules = [
nixos-hardware.nixosModules.raspberry-pi-4
nixos-hardware.nixosModules.raspberry-pi-4
./configuration.nix
];
};
};
};
];
};
};
};
}

View file

@ -1,47 +1,50 @@
{ config, pkgs, lib, ... }:
let
{
config,
pkgs,
lib,
...
}: let
SSID = "Honeycutt-5G";
SSIDpassword = "Frappe92";
interface = "wlan0";
hostname = "NixOS";
in {
imports = ["${fetchTarball "https://github.com/NixOS/nixos-hardware/archive/936e4649098d6a5e0762058cb7687be1b2d90550.tar.gz" }/raspberry-pi/4"];
imports = ["${fetchTarball "https://github.com/NixOS/nixos-hardware/archive/936e4649098d6a5e0762058cb7687be1b2d90550.tar.gz"}/raspberry-pi/4"];
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
options = [ "noatime" ];
options = ["noatime"];
};
};
networking = {
hostName = "NixOS";
networkmanager.enable = true;
hostName = "NixOS";
networkmanager.enable = true;
wireless = {
enable = true;
networks."${SSID}".psk = SSIDpassword;
interfaces = [ interface ];
interfaces = [interface];
};
};
# Set your time zone.
time.timeZone = "America/Denver";
environment.systemPackages = with pkgs; [ vim ];
environment.systemPackages = with pkgs; [vim];
services.openssh.enable = true;
# Define user accounts
users.extraUsers.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = [ "wheel" "networkmanager" "adm"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
};
users.extraUsers.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = ["wheel" "networkmanager" "adm"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
};
# Enable GPU acceleration
hardware.raspberry-pi."4".fkms-3d.enable = true;

View file

@ -4,37 +4,45 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/release-23.11";
disko = {
url = github:nix-community/disko;
inputs.nixpkgs.follows = "nixpkgs";
url = github:nix-community/disko;
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, disko, ... }@inputs: {
outputs = {
self,
nixpkgs,
disko,
...
} @ inputs: {
nixosConfigurations = {
"vm" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Note: /etc/nixos/configuration.nix itself is also a Nix Module, so you can import it directly here
# ./configuration.nix
disko.nixosModules.disko
./disko-config.nix
{
_module.args.disks = [ "/dev/vda" ];
}
# ./configuration.nix
disko.nixosModules.disko
./disko-config.nix
{
_module.args.disks = ["/dev/vda"];
}
./hardware-configuration.nix
({config, pkgs, ...}: {
({
config,
pkgs,
...
}: {
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = [ "nix-command" "flakes" ];
settings.experimental-features = ["nix-command" "flakes"];
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
};
boot = {
@ -44,9 +52,8 @@
systemd-boot.enable = true;
systemd-boot.consoleMode = "0";
};
};
networking = {
hostName = "vm";
networkmanager.enable = true;
@ -54,7 +61,7 @@
users.users.aaronh = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ]; # Enable sudo for the user.
extraGroups = ["wheel" "networkmanager"]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
@ -69,7 +76,7 @@
tree
wget
];
services.openssh = {
enable = true;
settings.PermitRootLogin = "no";
@ -85,4 +92,3 @@
};
};
}

View file

@ -1,8 +1,10 @@
{ config, pkgs, ... }:
{
# Add kernel parameters for virtual machines
boot.kernelParams = [ "vfio-pci.ids=8086:9b41" "qxl" "bochs_drm"];
config,
pkgs,
...
}: {
# Add kernel parameters for virtual machines
boot.kernelParams = ["vfio-pci.ids=8086:9b41" "qxl" "bochs_drm"];
networking.hostName = "vm";
networking.hostName = "vm";
}

View file

@ -1,10 +1,13 @@
{ config, pkgs, lib, inputs, ... }:
{
imports =
[
./hardware-configuration.nix
];
config,
pkgs,
lib,
inputs,
...
}: {
imports = [
./hardware-configuration.nix
];
boot.loader = {
systemd-boot.enable = true;
@ -15,26 +18,26 @@
# Change the UUID for the new RAID setup
boot.swraid = {
enable = true;
mdadmConf = ''
ARRAY /dev/md/edi:DATA metadata=1.2 UUID=f0384881:84c12f70:3dcad802:653ccc30
MAILADDR root
'';
enable = true;
mdadmConf = ''
ARRAY /dev/md/edi:DATA metadata=1.2 UUID=f0384881:84c12f70:3dcad802:653ccc30
MAILADDR root
'';
};
boot.kernelParams = [ "console=tty0" ];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
boot.kernelParams = ["console=tty0"];
boot.binfmt.emulatedSystems = ["aarch64-linux"];
fileSystems = {
"/mnt/DATA" = {
device = "/dev/md127";
};
"/mnt/DATA" = {
device = "/dev/md127";
};
};
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
extra-platforms = [ "aarch64-linux" ];
trusted-users = [ "aaronh" ];
experimental-features = ["nix-command" "flakes"];
extra-platforms = ["aarch64-linux"];
trusted-users = ["aaronh"];
};
nix.gc = {
@ -52,7 +55,7 @@
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = [ "wheel" "networkmanager" "adm" "video" "docker" ];
extraGroups = ["wheel" "networkmanager" "adm" "video" "docker"];
isNormalUser = true;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
openssh.authorizedKeys.keys = [
@ -68,21 +71,19 @@
};
# Install some packages
environment.systemPackages =
with pkgs;
[
bottom
busybox
cloudflared
docker
docker-compose
ffmpeg-full
git
git-lfs
helix
restic
zola
];
environment.systemPackages = with pkgs; [
bottom
busybox
cloudflared
docker
docker-compose
ffmpeg-full
git
git-lfs
helix
restic
zola
];
hardware.graphics = {
enable = true;
@ -94,7 +95,7 @@
# 8384 = Syncthing
# 9999 = crab-hole
# 25565 = Minecraft
allowedTCPPorts = [ 80 443 2342 5000 8384 9000 9091 9999 25565 ];
allowedTCPPorts = [80 443 2342 5000 8384 9000 9091 9999 25565];
};
nixpkgs.config.permittedInsecurePackages = [
@ -109,8 +110,7 @@
services.tailscale.enable = true;
# System
# System
system.stateVersion = "25.05";
system.autoUpgrade.enable = true;
}

View file

@ -1,16 +1,18 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
# Latest kernel needed for best support
#boot.kernelPackages = pkgs.linuxPackages_6_15;
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelModules = [ "sg" ]; # sg is for makemkv
boot.kernelModules = ["sg"]; # sg is for makemkv
# Name your host machine
networking.hostName = "garrus";
networking.hostName = "garrus";
hardware.system76.enableAll = true;
environment.systemPackages = with pkgs; [
system76-keyboard-configurator
firmware-manager
@ -19,6 +21,6 @@
protonvpn-gui
gimp
];
services.tailscale.enable = true;
}

View file

@ -1,20 +1,22 @@
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
# ./unstable.nix
./ahoneybun-net.nix
./tildecafe-com.nix
./rockymtnlug-org.nix
];
config,
pkgs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
# ./unstable.nix
./ahoneybun-net.nix
./tildecafe-com.nix
./rockymtnlug-org.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [ "console=ttyS0,19200n8" ];
boot.kernelParams = ["console=ttyS0,19200n8"];
nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.gc = {
automatic = true;
@ -35,17 +37,16 @@
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 443 ];
allowedTCPPorts = [80 443];
};
networking.extraHosts =
''
23.32.241.51 r3.o.lencr.org
'';
networking.extraHosts = ''
23.32.241.51 r3.o.lencr.org
'';
security.acme.acceptTerms = true;
security.acme.defaults.email = "aaronhoneycutt@proton.me";
networking.hostName = "harbinger";
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
@ -71,7 +72,7 @@
# Define a user account. Don't forget to set a password with passwd.
users.users.aaronh = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ]; # Enable sudo for the user.
extraGroups = ["wheel" "networkmanager"]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
@ -87,7 +88,7 @@
mtr
neofetch
rubyPackages.webrick
rubyPackages.jekyll-feed
rubyPackages.jekyll-feed
rubyPackages.jekyll-redirect-from
sysstat
tree
@ -125,5 +126,4 @@
# system.copySystemConfiguration = true;
system.stateVersion = "22.11"; # Did you read the comment?
}

View file

@ -1,23 +1,25 @@
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
# ./unstable.nix
./ahoneybun-net.nix
./mc-ahoneybun-net.nix
# ./nextcloud.nix
./tildecafe-com.nix
./rockymtnlug-org.nix
# ./chat-rockymtnlug-org.nix
];
config,
pkgs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
# ./unstable.nix
./ahoneybun-net.nix
./mc-ahoneybun-net.nix
# ./nextcloud.nix
./tildecafe-com.nix
./rockymtnlug-org.nix
# ./chat-rockymtnlug-org.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [ "console=ttyS0,19200n8" ];
boot.kernelParams = ["console=ttyS0,19200n8"];
nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.gc = {
automatic = true;
@ -37,17 +39,16 @@
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 443 ];
allowedTCPPorts = [80 443];
};
networking.extraHosts =
''
23.32.241.51 r3.o.lencr.org
'';
networking.extraHosts = ''
23.32.241.51 r3.o.lencr.org
'';
security.acme.acceptTerms = true;
security.acme.defaults.email = "aaronhoneycutt@proton.me";
networking.hostName = "harbinger";
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
@ -73,7 +74,7 @@
# Define a user account. Don't forget to set a password with passwd.
users.users.aaronh = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ]; # Enable sudo for the user.
extraGroups = ["wheel" "networkmanager"]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
@ -120,4 +121,3 @@
system.stateVersion = "22.11"; # Did you read the comment?
system.autoUpgrade.enable = true;
}

View file

@ -5,92 +5,99 @@
nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
};
outputs = { self, nixpkgs, ... }@inputs: {
outputs = {
self,
nixpkgs,
...
} @ inputs: {
nixosConfigurations = {
"harbinger" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Note: /etc/nixos/configuration.nix itself is also a Nix Module, so you can import it directly here
# ./configuration.nix
# ./configuration.nix
./hardware-configuration.nix
./ahoneybun-net.nix
./tildecafe-com.nix
./rockymtnlug-org.nix
({config, pkgs, ...}: {
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = [ "nix-command" "flakes" ];
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
};
({
config,
pkgs,
...
}: {
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = ["nix-command" "flakes"];
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [ "console=ttyS0,1920n8" ];
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
};
loader.grub.enable = true;
loader.grub.extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial;
terminal_output serial
'';
loader.grub.device = "nodev"; # or "nodev" for efi only
loader.timeout = 10;
};
networking = {
hostName = "harbinger";
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = ["console=ttyS0,1920n8"];
firewall = {
enable = true;
allowedTCPPorts = [ 80 443 ];
};
usePredictableInterfaceNames = false;
useDHCP = false;
interfaces.eth0.useDHCP = true;
loader.grub.enable = true;
loader.grub.extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial;
terminal_output serial
'';
loader.grub.device = "nodev"; # or "nodev" for efi only
loader.timeout = 10;
};
};
networking = {
hostName = "harbinger";
users.users.aaronh = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
git-lfs
];
};
firewall = {
enable = true;
allowedTCPPorts = [80 443];
};
environment.systemPackages = with pkgs; [
acme-sh
usePredictableInterfaceNames = false;
useDHCP = false;
interfaces.eth0.useDHCP = true;
};
users.users.aaronh = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager"]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
git-lfs
mtr
neofetch
sysstat
tree
wget
];
];
};
security.acme.acceptTerms = true;
security.acme.defaults.email = "aaronhoneycutt@proton.me";
services.openssh = {
enable = true;
settings.PermitRootLogin = "no";
};
environment.systemPackages = with pkgs; [
acme-sh
git
git-lfs
mtr
neofetch
sysstat
tree
wget
];
system = {
stateVersion = "23.05";
autoUpgrade.enable = true;
};
security.acme.acceptTerms = true;
security.acme.defaults.email = "aaronhoneycutt@proton.me";
services.openssh = {
enable = true;
settings.PermitRootLogin = "no";
};
system = {
stateVersion = "23.05";
autoUpgrade.enable = true;
};
})
];
};

View file

@ -5,21 +5,29 @@
nixpkgs.url = "github:NixOS/nixpkgs/release-23.11";
};
outputs = { self, nixpkgs, ... }@inputs: {
outputs = {
self,
nixpkgs,
...
} @ inputs: {
nixosConfigurations = {
"thelio-b1" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Note: /etc/nixos/configuration.nix itself is also a Nix Module, so you can import it directly here
# ./configuration.nix
# ./configuration.nix
./hardware-configuration.nix
({config, pkgs, ...}: {
({
config,
pkgs,
...
}: {
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = [ "nix-command" "flakes" ];
settings.experimental-features = ["nix-command" "flakes"];
gc = {
automatic = true;
dates = "weekly";
@ -27,23 +35,23 @@
};
};
nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowUnfree = true;
boot = {
initrd.luks.devices = {
root = {
device = "/dev/nvme0n1p2";
preLVM = true;
root = {
device = "/dev/nvme0n1p2";
preLVM = true;
};
};
# kernelPackages = pkgs.linuxPackages_latest;
# kernelParams = [ "console=ttyS0,1920n8" ];
loader.systemd-boot.enable = true;
loader.systemd-boot.consoleMode = "0";
};
networking = {
hostName = "thelio-b1";
networkmanager.enable = true;
@ -54,7 +62,7 @@
home = "/home/aaronh";
isNormalUser = true;
shell = pkgs.fish;
extraGroups = [ "wheel" "networkmanager" ]; # Enable sudo for the user.
extraGroups = ["wheel" "networkmanager"]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
@ -64,7 +72,7 @@
restic
roboto-slab
rustc
# GUI
signal-desktop
youtube-music
@ -85,7 +93,7 @@
tree
unzip
wget
gnome.dconf-editor
];
@ -97,20 +105,20 @@
};
# Remove GNOME packages
environment.gnome.excludePackages = (with pkgs; [
environment.gnome.excludePackages = with pkgs; [
epiphany # web browser
gnome.geary
gnome.gnome-software
gnome-connections
gnome-photos
gnome-tour
]);
];
# Services
services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
services.udev.packages = with pkgs; [gnome.gnome-settings-daemon];
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
@ -124,13 +132,13 @@
printing.enable = true;
openssh.enable = true;
};
services.avahi = {
enable = true;
nssmdns = true;
openFirewall = true;
};
system = {
stateVersion = "23.11";
autoUpgrade.enable = true;

View file

@ -1,10 +1,12 @@
{ config, pkgs, ... }:
{
boot.kernelModules = [ "wl" ];
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
boot.blacklistedKernelModules = [ "b43" "bcma" ];
config,
pkgs,
...
}: {
boot.kernelModules = ["wl"];
boot.extraModulePackages = [config.boot.kernelPackages.broadcom_sta];
boot.blacklistedKernelModules = ["b43" "bcma"];
# Name your host machine
networking.hostName = "macbook";
# Name your host machine
networking.hostName = "macbook";
}

View file

@ -1,10 +1,12 @@
{ config, pkgs, ... }:
{
# Name your host machine
networking.hostName = "pixel-slate";
config,
pkgs,
...
}: {
# Name your host machine
networking.hostName = "pixel-slate";
# Enable Lomiri since this is a tablet
services.desktopManager.lomiri.enable = true;
services.displayManager.defaultSession = "lomiri";
}
# Enable Lomiri since this is a tablet
services.desktopManager.lomiri.enable = true;
services.displayManager.defaultSession = "lomiri";
}

View file

@ -1,25 +1,25 @@
{ config, pkgs, ... }:
{
# Name your host machine
networking.hostName = "shepard";
config,
pkgs,
...
}: {
# Name your host machine
networking.hostName = "shepard";
# Enable binfmt emulation of aarch64-linux.
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
# Enable binfmt emulation of aarch64-linux.
boot.binfmt.emulatedSystems = ["aarch64-linux"];
# Allow Unfree
nixpkgs.config.allowUnfree = true;
# Allow Unfree
nixpkgs.config.allowUnfree = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfer0s
};
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfer0s
};
environment.systemPackages =
with pkgs;
[
hello
];
environment.systemPackages = with pkgs; [
hello
];
}

View file

@ -2,128 +2,136 @@
description = "Shepard";
inputs = {
# nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
# nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
};
outputs = { self, nixpkgs-unstable, nixos-hardware, ... }@inputs: {
outputs = {
self,
nixpkgs-unstable,
nixos-hardware,
...
} @ inputs: {
nixosConfigurations = {
"shepard" = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
specialArgs = {inherit inputs;};
modules = [
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Note: /etc/nixos/configuration.nix itself is also a Nix Module, so you can import it directly here
# nixos-hardware.nixosModules.raspberry-pi-4
# ./configuration.nix
# nixos-hardware.nixosModules.raspberry-pi-4
# ./configuration.nix
./hardware-configuration.nix
./gnome.nix
({config, pkgs, ...}: {
({
config,
pkgs,
...
}: {
# Latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
# Latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader = {
systemd-boot.enable = true;
systemd-boot.consoleMode = "0";
};
boot.loader = {
systemd-boot.enable = true;
systemd-boot.consoleMode = "0";
};
boot.initrd.luks.devices = {
root = {
boot.initrd.luks.devices = {
root = {
device = "/dev/nvme1n1p2";
preLVM = true;
};
};
preLVM = true;
};
};
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = [ "nix-command" "flakes" ];
gc = {
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = ["nix-command" "flakes"];
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
};
};
};
networking = {
hostName = "shepard";
networkmanager.enable = true;
};
networking = {
hostName = "shepard";
networkmanager.enable = true;
};
time.timeZone = "America/Denver";
time.timeZone = "America/Denver";
# Stable
environment.systemPackages = with pkgs; [
avahi
cargo
cosmic-edit
dmidecode
fire
firefox
fish
git
git-lfs
libcamera
lshw
roboto-slab
neofetch
restic
unzip
wget
xz
];
# Stable
environment.systemPackages = with pkgs; [
avahi
cargo
cosmic-edit
dmidecode
fire
firefox
fish
git
git-lfs
libcamera
lshw
roboto-slab
neofetch
restic
unzip
wget
xz
];
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = [ "wheel" "networkmanager" "adm" ];
isNormalUser = true;
shell = pkgs.fish;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = ["wheel" "networkmanager" "adm"];
isNormalUser = true;
shell = pkgs.fish;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
packages = with pkgs; [
packages = with pkgs; [
signal-desktop
youtube-music
];
};
];
};
programs.fish.enable = true;
programs.fish.enable = true;
# Enable Pipewire
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Turn off PulseAudio
hardware.pulseaudio.enable = false;
# Enable Pipewire
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Turn off PulseAudio
hardware.pulseaudio.enable = false;
# Enable SSH
services.openssh.enable = true;
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Enable CUPS
services.printing.enable = true;
# Enable SSH
services.openssh.enable = true;
# Allow Unfree
nixpkgs.config.allowUnfree = true;
# Enable CUPS
services.printing.enable = true;
# System
system = {
stateVersion = "23.11";
autoUpgrade.enable = true;
};
})
];
};
};
};
# Allow Unfree
nixpkgs.config.allowUnfree = true;
# System
system = {
stateVersion = "23.11";
autoUpgrade.enable = true;
};
})
];
};
};
};
}

View file

@ -1,31 +1,37 @@
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
# ./unstable.nix
./stoners-space.nix
];
config,
pkgs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
# ./unstable.nix
./stoners-space.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [ "console=ttyS0,19200n8" ];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
boot.kernelParams = ["console=ttyS0,19200n8"];
nix.settings.extra-platforms = [ "aarch64-linux" ];
boot.binfmt.emulatedSystems = ["aarch64-linux"];
nix.settings.extra-platforms = ["aarch64-linux"];
nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.buildMachines = [{
hostName = "localhost";
systems = ["x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"];
supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"];
maxJobs = 8;
}];
nix.buildMachines = [
{
hostName = "localhost";
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"];
maxJobs = 8;
}
];
nix.gc = {
automatic = true;
@ -45,13 +51,12 @@
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 443 ];
allowedTCPPorts = [80 443];
};
networking.extraHosts =
''
23.32.241.51 r3.o.lencr.org
'';
networking.extraHosts = ''
23.32.241.51 r3.o.lencr.org
'';
# fileSystems."/mnt/swapfile" =
# { device = "/dev/disk/by-uuid/82672991-fe8a-485a-8dcf-7c8ae1282b6c";
@ -67,7 +72,7 @@
security.acme.acceptTerms = true;
security.acme.defaults.email = "aaronhoneycutt@proton.me";
networking.hostName = "sovereign";
# Set your time zone.
@ -80,7 +85,7 @@
# Define a user account. Don't forget to set a password with passwd.
users.users.aaronh = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ]; # Enable sudo for the user.
extraGroups = ["wheel" "networkmanager"]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
@ -90,9 +95,9 @@
users.users.builder = {
isNormalUser = true;
extraGroups = [ "wheel" ];
extraGroups = ["wheel"];
packages = with pkgs; [
neofetch
neofetch
];
};
@ -120,4 +125,3 @@
system.stateVersion = "22.11"; # Did you read the comment?
system.autoUpgrade.enable = true;
}

View file

@ -5,104 +5,114 @@
nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
};
outputs = { self, nixpkgs, ... }@inputs: {
outputs = {
self,
nixpkgs,
...
} @ inputs: {
nixosConfigurations = {
"sovereign" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Note: /etc/nixos/configuration.nix itself is also a Nix Module, so you can import it directly here
# ./configuration.nix
# ./configuration.nix
./hardware-configuration.nix
./stoners-space.nix
({config, pkgs, ...}: {
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = [ "nix-command" "flakes" ];
settings.extra-platforms = [ "aarch64-linux" ];
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
({
config,
pkgs,
...
}: {
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = ["nix-command" "flakes"];
settings.extra-platforms = ["aarch64-linux"];
buildMachines = [{
hostName = "localhost";
systems = [ "x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin" ];
supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ];
maxJobs = 8;
}];
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
};
buildMachines = [
{
hostName = "localhost";
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"];
maxJobs = 8;
}
];
};
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [ "console=ttyS0,1920n8" ];
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = ["console=ttyS0,1920n8"];
binfmt.emulatedSystems = [ "aarch64-linux" ];
binfmt.emulatedSystems = ["aarch64-linux"];
loader.grub.enable = true;
loader.grub.extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial;
terminal_output serial
'';
loader.grub.device = "nodev"; # or "nodev" for efi only
loader.timeout = 10;
};
networking = {
hostName = "sovereign";
loader.grub.enable = true;
loader.grub.extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial;
terminal_output serial
'';
loader.grub.device = "nodev"; # or "nodev" for efi only
loader.timeout = 10;
};
firewall = {
enable = true;
allowedTCPPorts = [ 80 443 ];
};
usePredictableInterfaceNames = false;
useDHCP = false;
interfaces.eth0.useDHCP = true;
networking = {
hostName = "sovereign";
};
firewall = {
enable = true;
allowedTCPPorts = [80 443];
};
users.users.aaronh = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
git-lfs
];
};
usePredictableInterfaceNames = false;
useDHCP = false;
interfaces.eth0.useDHCP = true;
};
environment.systemPackages = with pkgs; [
acme-sh
users.users.aaronh = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager"]; # Enable sudo for the user.
packages = with pkgs; [
cargo
git
git-lfs
mtr
neofetch
sysstat
tree
wget
];
];
};
security.acme.acceptTerms = true;
security.acme.defaults.email = "aaronhoneycutt@proton.me";
services.openssh = {
enable = true;
settings.PermitRootLogin = "no";
};
environment.systemPackages = with pkgs; [
acme-sh
git
git-lfs
mtr
neofetch
sysstat
tree
wget
];
system = {
stateVersion = "23.05";
autoUpgrade.enable = true;
};
security.acme.acceptTerms = true;
security.acme.defaults.email = "aaronhoneycutt@proton.me";
services.openssh = {
enable = true;
settings.PermitRootLogin = "no";
};
system = {
stateVersion = "23.05";
autoUpgrade.enable = true;
};
})
];
};

View file

@ -1,8 +1,10 @@
{ config, pkgs, ... }:
{
# Add kernel parameters for virtual machines
boot.kernelParams = [ "vfio-pci.ids=8086:9b41" "qxl" "bochs_drm"];
config,
pkgs,
...
}: {
# Add kernel parameters for virtual machines
boot.kernelParams = ["vfio-pci.ids=8086:9b41" "qxl" "bochs_drm"];
networking.hostName = "vm";
networking.hostName = "vm";
}

View file

@ -14,7 +14,7 @@
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
mountOptions = ["umask=0077"];
};
};
luks = {
@ -31,19 +31,19 @@
#additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
content = {
type = "btrfs";
extraArgs = [ "-f" ];
extraArgs = ["-f"];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [ "compress=zstd:10" "noatime" "commit=120"];
mountOptions = ["compress=zstd:10" "noatime" "commit=120"];
};
"/home" = {
mountpoint = "/home";
mountOptions = [ "compress=zstd:10" "noatime" "commit=120"];
mountOptions = ["compress=zstd:10" "noatime" "commit=120"];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [ "compress=zstd:10" "noatime" "commit=120"];
mountOptions = ["compress=zstd:10" "noatime" "commit=120"];
};
};
};

View file

@ -14,7 +14,7 @@
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
mountOptions = ["umask=0077"];
};
};
luks = {
@ -22,7 +22,7 @@
content = {
type = "luks";
name = "crypted";
extraOpenArgs = [ ];
extraOpenArgs = [];
settings = {
# if you want to use the key for interactive login be sure there is no trailing newline
# for example use `echo -n "password" > /tmp/secret.key`

View file

@ -14,7 +14,7 @@
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
mountOptions = ["umask=0077"];
};
};
root = {

View file

@ -1,30 +1,31 @@
{ pkgs, lib }:
{
pkgs,
lib,
}:
# Thanks to Aires!
# https://aires.fyi/blog/installing-a-custom-package-with-nix/
pkgs.stdenv.mkDerivation rec {
pname = "backrest";
version = "v0.11.0";
pname = "backrest";
version = "v0.11.0";
src = builtins.fetchurl {
url = "https://github.com/garethgeorge/backrest/releases/download/v0.11.0/backrest_Linux_x86_64.tar.gz";
sha256 = "fd6c05339b6855f0acad001c2243d871f4621def04cef9eb3b452110fe175d49";
};
src = builtins.fetchurl {
url = "https://github.com/garethgeorge/backrest/releases/download/v0.11.0/backrest_Linux_x86_64.tar.gz";
sha256 = "fd6c05339b6855f0acad001c2243d871f4621def04cef9eb3b452110fe175d49";
};
doCheck = false;
doCheck = false;
dontUnpack = true;
dontUnpack = true;
installPhase = ''
tar -xf backrest_Darwin_x86_64.tar.gz
install -D $src $out/backrest
chmod a+x $out/backrest
'';
installPhase = ''
tar -xf backrest_Darwin_x86_64.tar.gz
install -D $src $out/backrest
chmod a+x $out/backrest
'';
meta = with lib; {
homepage = "https://github.com/garethgeorge/backrest";
description = "Backrest is a web UI and orchestrator for restic backup.";
platforms = platforms.linux ++ platforms.darwin;
};
meta = with lib; {
homepage = "https://github.com/garethgeorge/backrest";
description = "Backrest is a web UI and orchestrator for restic backup.";
platforms = platforms.linux ++ platforms.darwin;
};
}

View file

@ -1,11 +1,11 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
appimage-run
openal
];
shellHook = ''
export LD_LIBRARY_PATH="${pkgs.openal}/lib:$LD_LIBRARY_PATH"
appimage-run Beyond-All-Reason-1.2988.0.AppImage
'';
{pkgs ? import <nixpkgs> {}}:
pkgs.mkShell {
buildInputs = with pkgs; [
appimage-run
openal
];
shellHook = ''
export LD_LIBRARY_PATH="${pkgs.openal}/lib:$LD_LIBRARY_PATH"
appimage-run Beyond-All-Reason-1.2988.0.AppImage
'';
}

View file

@ -1,7 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
home.username = "aaron";
home.homeDirectory = "/home/aaron";
home.stateVersion = "25.05";
@ -39,32 +40,32 @@
userName = "Aaron Honeycutt";
userEmail = "aaronhoneycutt@protonmail.com";
aliases = {
undo = "rebase -i HEAD~2";
amend = "commit -a --amend";
undo = "rebase -i HEAD~2";
amend = "commit -a --amend";
};
extraConfig = {
core.editor = "hx";
color = {
ui = "auto";
ui = "auto";
};
color.status = {
added = "green bold";
changed = "yellow bold";
untracked = "red bold";
added = "green bold";
changed = "yellow bold";
untracked = "red bold";
};
push = {
autoSetupRemote = "true";
autoSetupRemote = "true";
};
init = {
defaultBranch = "main";
defaultBranch = "main";
};
};
};
programs.helix = {
enable = true;
settings = {
theme = "ferra";
settings = {
theme = "ferra";
};
};
@ -75,5 +76,4 @@
# Let Home Manager install and manage itself.
programs.home-manager.enable = false;
}

View file

@ -1,17 +1,18 @@
{ config, pkgs, ... }:
{
services.nginx = {
enable = true;
virtualHosts = {
config,
pkgs,
...
}: {
services.nginx = {
enable = true;
virtualHosts = {
"ahoneybun.net" = {
forceSSL = true;
enableACME = true;
locations."/" = {
root = "/var/www/ahoneybun-net/_site";
};
};
};
};
forceSSL = true;
enableACME = true;
locations."/" = {
root = "/var/www/ahoneybun-net/_site";
};
};
};
};
}

View file

@ -1,28 +1,28 @@
{config, pkgs, ...}:
{
services.nextcloud = {
enable = true;
package = pkgs.nextcloud25;
extraApps = with pkgs.nextcloud25Packages.apps; {
inherit mail news contacts;
config,
pkgs,
...
}: {
services.nextcloud = {
enable = true;
package = pkgs.nextcloud25;
extraApps = with pkgs.nextcloud25Packages.apps; {
inherit mail news contacts;
};
extraAppsEnable = true;
config = {
# config.adminpassFile = "${pkgs.writeText "adminpass" "test123"}";
# adminpassFile = "${pkgs.writeText "adminpass" "test123"}";
adminpassFile = "/var/nextcloud-admin-pass";
adminuser = "admin";
defaultPhoneRegion = "US";
};
hostName = "cloud.ahoneybun.net";
https = true;
};
extraAppsEnable = true;
config = {
# config.adminpassFile = "${pkgs.writeText "adminpass" "test123"}";
# adminpassFile = "${pkgs.writeText "adminpass" "test123"}";
adminpassFile = "/var/nextcloud-admin-pass";
adminuser = "admin";
defaultPhoneRegion = "US";
services.nginx.virtualHosts.${config.services.nextcloud.hostName} = {
forceSSL = true;
enableACME = true;
};
hostName = "cloud.ahoneybun.net";
https = true;
};
services.nginx.virtualHosts.${config.services.nextcloud.hostName} = {
forceSSL = true;
enableACME = true;
};
}

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
security.acme.acceptTerms = true;
security.acme.defaults.email = "aaronhoneycutt@proton.me";
@ -13,39 +15,38 @@
virtualHosts = {
"hydra.ahoneybun.net" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:3000";
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:3000";
extraConfig = ''
etag on;
gzip on;
extraConfig = ''
etag on;
gzip on;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always;
add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' alway>
if ($request_method = OPTIONS) {
return 204;
}
add_header X-XSS-Protection "1; mode=block";
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header Referrer-Policy same-origin;
add_header X-Download-Options noopen;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always;
add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' alway>
if ($request_method = OPTIONS) {
return 204;
}
add_header X-XSS-Protection "1; mode=block";
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header Referrer-Policy same-origin;
add_header X-Download-Options noopen;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
client_max_body_size 16m;
# NOTE: increase if users need to upload very big files
'';
client_max_body_size 16m;
# NOTE: increase if users need to upload very big files
'';
};
};
};
};
}

View file

@ -1,31 +1,34 @@
{ config, pkgs, ... }: {
services.nginx = {
enable = true;
virtualHosts."127.0.0.1" = {
root = "/var/www/html";
locations."~ \.php$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools.mypool.socket};
fastcgi_index index.php;
'';
{
config,
pkgs,
...
}: {
services.nginx = {
enable = true;
virtualHosts."127.0.0.1" = {
root = "/var/www/html";
locations."~ \.php$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools.mypool.socket};
fastcgi_index index.php;
'';
};
};
};
services.mysql = {
enable = true;
package = pkgs.mariadb;
};
services.mysql = {
enable = true;
package = pkgs.mariadb;
};
services.phpfpm.pools.mypool = {
user = "nobody";
settings = {
pm = "dynamic";
"listen.owner" = config.services.nginx.user;
"pm.max_children" = 5;
"pm.start_servers" = 2;
"pm.min_spare_servers" = 1;
"pm.max_spare_servers" = 3;
"pm.max_requests" = 500;
};
};
services.phpfpm.pools.mypool = {
user = "nobody";
settings = {
pm = "dynamic";
"listen.owner" = config.services.nginx.user;
"pm.max_children" = 5;
"pm.start_servers" = 2;
"pm.min_spare_servers" = 1;
"pm.max_spare_servers" = 3;
"pm.max_requests" = 500;
};
};
}

View file

@ -1,29 +1,31 @@
{ config, pkgs, ... }:
{
services.minecraft-server = {
enable = true;
eula = true;
openFirewall = true;
declarative = true;
config,
pkgs,
...
}: {
services.minecraft-server = {
enable = true;
eula = true;
openFirewall = true;
declarative = true;
# see here for more info: https://minecraft.gamepedia.com/Server.properties#server.properties
serverProperties = {
server-port = 25565;
gamemode = "survival";
motd = "NixOS Minecraft server";
max-players = 5;
enable-rcon = true;
enable-query = true;
# This password can be used to administer your minecraft server.
# Exact details as to how will be explained later. If you want
# you can replace this with another password.
# rcon.password = "hunter2";
# query.port = 25565;
level-seed = "10292992";
};
serverProperties = {
server-port = 25565;
gamemode = "survival";
motd = "NixOS Minecraft server";
max-players = 5;
enable-rcon = true;
enable-query = true;
# This password can be used to administer your minecraft server.
# Exact details as to how will be explained later. If you want
# you can replace this with another password.
# rcon.password = "hunter2";
# query.port = 25565;
level-seed = "10292992";
};
};
# enable closed source packages such as the minecraft server
nixpkgs.config.allowUnfree = true;
# enable closed source packages such as the minecraft server
nixpkgs.config.allowUnfree = true;
}

View file

@ -1,5 +1,10 @@
virtualHosts = {
"cast.ahoneybun.net" = {
{
config,
pkgs,
...
}: {
virtualHosts = {
"cast.ahoneybun.net" = {
forceSSL = true;
enableACME = true;
locations."/" = {
@ -17,6 +22,7 @@
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
'';
};
};
};
};
}

View file

@ -1,17 +1,18 @@
{ config, pkgs, ... }:
{
services.nginx = {
enable = true;
virtualHosts = {
config,
pkgs,
...
}: {
services.nginx = {
enable = true;
virtualHosts = {
"rockymountainlinuxfest.org" = {
forceSSL = true;
enableACME = true;
locations."/" = {
root = "/var/www/RMFest-website";
};
};
};
};
forceSSL = true;
enableACME = true;
locations."/" = {
root = "/var/www/RMFest-website";
};
};
};
};
}

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
services.mastodon = {
enable = true;
localDomain = "stoners.space"; # Replace with your own domain
@ -10,7 +12,6 @@
services.postgresqlBackup = {
enable = true;
databases = [ "mastodon" ];
databases = ["mastodon"];
};
}

View file

@ -1,17 +1,18 @@
{ config, pkgs, ... }:
{
services.nginx = {
enable = true;
virtualHosts = {
config,
pkgs,
...
}: {
services.nginx = {
enable = true;
virtualHosts = {
"tildecafe.com" = {
forceSSL = true;
enableACME = true;
locations."/" = {
root = "/var/www/tildecafe";
};
};
};
};
forceSSL = true;
enableACME = true;
locations."/" = {
root = "/var/www/tildecafe";
};
};
};
};
}