Compare commits
49 Commits
b8db103e08
...
overlay-up
| Author | SHA1 | Date | |
|---|---|---|---|
| 67648eda89 | |||
| 76ac41a965 | |||
| 5c70cdc20f | |||
| c21066e810 | |||
| 93b15391ca | |||
| 317571499e | |||
| 971a263963 | |||
| 2fb3e2867c | |||
| 4492dcdff5 | |||
| 7d8dcee57c | |||
| 3bd43f72a2 | |||
| 915ecc73e8 | |||
| 43c5308feb | |||
| a1c0407f02 | |||
| 33f590b214 | |||
| 89cdef92a7 | |||
| 2f378ddc22 | |||
| 937deb7079 | |||
| 4c462c21f3 | |||
| eb26a93944 | |||
| 098478fa0f | |||
| 80fd89c5ac | |||
| 1a8c910e3a | |||
| 3992cab7c8 | |||
| f0eb5678c8 | |||
| bd262d3fb6 | |||
| f1a426bd2e | |||
| 9fe67f2b97 | |||
| 245b5b1e08 | |||
| b3954838d2 | |||
| 6b586d80ab | |||
| 0718c9f18d | |||
| 14dbc1363e | |||
| 7e0d58c097 | |||
| f2ae159c67 | |||
| a3ef9fa59e | |||
| aea71bb49b | |||
| e7b2a1bc1e | |||
| bdf4d54e99 | |||
| 26662e1419 | |||
| f2ee981953 | |||
| eb666f6a01 | |||
| ad7f01e41e | |||
| c452ebff3c | |||
| a1e71488d8 | |||
| 45c8f7ec27 | |||
| 67fda15ca9 | |||
| 769ab6f72d | |||
| 1769e583d8 |
@@ -0,0 +1,100 @@
|
||||
k9s:
|
||||
body:
|
||||
fgColor: '#cdd6f4'
|
||||
bgColor: '#1e1e2e'
|
||||
logoColor: '#cba6f7'
|
||||
prompt:
|
||||
fgColor: '#cdd6f4'
|
||||
bgColor: '#181825'
|
||||
suggestColor: '#89b4fa'
|
||||
help:
|
||||
fgColor: '#cdd6f4'
|
||||
bgColor: '#1e1e2e'
|
||||
sectionColor: '#a6e3a1'
|
||||
keyColor: '#89b4fa'
|
||||
numKeyColor: '#eba0ac'
|
||||
frame:
|
||||
title:
|
||||
fgColor: '#94e2d5'
|
||||
bgColor: '#1e1e2e'
|
||||
highlightColor: '#f5c2e7'
|
||||
counterColor: '#f9e2af'
|
||||
filterColor: '#a6e3a1'
|
||||
border:
|
||||
fgColor: '#cba6f7'
|
||||
focusColor: '#b4befe'
|
||||
menu:
|
||||
fgColor: '#cdd6f4'
|
||||
keyColor: '#89b4fa'
|
||||
numKeyColor: '#eba0ac'
|
||||
crumbs:
|
||||
fgColor: '#1e1e2e'
|
||||
bgColor: '#eba0ac'
|
||||
activeColor: '#f2cdcd'
|
||||
status:
|
||||
newColor: '#89b4fa'
|
||||
modifyColor: '#b4befe'
|
||||
addColor: '#a6e3a1'
|
||||
pendingColor: '#fab387'
|
||||
errorColor: '#f38ba8'
|
||||
highlightColor: '#89dceb'
|
||||
killColor: '#cba6f7'
|
||||
completedColor: '#6c7086'
|
||||
info:
|
||||
fgColor: '#fab387'
|
||||
sectionColor: '#cdd6f4'
|
||||
views:
|
||||
table:
|
||||
fgColor: '#cdd6f4'
|
||||
bgColor: '#1e1e2e'
|
||||
cursorFgColor: '#313244'
|
||||
cursorBgColor: '#45475a'
|
||||
markColor: '#f5e0dc'
|
||||
header:
|
||||
fgColor: '#f9e2af'
|
||||
bgColor: '#1e1e2e'
|
||||
sorterColor: '#89dceb'
|
||||
xray:
|
||||
fgColor: '#cdd6f4'
|
||||
bgColor: '#1e1e2e'
|
||||
cursorColor: '#45475a'
|
||||
cursorTextColor: '#1e1e2e'
|
||||
graphicColor: '#f5c2e7'
|
||||
charts:
|
||||
bgColor: '#1e1e2e'
|
||||
chartBgColor: '#1e1e2e'
|
||||
dialBgColor: '#1e1e2e'
|
||||
defaultDialColors:
|
||||
- '#a6e3a1'
|
||||
- '#f38ba8'
|
||||
defaultChartColors:
|
||||
- '#a6e3a1'
|
||||
- '#f38ba8'
|
||||
resourceColors:
|
||||
cpu:
|
||||
- '#cba6f7'
|
||||
- '#89b4fa'
|
||||
mem:
|
||||
- '#f9e2af'
|
||||
- '#fab387'
|
||||
yaml:
|
||||
keyColor: '#89b4fa'
|
||||
valueColor: '#cdd6f4'
|
||||
colonColor: '#a6adc8'
|
||||
logs:
|
||||
fgColor: '#cdd6f4'
|
||||
bgColor: '#1e1e2e'
|
||||
indicator:
|
||||
fgColor: '#b4befe'
|
||||
bgColor: '#1e1e2e'
|
||||
toggleOnColor: '#a6e3a1'
|
||||
toggleOffColor: '#a6adc8'
|
||||
dialog:
|
||||
fgColor: '#f9e2af'
|
||||
bgColor: '#9399b2'
|
||||
buttonFgColor: '#1e1e2e'
|
||||
buttonBgColor: '#7f849c'
|
||||
buttonFocusFgColor: '#1e1e2e'
|
||||
buttonFocusBgColor: '#f5c2e7'
|
||||
labelFgColor: '#f5e0dc'
|
||||
fieldFgColor: '#cdd6f4'
|
||||
|
||||
@@ -12,6 +12,9 @@ return {
|
||||
-- { import = "astrocommunity.pack.go "}, -- golang support
|
||||
{ import = "astrocommunity.pack.fish" }, -- fish support
|
||||
-- { import = "astrocommunity.pack.cs" }, -- csharp/dotnet support
|
||||
{ import = "astrocommunity.completion.copilot-lua" }, -- copilot
|
||||
{ import = "astrocommunity.completion.copilot-lua-cmp" }, -- copilot
|
||||
{ import = "astrocommunity.recipes.heirline-mode-text-statusline" }, -- statusline customization
|
||||
|
||||
-- import/override with your plugins folder
|
||||
}
|
||||
|
||||
43
defaults/nvim/lua/plugins/mappings.lua
Normal file
43
defaults/nvim/lua/plugins/mappings.lua
Normal file
@@ -0,0 +1,43 @@
|
||||
local function toggle_floating_tui(cmd)
|
||||
local terminal
|
||||
|
||||
return function()
|
||||
if not terminal then
|
||||
local Terminal = require("toggleterm.terminal").Terminal
|
||||
terminal = Terminal:new {
|
||||
cmd = cmd,
|
||||
hidden = true,
|
||||
close_on_exit = true,
|
||||
direction = "float",
|
||||
on_open = function() vim.cmd "startinsert!" end,
|
||||
}
|
||||
end
|
||||
|
||||
terminal:toggle()
|
||||
end
|
||||
end
|
||||
|
||||
local toggle_k9s = toggle_floating_tui "k9s"
|
||||
local toggle_ghdash = toggle_floating_tui "gh-dash"
|
||||
|
||||
return {
|
||||
{
|
||||
"AstroNvim/astrocore",
|
||||
---@type AstroCoreOpts
|
||||
opts = {
|
||||
mappings = {
|
||||
n = {
|
||||
["<Leader>k"] = { desc = "Kubernetes" },
|
||||
["<Leader>ki"] = {
|
||||
toggle_k9s,
|
||||
desc = "K9s",
|
||||
},
|
||||
["<Leader>gD"] = {
|
||||
toggle_ghdash,
|
||||
desc = "GitHub dashboard",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
175
flake.lock
generated
175
flake.lock
generated
@@ -9,11 +9,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771170334,
|
||||
"narHash": "sha256-tCgoCWORfNHaRXTh2QS44LwxlV8q28jVvjN5ioMicv8=",
|
||||
"lastModified": 1774186997,
|
||||
"narHash": "sha256-hyNVlhAqmwcBPl7XRkxbGcMt1BfCOdvuEfBDUf0k8Oo=",
|
||||
"owner": "ezKEa",
|
||||
"repo": "aagl-gtk-on-nix",
|
||||
"rev": "821b4f92c2c0981ea5b571b03403df87d2b2e2ae",
|
||||
"rev": "546e95f7ec74892a31f883a10b1723c35f2c2edd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -29,11 +29,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767634391,
|
||||
"narHash": "sha256-owcSz2ICqTSvhBbhPP+1eWzi88e54rRZtfCNE5E/wwg=",
|
||||
"lastModified": 1772129556,
|
||||
"narHash": "sha256-Utk0zd8STPsUJPyjabhzPc5BpPodLTXrwkpXBHYnpeg=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "08585aacc3d6d6c280a02da195fdbd4b9cf083c2",
|
||||
"rev": "ebec37af18215214173c98cf6356d0aca24a2585",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -59,6 +59,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1761588595,
|
||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-schemas": {
|
||||
"locked": {
|
||||
"lastModified": 1761577921,
|
||||
@@ -87,6 +103,89 @@
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"go-overlay",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765016596,
|
||||
"narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"go-overlay",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"go-overlay": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"git-hooks": "git-hooks",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775676807,
|
||||
"narHash": "sha256-l7B5l6cGBZoW4bs+4Zq/FMgxaZWWJqdUDkCVuH98hMY=",
|
||||
"owner": "purpleclay",
|
||||
"repo": "go-overlay",
|
||||
"rev": "c5bd812957211f42c207da6b1415f49de30e183f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "purpleclay",
|
||||
"repo": "go-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -94,11 +193,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770260404,
|
||||
"narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=",
|
||||
"lastModified": 1774274588,
|
||||
"narHash": "sha256-dnHvv5EMUgTzGZmA+3diYjQU2O6BEpGLEOgJ1Qe9LaY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b",
|
||||
"rev": "cf9686ba26f5ef788226843bc31fda4cf72e373b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -142,11 +241,27 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1771043024,
|
||||
"narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=",
|
||||
"lastModified": 1765779637,
|
||||
"narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44",
|
||||
"rev": "1306659b587dc277866c7b69eb97e5f07864d8c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1774244481,
|
||||
"narHash": "sha256-4XfMXU0DjN83o6HWZoKG9PegCvKvIhNUnRUI19vzTcQ=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4590696c8693fea477850fe379a01544293ca4e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -156,7 +271,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
@@ -172,7 +287,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1766201043,
|
||||
"narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
|
||||
@@ -186,7 +301,7 @@
|
||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1769089682,
|
||||
"narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=",
|
||||
@@ -204,9 +319,10 @@
|
||||
"inputs": {
|
||||
"aagl": "aagl",
|
||||
"darwin": "darwin",
|
||||
"go-overlay": "go-overlay",
|
||||
"home-manager": "home-manager",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"rust-overlay": "rust-overlay_2",
|
||||
"swaytreesave": "swaytreesave",
|
||||
"vintage-story": "vintage-story"
|
||||
@@ -232,14 +348,14 @@
|
||||
},
|
||||
"rust-overlay_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771211437,
|
||||
"narHash": "sha256-lcNK438i4DGtyA+bPXXyVLHVmJjYpVKmpux9WASa3ro=",
|
||||
"lastModified": 1774321696,
|
||||
"narHash": "sha256-g18xMjMNla/nsF5XyQCNyWmtb2UlZpkY0XE8KinIXAA=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "c62195b3d6e1bb11e0c2fb2a494117d3b55d410f",
|
||||
"rev": "49a67e6894d4cb782842ee6faa466aa90c92812d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -251,7 +367,7 @@
|
||||
"swaytreesave": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas",
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767148467,
|
||||
@@ -267,10 +383,25 @@
|
||||
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"vintage-story": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas_2",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769397199,
|
||||
|
||||
56
flake.nix
56
flake.nix
@@ -12,6 +12,7 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
go-overlay.url = "github:purpleclay/go-overlay";
|
||||
aagl = {
|
||||
url = "github:ezKEa/aagl-gtk-on-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -29,6 +30,7 @@
|
||||
darwin,
|
||||
home-manager,
|
||||
rust-overlay,
|
||||
go-overlay,
|
||||
aagl,
|
||||
swaytreesave,
|
||||
vintage-story,
|
||||
@@ -43,6 +45,7 @@
|
||||
myOverlays = { ... }: {
|
||||
nixpkgs.overlays = [
|
||||
rust-overlay.overlays.default
|
||||
go-overlay.overlays.default
|
||||
aagl.overlays.default
|
||||
self.common.overlays
|
||||
];
|
||||
@@ -162,6 +165,58 @@
|
||||
# ];
|
||||
};
|
||||
|
||||
# Vintage story server
|
||||
nixosConfigurations."thancred" = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit userName userEmail vintage-story;
|
||||
hostname = "thancred";
|
||||
role = "server";
|
||||
};
|
||||
modules = [
|
||||
myOverlays
|
||||
./modules/common
|
||||
./modules/machine/thancred
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; };
|
||||
home-manager.backupFileExtension = "bak";
|
||||
home-manager.users.${userName}.imports = [
|
||||
./home
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# Matrix and Mastodon server
|
||||
nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit userName userEmail;
|
||||
hostname = "yshtola";
|
||||
role = "server";
|
||||
};
|
||||
modules = [
|
||||
myOverlays
|
||||
./modules/common
|
||||
./modules/machine/yshtola
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; };
|
||||
home-manager.backupFileExtension = "bak";
|
||||
home-manager.users.${userName}.imports = [
|
||||
./home
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# generic non-NixOS Linux machine
|
||||
homeConfigurations."generic" = let
|
||||
hostname = builtins.getEnv "HOSTNAME";
|
||||
@@ -178,6 +233,7 @@
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
rust-overlay.overlays.default
|
||||
go-overlay.overlays.default
|
||||
self.common.overlays
|
||||
];
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
a = "add";
|
||||
ap = "add -p";
|
||||
br = "branch";
|
||||
cb = "checkout -b";
|
||||
co = "checkout";
|
||||
st = "status -sb";
|
||||
status = "status -sb";
|
||||
@@ -40,6 +41,11 @@
|
||||
ca = "commit -am";
|
||||
dc = "diff --cached";
|
||||
amend = "commit --amend -m";
|
||||
wipe = "reset --hard";
|
||||
gg = "reset --hard";
|
||||
ggs = "reset --hard";
|
||||
sw = "switch";
|
||||
r = "restore";
|
||||
|
||||
# aliases for submodules
|
||||
update = "submodule update --init --recursive";
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
liveViewAutoRefresh = false;
|
||||
apiServerTimeout = "30s";
|
||||
maxConnRetry = 5;
|
||||
readOnly = true;
|
||||
# readOnly = true;
|
||||
noExitOnCtrlC = false;
|
||||
portForwardAddress = "localhost";
|
||||
skipLatestRevCheck = false;
|
||||
|
||||
@@ -4,15 +4,13 @@ lib.mkIf pkgs.stdenv.isLinux {
|
||||
imv
|
||||
xdg-utils
|
||||
] ++ lib.optionals isNixOS [
|
||||
betterdiscordctl
|
||||
vesktop
|
||||
xfce.thunar
|
||||
pavucontrol
|
||||
godot
|
||||
aseprite
|
||||
zathura
|
||||
gpu-screen-recorder
|
||||
gpu-screen-recorder-gtk
|
||||
inetutils
|
||||
easyeffects
|
||||
];
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
fh
|
||||
kubectl # kube config is deliberately not included
|
||||
kubectx
|
||||
obsidian
|
||||
vscode
|
||||
yt-dlp
|
||||
weechat
|
||||
@@ -29,5 +28,10 @@
|
||||
deadnix
|
||||
alejandra
|
||||
statix
|
||||
gh
|
||||
ghDashLatest
|
||||
diffNavLatest
|
||||
] ++ lib.optionals isNixOS [
|
||||
obsidian
|
||||
];
|
||||
}
|
||||
|
||||
@@ -62,7 +62,13 @@
|
||||
"If you’ve brought your ivory standard, I’ll be happy to tell you where you can stick it" \
|
||||
"Speeches? Oh, yes, I love them. There's nothing like a good exposition when you're having trouble sleeping!" \
|
||||
"Somehow, the boy just isn't very buoyant" \
|
||||
"I am...not interested, little sun. Try again when you have become a man"
|
||||
"I am...not interested, little sun. Try again when you have become a man" \
|
||||
"I am rightousness! And rightousness shall previal!" \
|
||||
"Ahhh such bliss!" \
|
||||
"The gods themselves will be my meal. Your dear companions my dessert. Upon this world I'll feast, and death shall follow in my wake. All your hate, all your rage, you will render unto me." \
|
||||
"Boring, boring, boring" \
|
||||
"Would you be 'happier' had I a 'good reason'?" \
|
||||
"A test of your reflexes!"
|
||||
|
||||
|
||||
set choose_meme (random)"%"(count $memes)
|
||||
|
||||
@@ -1,19 +1,23 @@
|
||||
final: prev: let
|
||||
# Use latest rust from overlay which should work on non-NixOS
|
||||
rust_latest = prev.rust-bin.stable.latest.default;
|
||||
golang_latest = prev.go-bin.latestStable;
|
||||
buildGoModuleLatest = prev.buildGoModule.override {
|
||||
go = golang_latest;
|
||||
};
|
||||
myRustPlatform = prev.makeRustPlatform {
|
||||
cargo = rust_latest;
|
||||
rustc = rust_latest;
|
||||
};
|
||||
in {
|
||||
lazygitLatest = prev.lazygit.overrideAttrs (_: rec {
|
||||
version = "0.55.1";
|
||||
version = "0.61.0";
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "jesseduffield";
|
||||
repo = "lazygit";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-UofhgILZhVXnYiGpb25m4Ct4sbu5pRmjVgj3oEf5Uyk=";
|
||||
hash = "sha256-G7JulCK9WUVWbp1V7lYuM3fehCdn1cNAJHYjr3aKDvQ=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
subPackages = [ "." ];
|
||||
ldflags = [
|
||||
@@ -25,21 +29,31 @@ in {
|
||||
atuinLatest = (prev.atuin.override {
|
||||
rustPlatform = myRustPlatform;
|
||||
}).overrideAttrs (oldAttrs: rec {
|
||||
version = "18.10.0";
|
||||
version = "18.13.6";
|
||||
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "atuinsh";
|
||||
repo = "atuin";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bfSa3RtVXxHt3usDqqpE/oXKKDUZOrf+tD9uL59fr6M=";
|
||||
hash = "sha256-yAw+ty6FUnFbiRTdAe2QQHzj6uU24fZ/bEIXcHl/thg=";
|
||||
};
|
||||
|
||||
cargoDeps = myRustPlatform.fetchCargoVendor {
|
||||
# name = "atuin-${version}-vendor.tar.gz";
|
||||
inherit src;
|
||||
hash = "sha256-67ffivZVCly1GWA3fJ9mT8nGv2EGd6eCthbaIu/IW3M=";
|
||||
hash = "sha256-jirVe0+N5+UHZWioj8AipUhawMBameqEJJpa8HPTnfw=";
|
||||
};
|
||||
|
||||
cargoBuildFeatures = [
|
||||
"ai"
|
||||
"client"
|
||||
"clipboard"
|
||||
"daemon"
|
||||
"hex"
|
||||
"sync"
|
||||
];
|
||||
cargoCheckFeatures = cargoBuildFeatures;
|
||||
|
||||
preCheck = (oldAttrs.preCheck or "") + ''
|
||||
export HOME="$TMPDIR"
|
||||
export XDG_CONFIG_HOME="$TMPDIR/.config"
|
||||
@@ -62,4 +76,53 @@ in {
|
||||
# "-X github.com/derailed/k9s/version.BuildSource=nix"
|
||||
# ];
|
||||
# });
|
||||
|
||||
ghDashLatest = (prev.gh-dash.override {
|
||||
buildGoModule = buildGoModuleLatest;
|
||||
}).overrideAttrs (oldAttrs: rec {
|
||||
version = "4.23.2";
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "dlvhdr";
|
||||
repo = "gh-dash";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-C06LPVoE23ITJpMG0x75Djgeup+eb5uYwA8wL7xxvWU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-4AbeoH0l7eIS7d0yyJxM7+woC7Q/FCh0BOJj3d1zyX4=";
|
||||
doCheck = false;
|
||||
checkFlags = [
|
||||
"-skip=TestFullOutput"
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/dlvhdr/gh-dash/v4/cmd.Version=${version}"
|
||||
];
|
||||
|
||||
passthru = (oldAttrs.passthru or {}) // {
|
||||
tests = {
|
||||
version = oldAttrs.testers.testVersion { package = final.ghDashLatest; };
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
diffNavLatest = (prev.diffnav.override {
|
||||
buildGoModule = buildGoModuleLatest;
|
||||
}).overrideAttrs (_: rec {
|
||||
version = "0.10.0";
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "dlvhdr";
|
||||
repo = "diffnav";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-6VtAQzZNLQrf8QYVXxLUgb3F6xguFDbwaE9kahPhbSE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-gmmckzR0D1oFuTG5TAb6gLMoNbcZl9EsjbFjhPfJqnQ=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
];
|
||||
});
|
||||
}
|
||||
|
||||
@@ -10,6 +10,10 @@ I like Final Fantasy, alright? Isn't everyone supposed to have a hobby?
|
||||
|
||||
These are named after Final Fantasy VII characters.
|
||||
|
||||
### Servers/Network Infrastructure
|
||||
### Servers/Network Infrastructure (bare metal)
|
||||
|
||||
These are named after Final Fantasy summons. There is some infrastructure missing here like my routers and switches that I also name after summons.
|
||||
|
||||
### Servers/Network Infrastructure (virtual machines)
|
||||
|
||||
These are named after Final Fantasy XIV Online characters (currently, these are named after the Scions of the Seventh Dawn).
|
||||
|
||||
121
modules/machine/thancred/configuration.nix
Normal file
121
modules/machine/thancred/configuration.nix
Normal file
@@ -0,0 +1,121 @@
|
||||
{
|
||||
pkgs,
|
||||
userName,
|
||||
vintage-story,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../pwrMgmt
|
||||
../../networking/core.nix
|
||||
../../virtualization/podman.nix
|
||||
];
|
||||
|
||||
# Enable flakes for NixOS
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
# Custom kernel/boot stuff
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Set your timezone
|
||||
time.timeZone = "America/Detroit";
|
||||
|
||||
# Enable OpenSSH
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Enable keyring
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
# Enable GnuPG
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# Enable SUID wrappers (some programs need them)
|
||||
programs.mtr.enable = true;
|
||||
|
||||
# Enable Polkit
|
||||
security.polkit.enable = true;
|
||||
|
||||
# Power management (see ../../pwrMgmt/default.nix)
|
||||
pwrMgmt = {
|
||||
enable = true;
|
||||
cpuFreqGovernor = "performance";
|
||||
powertop.enable = false;
|
||||
};
|
||||
|
||||
network = {
|
||||
firewall = {
|
||||
enable = true;
|
||||
tcpPorts = {
|
||||
allowedPorts = [ 42420 ];
|
||||
};
|
||||
udpPorts = {
|
||||
allowedPorts = [ 42420 ];
|
||||
};
|
||||
};
|
||||
networkManager.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
vintage-story.packages.${pkgs.system}.default
|
||||
];
|
||||
|
||||
systemd.services.vintagestory-server = {
|
||||
description = "Vintage Story Server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
User = userName;
|
||||
WorkingDirectory = "/home/${userName}";
|
||||
ExecStart = "${vintage-story.packages.${pkgs.system}.default}/bin/vintagestory-server";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
};
|
||||
|
||||
# Add username to groups "wheel" and "video" - more may be added here later
|
||||
users = {
|
||||
groups.hazel = {};
|
||||
users = {
|
||||
${userName} = {
|
||||
extraGroups = [ "wheel" "network" ];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
||||
];
|
||||
};
|
||||
"hazel" = {
|
||||
home = "/home/hazel";
|
||||
group = "hazel";
|
||||
extraGroups = [ "wheel" ];
|
||||
description = "hazel";
|
||||
isNormalUser = true;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZnyiQx+k1ygX8E1lsUCB6aTdMc+OKzlZ4admlzknc5ulj0YrtUyqhbNhkNd6pP0QDBFMnXO/rzUvHp4TAyZXKFfpcBCa4zhK97ufymAfvzAjM4vRBqRNcr2n+2iRzxtolbklfjs3ocBQVxXW+pRT5wWxTgK2fcmP2xviDVldr7qte37x5YkQb5SAhYNH8tqJRnuGPe+Q0A3oN4HyHZFnrMq/HlbL5yg/0VKPTtF/IgHf+2dDz5OQQpBx3/N9u/QLwuIm9lkyOG03s0TGmE7up/i0jX2vIqp2BbGSnwdQEL/eSVZx73qQB/J62VFafg13P5yQWDJ33WSoiwhac6bg26HPmPOnCJp5R3c+7jM8N1F1ZbtsKicHSVsRg1RQSree4lchPy7FOPkCuUrB7LNE71mbpOzZNR767S6UAPaXxRw6QNYGBaDqQBwhlU8ZDF5F7EW6ahSUMOI6ECyoibzIMb56xs9osuNeUhB/BcL5sHSFpJjIbdcDLNkEKggrBl6s="
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.fail2ban = {
|
||||
enable = true;
|
||||
package = pkgs.fail2ban;
|
||||
maxretry = 5;
|
||||
bantime = "3h";
|
||||
bantime-increment = {
|
||||
enable = true;
|
||||
rndtime = "10m";
|
||||
};
|
||||
};
|
||||
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
package = pkgs.tailscale;
|
||||
};
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
6
modules/machine/thancred/default.nix
Normal file
6
modules/machine/thancred/default.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
}
|
||||
32
modules/machine/thancred/hardware-configuration.nix
Normal file
32
modules/machine/thancred/hardware-configuration.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/e2e621c1-0090-472a-99d9-61c6a87bd068";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/663E-15C0";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/60104b1a-4285-4dd1-be5e-3c3dee24515a"; }
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
271
modules/machine/yshtola/configuration.nix
Normal file
271
modules/machine/yshtola/configuration.nix
Normal file
@@ -0,0 +1,271 @@
|
||||
{
|
||||
pkgs,
|
||||
userName,
|
||||
...
|
||||
}: let
|
||||
# INFO: set these to your liking
|
||||
matrixFqdn = "chat.wyattjmiller.com";
|
||||
rtcFqdn = "rtc.wyattjmiller.com";
|
||||
|
||||
supportEmail = "wyatt@wyattjmiller.com";
|
||||
livekitKeyFile = "/var/lib/livekit/livekit.key";
|
||||
matrixRegistrationTokenFile = "/var/lib/matrix.key";
|
||||
in {
|
||||
imports = [
|
||||
../../pwrMgmt
|
||||
];
|
||||
|
||||
# Enable flakes for NixOS
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
nix.settings = {
|
||||
download-buffer-size = 134217728; # 128 MiB in bytes
|
||||
};
|
||||
|
||||
# Custom kernel/boot stuff
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# Set your timezone
|
||||
time.timeZone = "America/Detroit";
|
||||
|
||||
# Enable OpenSSH
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PermitRootLogin = "no";
|
||||
settings.PasswordAuthentication = false;
|
||||
};
|
||||
|
||||
# Enable keyring
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
# Enable GnuPG
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# Enable SUID wrappers (some programs need them)
|
||||
programs.mtr.enable = true;
|
||||
|
||||
# Enable Polkit
|
||||
security.polkit.enable = true;
|
||||
|
||||
# Power management (see ../../pwrMgmt/default.nix)
|
||||
pwrMgmt = {
|
||||
enable = true;
|
||||
cpuFreqGovernor = "performance";
|
||||
powertop.enable = false;
|
||||
};
|
||||
|
||||
# Firewall settings (fallback, upstream way of doing things)
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
|
||||
allowedTCPPorts = [
|
||||
80
|
||||
443
|
||||
8448
|
||||
3478
|
||||
5349
|
||||
7880
|
||||
7881
|
||||
8080
|
||||
8081
|
||||
];
|
||||
|
||||
allowedUDPPorts = [
|
||||
3478
|
||||
7881
|
||||
8448
|
||||
];
|
||||
|
||||
allowedUDPPortRanges =[
|
||||
# TURN UDP relays
|
||||
{
|
||||
from = 49000;
|
||||
to = 50000;
|
||||
}
|
||||
#
|
||||
{
|
||||
from = 50100;
|
||||
to = 50200;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# Add username to groups "wheel" and "video" - more may be added here later
|
||||
users.users.${userName} = {
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
||||
];
|
||||
extraGroups = ["wheel" "video" "network"];
|
||||
};
|
||||
|
||||
# fail2ban
|
||||
services.fail2ban = {
|
||||
enable = true;
|
||||
package = pkgs.fail2ban;
|
||||
maxretry = 5;
|
||||
bantime = "3h";
|
||||
bantime-increment = {
|
||||
enable = true;
|
||||
rndtime = "10m";
|
||||
};
|
||||
};
|
||||
|
||||
# Matrix server
|
||||
services.matrix-tuwunel = {
|
||||
enable = true;
|
||||
package = pkgs.matrix-tuwunel;
|
||||
settings = {
|
||||
global = {
|
||||
server_name = matrixFqdn;
|
||||
allow_encryption = true;
|
||||
allow_federation = true;
|
||||
allow_registration = true;
|
||||
registration_token = matrixRegistrationTokenFile;
|
||||
allow_unstable_room_versions = false;
|
||||
allow_experimental_room_versions = false;
|
||||
zstd_compression = true;
|
||||
new_user_displayname_suffix = "✨";
|
||||
max_request_size = 1048575600; # 100MB in bytes, for file uploads
|
||||
database_backup_path = "/var/lib/tuwunel/database_backups";
|
||||
database_backups_to_keep = 2;
|
||||
|
||||
address = [
|
||||
"127.0.0.1"
|
||||
"::1"
|
||||
];
|
||||
port = [ 8008 ];
|
||||
|
||||
well_known = {
|
||||
client = "https://${matrixFqdn}";
|
||||
server = "${matrixFqdn}:443";
|
||||
support_email = supportEmail;
|
||||
support_mxid = "@wymiller:${matrixFqdn}";
|
||||
|
||||
rtc_transports = [{
|
||||
type = "livekit";
|
||||
livekit_service_url = "https://${rtcFqdn}";
|
||||
}];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# LiveKit (Matrix RTC)
|
||||
services.livekit = {
|
||||
enable = true;
|
||||
package = pkgs.livekit;
|
||||
openFirewall = true;
|
||||
keyFile = livekitKeyFile;
|
||||
settings = {
|
||||
port = 7880;
|
||||
room.auto_create = true;
|
||||
rtc = {
|
||||
use_external_ip = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Reverse proxy
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
package = pkgs.caddy;
|
||||
virtualHosts = {
|
||||
"${matrixFqdn}" = {
|
||||
extraConfig = ''
|
||||
encode zstd gzip
|
||||
reverse_proxy localhost:8008
|
||||
'';
|
||||
};
|
||||
"${matrixFqdn}:8448" = {
|
||||
extraConfig = ''
|
||||
encode zstd gzip
|
||||
reverse_proxy localhost:8008
|
||||
'';
|
||||
};
|
||||
"${rtcFqdn}" = {
|
||||
extraConfig = ''
|
||||
@jwt_service {
|
||||
path /sfu/get* /healthz*
|
||||
}
|
||||
|
||||
handle @jwt_service {
|
||||
reverse_proxy localhost:8080
|
||||
}
|
||||
|
||||
handle {
|
||||
reverse_proxy localhost:7880 {
|
||||
header_up Connection "upgrade"
|
||||
header_up Upgrade {http.request.header.Upgrade}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# LiveKit JWT service
|
||||
services.lk-jwt-service = {
|
||||
enable = true;
|
||||
port = 8080;
|
||||
livekitUrl = "wss://rtc.wyattjmiller.com";
|
||||
keyFile = livekitKeyFile;
|
||||
};
|
||||
|
||||
# Generate LiveKit key if it doesn't exist
|
||||
systemd.services = {
|
||||
matrix-registration-token-gen = {
|
||||
before = [ "tuwunel.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = with pkgs; [ coreutils openssl ];
|
||||
script = ''
|
||||
set -eu
|
||||
|
||||
if [ -f "${matrixRegistrationTokenFile}" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
install -d -m 0700 "$(dirname "${matrixRegistrationTokenFile}")"
|
||||
|
||||
TOKEN="$(openssl rand -hex 32)"
|
||||
|
||||
umask 077
|
||||
printf '%s\n' "$TOKEN" > "${matrixRegistrationTokenFile}"
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
};
|
||||
};
|
||||
|
||||
livekit-key-gen = {
|
||||
before = [ "lk-jwt-service.service" "livekit.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = with pkgs; [ coreutils openssl ];
|
||||
script = ''
|
||||
set -eu
|
||||
|
||||
if [ -f "${livekitKeyFile}" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
install -d -m 0700 "$(dirname "${livekitKeyFile}")"
|
||||
|
||||
API_KEY="$(openssl rand -hex 8)"
|
||||
API_SECRET="$(openssl rand -hex 32)"
|
||||
|
||||
umask 077
|
||||
printf '%s: %s\n' "$API_KEY" "$API_SECRET" > "${livekitKeyFile}"
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
}
|
||||
6
modules/machine/yshtola/default.nix
Normal file
6
modules/machine/yshtola/default.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
}
|
||||
35
modules/machine/yshtola/hardware-configuration.nix
Normal file
35
modules/machine/yshtola/hardware-configuration.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ];
|
||||
boot.kernelParams = [ "console=ttyS0,19200n8" ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.loader.grub.extraConfig = ''
|
||||
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
|
||||
terminal_input serial;
|
||||
terminal_output serial;
|
||||
'';
|
||||
boot.loader.grub.forceInstall = true;
|
||||
# boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "nodev";
|
||||
boot.loader.timeout = 10;
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/sda";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/sdb"; }
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
Reference in New Issue
Block a user