Compare commits
4 commits
1de15c45f2
...
726111079e
| Author | SHA1 | Date | |
|---|---|---|---|
| 726111079e | |||
| 16ddee5aca | |||
| b2f9db3148 | |||
| d7850a7acc |
16 changed files with 237 additions and 363 deletions
97
deploy
97
deploy
|
|
@ -1,97 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# TODO: use `nixos-rebuild build-vm`
|
||||
|
||||
usage="Usage: $(basename $0) [OPTIONS]
|
||||
|
||||
Options:
|
||||
-f, --fresh Remove old content in the nixstore (good for debugging)
|
||||
-b, --bootloader Reinstall the bootloader
|
||||
-r, --remote Locally build and remotely deploy Colmena hive
|
||||
--show-trace Show nix stack trace on error
|
||||
-h, --help Show this message (^_^)"
|
||||
|
||||
# delete all cached entries
|
||||
# to make the system from scratch
|
||||
collect_garbage () {
|
||||
sudo nix-collect-garbage --delete-old
|
||||
}
|
||||
|
||||
rebuild_flake () {
|
||||
# make sure all changes are visible to nixos
|
||||
# (--intent-to-add tracks files but DOES NOT stage them)
|
||||
git add . --intent-to-add --verbose
|
||||
local FLAGS=
|
||||
if [ "$1" = "reinstall-bootloader" ]; then
|
||||
FLAGS="--install-bootloader"
|
||||
# sudo nixos-rebuild switch --flake . --install-bootloader
|
||||
# STC_DISPLAY_ALL_UNITS=1 (verbose, show output of all units)
|
||||
fi
|
||||
|
||||
# LOG="$(mktemp /tmp/rebuild-XXXXXXXX)"
|
||||
LOG="./rebuild.log"
|
||||
echo "[*] Logging to $LOG"
|
||||
sudo nixos-rebuild switch --flake . $FLAGS $EXTRA_FLAGS 2>&1 | tee "$LOG"
|
||||
#nixos-rebuild build --flake .# --cores 8 -j 1
|
||||
}
|
||||
|
||||
deploy_hive () {
|
||||
echo "[+] Adding keys to ssh-agent"
|
||||
ssh-add ~/.ssh/id_hyrule
|
||||
printf "\n"
|
||||
|
||||
git add . --verbose
|
||||
# Deploy to all Colmena hives
|
||||
colmena build --experimental-flake-eval $EXTRA_FLAGS
|
||||
colmena apply --experimental-flake-eval $EXTRA_FLAGS
|
||||
# colmena apply --on hyrule --experimental-flake-eval
|
||||
}
|
||||
|
||||
# check which flags were given
|
||||
flag_fresh=false
|
||||
flag_bootloader=false
|
||||
flag_remote=false
|
||||
flag_trace=false
|
||||
for flag in "$@"; do
|
||||
case "$flag" in
|
||||
-r|--remote)
|
||||
flag_remote=true ;;
|
||||
--show-trace)
|
||||
flag_trace=true ;;
|
||||
-f|--fresh)
|
||||
flag_fresh=true ;;
|
||||
-b|--bootloader)
|
||||
flag_bootloader=true ;;
|
||||
-h|--help)
|
||||
echo "$usage"
|
||||
exit 0 ;;
|
||||
*)
|
||||
echo "[!] Unknown flag \"$flag\""
|
||||
exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
EXTRA_FLAGS=""
|
||||
if [ "$flag_trace" = true ]; then
|
||||
EXTRA_FLAGS="$EXTRA_FLAGS --show-trace"
|
||||
fi
|
||||
|
||||
if [ "$flag_remote" = true ]; then
|
||||
deploy_hive
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# delete cached items in nixstore
|
||||
if [ "$flag_fresh" = true ]; then
|
||||
collect_garbage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# nixos-rebuild switch ...
|
||||
if [ "$flag_bootloader" = true ]; then
|
||||
collect_garbage
|
||||
rebuild_flake "reinstall-bootloader"
|
||||
else
|
||||
rebuild_flake
|
||||
fi
|
||||
194
flake.lock
generated
194
flake.lock
generated
|
|
@ -3,21 +3,22 @@
|
|||
"cerulean": {
|
||||
"inputs": {
|
||||
"deploy-rs": "deploy-rs",
|
||||
"mix": "mix",
|
||||
"nib": "nib",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-unstable": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"nt": [
|
||||
"nt"
|
||||
],
|
||||
"systems": [
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770552327,
|
||||
"narHash": "sha256-cVVPdC650MRP4tMSB9EcECUpc0U4HWSZzoQnpEHH0uE=",
|
||||
"lastModified": 1770594166,
|
||||
"narHash": "sha256-ijsAdvC9/0873gCkqNpTjUDl+Gk8oKovgvpnnQfA+/A=",
|
||||
"path": "/home/me/agribit/nexus/Cerulean",
|
||||
"type": "path"
|
||||
},
|
||||
|
|
@ -120,6 +121,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nt",
|
||||
"nix-unit",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762440070,
|
||||
"narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"grub2-themes": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -140,45 +163,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mix": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nib": [
|
||||
"cerulean",
|
||||
"nib"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768525804,
|
||||
"narHash": "sha256-jlpNb7Utqfdq2HESAB1mtddWHOsxKlTjPiLFRLd35r8=",
|
||||
"owner": "emilelcb",
|
||||
"repo": "mix",
|
||||
"rev": "617d8915a6518a3d4e375b87c50ae34d9daee6c6",
|
||||
"lastModified": 1763992789,
|
||||
"narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "emilelcb",
|
||||
"repo": "mix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nib": {
|
||||
"inputs": {
|
||||
"systems": [
|
||||
"cerulean",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768472076,
|
||||
"narHash": "sha256-bdVRCDy6oJx/CZiyxkke783FgtBW//wDuOAITUsQcNc=",
|
||||
"owner": "emilelcb",
|
||||
"repo": "nib",
|
||||
"rev": "42ac66dfc180a13af1cc8850397db66ec5556991",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "emilelcb",
|
||||
"repo": "nib",
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
|
|
@ -198,6 +200,52 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nt",
|
||||
"nix-unit",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737420293,
|
||||
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-unit": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"nt",
|
||||
"nixpkgs"
|
||||
],
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762774186,
|
||||
"narHash": "sha256-hRADkHjNt41+JUHw2EiSkMaL4owL83g5ZppjYUdF/Dc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-unit",
|
||||
"rev": "1c9ab50554eed0b768f9e5b6f646d63c9673f0f7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-unit",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixcord": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
|
|
@ -283,16 +331,51 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1767313136,
|
||||
"narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nt": {
|
||||
"inputs": {
|
||||
"nix-unit": "nix-unit",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770593961,
|
||||
"narHash": "sha256-Q2rRlN6yZiatLwEfYyCKJ/SImva+vbXr8DVA0qvix4c=",
|
||||
"path": "/home/me/agribit/nexus/nt",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"path": "/home/me/agribit/nexus/nt",
|
||||
"type": "path"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"cerulean": "cerulean",
|
||||
"dobutterfliescry-net": "dobutterfliescry-net",
|
||||
"grub2-themes": "grub2-themes",
|
||||
"home-manager": "home-manager",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixcord": "nixcord",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"systems": "systems_2"
|
||||
"nt": "nt",
|
||||
"systems": "systems_3"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
|
|
@ -325,6 +408,43 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nt",
|
||||
"nix-unit",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762410071,
|
||||
"narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "97a30861b13c3731a84e09405414398fbf3e109f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
|
|
|
|||
23
flake.nix
23
flake.nix
|
|
@ -12,6 +12,9 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# nt.url = "github:emilelcb/nt";
|
||||
nt.url = "/home/me/agribit/nexus/nt";
|
||||
|
||||
cerulean = {
|
||||
# url = "github:emilelcb/Cerulean";
|
||||
url = "/home/me/agribit/nexus/Cerulean";
|
||||
|
|
@ -19,6 +22,7 @@
|
|||
systems.follows = "systems";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
nixpkgs-unstable.follows = "nixpkgs-unstable";
|
||||
nt.follows = "nt";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -50,7 +54,10 @@
|
|||
...
|
||||
}: let
|
||||
groups = {
|
||||
cryde = {}; # oh frick i cried again
|
||||
cryos = {
|
||||
# oh frick i cried again
|
||||
cryde = {};
|
||||
};
|
||||
server = {};
|
||||
};
|
||||
in
|
||||
|
|
@ -63,7 +70,7 @@
|
|||
# my laptop <3 :3
|
||||
lolcathost = {
|
||||
system = "x86_64-linux";
|
||||
groups = [groups.cryde];
|
||||
groups = [groups.cryos.cryde];
|
||||
extraModules = [
|
||||
home-manager.nixosModules.default
|
||||
grub2-themes.nixosModules.default
|
||||
|
|
@ -73,7 +80,7 @@
|
|||
# i be on my puter frfr
|
||||
myputer = {
|
||||
system = "x86_64-linux";
|
||||
groups = [groups.cryde];
|
||||
groups = [groups.cryos.cryde];
|
||||
extraModules = [
|
||||
home-manager.nixosModules.default
|
||||
grub2-themes.nixosModules.default
|
||||
|
|
@ -95,11 +102,11 @@
|
|||
};
|
||||
|
||||
# call me a statistician the way she spreads in my sheets
|
||||
matcha = {
|
||||
system = "x86_64-linux";
|
||||
groups = [groups.server];
|
||||
deploy.ssh.host = "bedroom.dobutterfliescry.net";
|
||||
};
|
||||
# matcha = {
|
||||
# system = "x86_64-linux";
|
||||
# groups = [groups.server];
|
||||
# deploy.ssh.host = "bedroom.dobutterfliescry.net";
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
5
groups/all/default.nix
Normal file
5
groups/all/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{lib, ...}: {
|
||||
# NOTE: mkDefault is 1000 and mkForce is 50
|
||||
# NOTE: so this is like a second mkDefault
|
||||
security.sudo.wheelNeedsPassword = lib.mkOverride 900 true;
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
../../hosts/modules/steam.nix
|
||||
../../hosts/modules/obsidian.nix
|
||||
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
# inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
];
|
||||
|
||||
boot.loader.grub2-theme = {
|
||||
|
|
@ -110,10 +110,10 @@
|
|||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
systemPackages = with pkgs; [
|
||||
(callPackage ../sddm-theme-corners.nix {}).sddm-theme-corners
|
||||
sddm-theme-corners
|
||||
# dependencies for my sddm theme:
|
||||
# XXX: add these as a buildInput
|
||||
pkgs.libsForQt5.qt5.qtgraphicaleffects
|
||||
# pkgs.libsForQt5.qt5.qtgraphicaleffects
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -130,8 +130,6 @@
|
|||
nitch
|
||||
starfetch
|
||||
|
||||
colmena-latest
|
||||
|
||||
gitkraken
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
pkgs,
|
||||
upkgs,
|
||||
...
|
||||
}: {
|
||||
# ---- SYSTEM PACKAGES -----
|
||||
environment.systemPackages = with pkgs; [
|
||||
# User Environment
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
{
|
||||
lib,
|
||||
sshPort ? 22,
|
||||
...
|
||||
}: {
|
||||
{lib, ...}: {
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
|
||||
|
|
@ -15,7 +11,7 @@
|
|||
firewall = {
|
||||
enable = lib.mkDefault true;
|
||||
allowedTCPPorts = [
|
||||
sshPort
|
||||
22
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
@ -41,7 +37,7 @@
|
|||
services = {
|
||||
openssh = {
|
||||
enable = true;
|
||||
ports = [sshPort];
|
||||
ports = [22];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
PermitRootLogin = "no";
|
||||
|
|
@ -51,4 +47,20 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
users = {
|
||||
# primary user
|
||||
cry = {
|
||||
isNormalUser = true;
|
||||
home = "/home/cry";
|
||||
extraGroups = ["wheel"];
|
||||
openssh.authorizedKeys.keys = lib.mkOverride 900 [
|
||||
(throw ''
|
||||
Hosts in the `server` group must set `users.users.cry.openssh.authorizedKeys.keys = [ ... ]`.
|
||||
'')
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,18 +57,10 @@
|
|||
# };
|
||||
};
|
||||
|
||||
users = {
|
||||
users = {
|
||||
# primary user
|
||||
cry = {
|
||||
isNormalUser = true;
|
||||
home = "/home/cry";
|
||||
extraGroups = ["wheel"];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCsUZY45rgezi+8iROdcR5vPeacJ2fbMjlDijfUrH9hRX2FzCsg/4e3aFKhi2seZMmyTfbstxmDrrH8paUS5TibFgLFBGNngaF3CTjg85i5pm25Hr4IVo31oziBnTWaG6j3buYKtz5e1qSPzXywinJR+5+FCUJU7Fxa+EWTZcOX4wYgArSj4q73rZmvk5N0X44Mudt4nvpD2chvxygsdTzD6ph92qCuaJ/AbfmOoC7b/xvOaOVydUfgDLpHi9VZbd3akvvKxRfW6ZklldgXEzPXKMuastN0mwcBxvIb5G1Vkj8jtSVtKPc5psZ9/NWA5l38xH4qZ6z7eib6thtEMdtcKmTZEEWDADjqTea5Gj61c1n18cr6f3Tff+0bn/cxsl4Y0esi+aDeuCXYiIYNmeKBx0ttDNIxpk4J5Fdh6Xs+AZif5lnJErtu8TPy2aC0bc9wehTjMyvilTHfyerOD1ZJXhN2XwRVDGN7t7leAJZISJlPjqTDcw3Vfvzte/5JqS+FR+hbpG4uz2ix8kUa20u5YF2oSdGl8+zsdozVsdQm10Iv9WSXBV7t4m+oyodgtfzydBpmXq7aBXudCiEKw+7TC7F+1a4YFrVrCNXKFgKUpd1MiVLl7DIbzm5U9MD2BB3Fy7BPCzr3tW6/ExOhhpBWY+HnzVGQfkNr7dRcqfipKw== ae@dobutterfliescry.net"
|
||||
];
|
||||
};
|
||||
};
|
||||
users.users.cry = {
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCsUZY45rgezi+8iROdcR5vPeacJ2fbMjlDijfUrH9hRX2FzCsg/4e3aFKhi2seZMmyTfbstxmDrrH8paUS5TibFgLFBGNngaF3CTjg85i5pm25Hr4IVo31oziBnTWaG6j3buYKtz5e1qSPzXywinJR+5+FCUJU7Fxa+EWTZcOX4wYgArSj4q73rZmvk5N0X44Mudt4nvpD2chvxygsdTzD6ph92qCuaJ/AbfmOoC7b/xvOaOVydUfgDLpHi9VZbd3akvvKxRfW6ZklldgXEzPXKMuastN0mwcBxvIb5G1Vkj8jtSVtKPc5psZ9/NWA5l38xH4qZ6z7eib6thtEMdtcKmTZEEWDADjqTea5Gj61c1n18cr6f3Tff+0bn/cxsl4Y0esi+aDeuCXYiIYNmeKBx0ttDNIxpk4J5Fdh6Xs+AZif5lnJErtu8TPy2aC0bc9wehTjMyvilTHfyerOD1ZJXhN2XwRVDGN7t7leAJZISJlPjqTDcw3Vfvzte/5JqS+FR+hbpG4uz2ix8kUa20u5YF2oSdGl8+zsdozVsdQm10Iv9WSXBV7t4m+oyodgtfzydBpmXq7aBXudCiEKw+7TC7F+1a4YFrVrCNXKFgKUpd1MiVLl7DIbzm5U9MD2BB3Fy7BPCzr3tW6/ExOhhpBWY+HnzVGQfkNr7dRcqfipKw== ae@dobutterfliescry.net"
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
{pkgs, ...}: {
|
||||
{...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
|
||||
./services
|
||||
];
|
||||
|
||||
# super duper minimum grub2 config
|
||||
|
|
@ -15,59 +13,19 @@
|
|||
hostName = "hyrule";
|
||||
firewall = {
|
||||
allowedTCPPorts = [
|
||||
80 # nginx
|
||||
443 # nginx
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
54231 # Wireguard
|
||||
];
|
||||
};
|
||||
|
||||
# wg-quick.interfaces = {
|
||||
# wg0 = {
|
||||
# address = [
|
||||
# "10.10.10.4/24"
|
||||
# ];
|
||||
# dns = ["10.10.10.1"];
|
||||
# privateKeyFile = "/root/wg_agrivpn_hyrule";
|
||||
# peers = [
|
||||
# {
|
||||
# # peer's public key
|
||||
# publicKey = "iZ4aqYjbT8O8tfUHEuV+yWLtdoQbdBb6Nt0M4usMSiY=";
|
||||
|
||||
# # choose which traffic to forward
|
||||
# allowedIPs = [
|
||||
# "10.0.51.0/24"
|
||||
# "10.10.10.0/24"
|
||||
# ];
|
||||
# endpoint = "150.242.34.33:54231";
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
};
|
||||
|
||||
users = {
|
||||
users = {
|
||||
# primary user
|
||||
cry = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
shell = pkgs.bash;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCsUZY45rgezi+8iROdcR5vPeacJ2fbMjlDijfUrH9hRX2FzCsg/4e3aFKhi2seZMmyTfbstxmDrrH8paUS5TibFgLFBGNngaF3CTjg85i5pm25Hr4IVo31oziBnTWaG6j3buYKtz5e1qSPzXywinJR+5+FCUJU7Fxa+EWTZcOX4wYgArSj4q73rZmvk5N0X44Mudt4nvpD2chvxygsdTzD6ph92qCuaJ/AbfmOoC7b/xvOaOVydUfgDLpHi9VZbd3akvvKxRfW6ZklldgXEzPXKMuastN0mwcBxvIb5G1Vkj8jtSVtKPc5psZ9/NWA5l38xH4qZ6z7eib6thtEMdtcKmTZEEWDADjqTea5Gj61c1n18cr6f3Tff+0bn/cxsl4Y0esi+aDeuCXYiIYNmeKBx0ttDNIxpk4J5Fdh6Xs+AZif5lnJErtu8TPy2aC0bc9wehTjMyvilTHfyerOD1ZJXhN2XwRVDGN7t7leAJZISJlPjqTDcw3Vfvzte/5JqS+FR+hbpG4uz2ix8kUa20u5YF2oSdGl8+zsdozVsdQm10Iv9WSXBV7t4m+oyodgtfzydBpmXq7aBXudCiEKw+7TC7F+1a4YFrVrCNXKFgKUpd1MiVLl7DIbzm5U9MD2BB3Fy7BPCzr3tW6/ExOhhpBWY+HnzVGQfkNr7dRcqfipKw== ae@dobutterfliescry.net"
|
||||
];
|
||||
};
|
||||
|
||||
friends = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.fish;
|
||||
home = "/home/friends";
|
||||
};
|
||||
};
|
||||
users.users.cry = {
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCsUZY45rgezi+8iROdcR5vPeacJ2fbMjlDijfUrH9hRX2FzCsg/4e3aFKhi2seZMmyTfbstxmDrrH8paUS5TibFgLFBGNngaF3CTjg85i5pm25Hr4IVo31oziBnTWaG6j3buYKtz5e1qSPzXywinJR+5+FCUJU7Fxa+EWTZcOX4wYgArSj4q73rZmvk5N0X44Mudt4nvpD2chvxygsdTzD6ph92qCuaJ/AbfmOoC7b/xvOaOVydUfgDLpHi9VZbd3akvvKxRfW6ZklldgXEzPXKMuastN0mwcBxvIb5G1Vkj8jtSVtKPc5psZ9/NWA5l38xH4qZ6z7eib6thtEMdtcKmTZEEWDADjqTea5Gj61c1n18cr6f3Tff+0bn/cxsl4Y0esi+aDeuCXYiIYNmeKBx0ttDNIxpk4J5Fdh6Xs+AZif5lnJErtu8TPy2aC0bc9wehTjMyvilTHfyerOD1ZJXhN2XwRVDGN7t7leAJZISJlPjqTDcw3Vfvzte/5JqS+FR+hbpG4uz2ix8kUa20u5YF2oSdGl8+zsdozVsdQm10Iv9WSXBV7t4m+oyodgtfzydBpmXq7aBXudCiEKw+7TC7F+1a4YFrVrCNXKFgKUpd1MiVLl7DIbzm5U9MD2BB3Fy7BPCzr3tW6/ExOhhpBWY+HnzVGQfkNr7dRcqfipKw== ae@dobutterfliescry.net"
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
system.stateVersion = "24.11"; # DO NOT MODIFY
|
||||
system.stateVersion = "25.11"; # DO NOT MODIFY
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
{...}: {
|
||||
imports = [
|
||||
./services/forgejo.nix
|
||||
./services/vaultwarden.nix
|
||||
./services/nginx.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
nixpkgs.overlays = [
|
||||
(self: super: {
|
||||
# in wake of CVE-2022-3602/CVE-2022-3786
|
||||
nginxStable = super.nginxStable.override {openssl = pkgs.libressl;};
|
||||
})
|
||||
inputs.dobutterfliescry-net.overlays.default
|
||||
];
|
||||
|
||||
# simple nginx instance to host static construction page
|
||||
# TODO: I want sshd and forgejo's ssh server to both be bound to port 22
|
||||
# So change sshd to listen on a different address/port (ie 2222 or 127.0.0.3:22, etc)
|
||||
# and change forgejo to use 127.0.0.2:22 (use port 22, ONLY change loopback address)
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
# XXX: TODO: this should auto use the nginxStable overlay no?
|
||||
# in wake of CVE-2022-3602/CVE-2022-3786
|
||||
# package = pkgs.nginxStable.override {openssl = pkgs.libressl;};
|
||||
|
||||
recommendedGzipSettings = true;
|
||||
recommendedZstdSettings = true;
|
||||
recommendedOptimisation = true;
|
||||
recommendedProxySettings = true;
|
||||
recommendedTlsSettings = true;
|
||||
|
||||
# streamConfig = ''
|
||||
# server {
|
||||
# listen 127.0.0.1:53 udp reuseport;
|
||||
# proxy_timeout 20s;
|
||||
# proxy_pass 192.168.0.1:53535;
|
||||
# }
|
||||
# '';
|
||||
|
||||
virtualHosts = let
|
||||
localhost = "http://127.0.0.1";
|
||||
std = {
|
||||
# TODO: should I run over QUIC+HTTP3? (experimental)
|
||||
# quic = true;
|
||||
# http3 = true;
|
||||
enableACME = true;
|
||||
# kTLS = true; # offload TLS to the linux kernel
|
||||
};
|
||||
|
||||
vault =
|
||||
{
|
||||
forceSSL = true;
|
||||
locations."/".proxyPass = "${localhost}:8222";
|
||||
}
|
||||
// std;
|
||||
forge =
|
||||
{
|
||||
forceSSL = true;
|
||||
extraConfig = ''
|
||||
client_max_body_size 512M;
|
||||
'';
|
||||
locations."/".proxyPass = "${localhost}:3000";
|
||||
}
|
||||
// std;
|
||||
in {
|
||||
"dobutterfliescry.net" =
|
||||
{
|
||||
default = true;
|
||||
addSSL = true; # not strictly enforced <3
|
||||
# root = "/var/www/cry";
|
||||
root = "${pkgs.dobutterfliescry-net}/www";
|
||||
# extraConfig = ''
|
||||
# error_page 404 /custom_404.html;
|
||||
# '';
|
||||
}
|
||||
// std;
|
||||
# Route "vault" subdomain to vaultwarden
|
||||
"vault.imbored.dev" = vault;
|
||||
# Route "forge" subdomain to forgejo
|
||||
# TODO: use `forgejo.settings.server.ENABLE_ACME` instead?
|
||||
# "tearforge.net" = forge;
|
||||
"forge.dobutterfliescry.net" = forge;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{}: {
|
||||
# Colmena's latest stable version is
|
||||
# unusable so get latest unstable version.
|
||||
colmena = let
|
||||
src = pkgsBuild.fetchFromGitHub {
|
||||
owner = "zhaofengli";
|
||||
repo = "colmena";
|
||||
rev = "47b6414d800c8471e98ca072bc0835345741a56a";
|
||||
sha256 = "rINodqeUuezuCWOnpJgrH7u9vJ86fYT+Dj8Mu8T/IBc=";
|
||||
};
|
||||
flake =
|
||||
pkgsBuild.callPackage "${src}/flake.nix" {
|
||||
};
|
||||
in
|
||||
flake.packages."${system}".colmena;
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
colmena = pkgs.callPackage
|
||||
};
|
||||
}
|
||||
|
|
@ -52,6 +52,5 @@
|
|||
# lutris
|
||||
|
||||
bottles
|
||||
heroic
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
pkgs,
|
||||
upkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
|
|
@ -26,29 +27,7 @@
|
|||
flatpak.enable = true;
|
||||
};
|
||||
|
||||
# ------- USERS -------
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
users = {
|
||||
users = {
|
||||
# just me fr (personal account)
|
||||
me = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "netdev" "docker"];
|
||||
shell = pkgs.bash;
|
||||
packages = with pkgs; [
|
||||
firefox
|
||||
nitch
|
||||
starfetch
|
||||
|
||||
colmena-latest
|
||||
|
||||
gitkraken
|
||||
# NOTE: downloadthing this causes my PC to freak!! ("too many open files" error)
|
||||
#keyguard # bitwarden client app
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
security.sudo.wheelNeedsPassword = lib.mkForce false;
|
||||
|
||||
# ---- SYSTEM PACKAGES -----
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -13,5 +13,9 @@
|
|||
x86-manpages = import ../packages/x86-manpages {
|
||||
pkgs = super;
|
||||
};
|
||||
|
||||
sddm-theme-corners = import ../packages/sddm-theme-corners {
|
||||
pkgs = super;
|
||||
};
|
||||
})
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,17 +1,20 @@
|
|||
{pkgs}: {
|
||||
sddm-theme-corners = pkgs.stdenv.mkDerivation {
|
||||
name = "sddm-theme-corners";
|
||||
version = "1.0.0";
|
||||
{pkgs}:
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "sddm-theme-corners";
|
||||
version = "1.0.0";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/sddm/themes
|
||||
cp -ar $src/corners $out/share/sddm/themes/
|
||||
'';
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "aczw";
|
||||
repo = "sddm-theme-corners";
|
||||
rev = "6ff0ff455261badcae36cd7d151a34479f157a3c";
|
||||
sha256 = "0iiasrbl7ciyhq3z02la636as915zk9ph063ac7vm5iwny8vgwh8";
|
||||
};
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/sddm/themes
|
||||
cp -ar $src/corners $out/share/sddm/themes/
|
||||
'';
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "aczw";
|
||||
repo = "sddm-theme-corners";
|
||||
rev = "6ff0ff455261badcae36cd7d151a34479f157a3c";
|
||||
sha256 = "0iiasrbl7ciyhq3z02la636as915zk9ph063ac7vm5iwny8vgwh8";
|
||||
};
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
libsForQt5.qt5.qtgraphicaleffects
|
||||
];
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue