feat: netcup host config

This commit is contained in:
Barrett Ruth 2026-03-13 08:16:08 -04:00
parent 66c1be4b45
commit 2bcc83c7d9
Signed by: barrett
GPG key ID: A6C96C9349D2FC81
10 changed files with 225 additions and 34 deletions

View file

@ -1,18 +1,14 @@
-- Rerun tests only if their modification time changed.
cache = true cache = true
ignore = { ignore = {
"122", -- Setting a read-only field of a global variable. "122",
"212", -- Unused argument, In the case of callback function, _arg_name is easier to understand than _, so this option is set to off. "212",
"631", -- max_line_length, vscode pkg URL is too long "631",
} }
-- Global objects defined by the C code
read_globals = { read_globals = {
"vim", "vim",
} }
include_files = { "lua", "tests" } include_files = { "lua", "tests" }
exclude_files = { ".luacheckrc", "tests/**/*_spec.lua" } exclude_files = { ".luacheckrc", "tests/**/*_spec.lua" }
-- vim: ft=lua tw=80

View file

@ -1,10 +1,4 @@
{ {
"lazy.nvim": { "guard-collection": { "branch": "main", "commit": "edf6c86c06badc972964dadb7fd469022690cbf0" },
"branch": "main", "guard.nvim": { "branch": "main", "commit": "addb8d2f40662b8b62d60dd7d18f503beb2332e7" }
"commit": "85c7ff3711b730b4030d03144f6db6375044ae82"
},
"midnight.nvim": {
"branch": "main",
"commit": "fe062a6f2e5bd77cd8a260f61e6e12789eaf4f13"
}
} }

View file

@ -174,6 +174,12 @@ return {
'barrettruth/pending.nvim', 'barrettruth/pending.nvim',
before = function() before = function()
vim.g.pending = { vim.g.pending = {
view = {
queue = {
sort = { 'lol', 'dne', 'status', 'due', 'priority', 'order', 'id' },
},
category = { hide_done_categories = true },
},
debug = false, debug = false,
sync = { sync = {
s3 = { bucket = 'pending.nvim', region = 'us-east-1' }, s3 = { bucket = 'pending.nvim', region = 'us-east-1' },
@ -376,6 +382,19 @@ return {
mermaid = true, mermaid = true,
latex = { latex = {
open = { 'sioyek', '--instance-name', 'preview' }, open = { 'sioyek', '--instance-name', 'preview' },
args = function(ctx)
local dir = vim.fn.fnamemodify(ctx.file, ':h')
.. '/build'
vim.fn.mkdir(dir, 'p')
return {
'-pdf',
'-interaction=nonstopmode',
'-synctex=1',
'-output-directory=' .. dir,
'-pdflatex=pdflatex -file-line-error %O %S',
ctx.file,
}
end,
output = function(ctx) output = function(ctx)
return vim.fn.fnamemodify(ctx.file, ':h') return vim.fn.fnamemodify(ctx.file, ':h')
.. '/build/' .. '/build/'

View file

@ -25,7 +25,7 @@ return {
args = { '--profile', 'black', '-' }, args = { '--profile', 'black', '-' },
stdin = true, stdin = true,
}) })
:append('black') :fmt('black')
:lint('mypy') :lint('mypy')
ft('lua'):fmt('stylua'):lint('selene') ft('lua'):fmt('stylua'):lint('selene')
@ -52,7 +52,7 @@ return {
ft('cmake'):fmt('cmake-format') ft('cmake'):fmt('cmake-format')
ft('make'):lint('checkmake') ft('make'):lint('checkmake')
ft('cpp'):lint('cpplint') ft('cpp'):lint('cpplint')
ft('markdown'):fmt('cbfmt'):append('prettierd') ft('markdown'):fmt('cbfmt'):fmt('prettierd')
local lint = require('guard.lint') local lint = require('guard.lint')
ft('nix') ft('nix')

21
flake.lock generated
View file

@ -18,6 +18,26 @@
"type": "github" "type": "github"
} }
}, },
"disko": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1773025010,
"narHash": "sha256-khlHllTsovXgT2GZ0WxT4+RvuMjNeR5OW0UYeEHPYQo=",
"owner": "nix-community",
"repo": "disko",
"rev": "7b9f7f88ab3b339f8142dc246445abb3c370d3d3",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "disko",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -198,6 +218,7 @@
"root": { "root": {
"inputs": { "inputs": {
"claude-code": "claude-code", "claude-code": "claude-code",
"disko": "disko",
"home-manager": "home-manager", "home-manager": "home-manager",
"neovim-nightly": "neovim-nightly", "neovim-nightly": "neovim-nightly",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",

View file

@ -11,6 +11,10 @@
zen-browser.url = "github:0xc000022070/zen-browser-flake"; zen-browser.url = "github:0xc000022070/zen-browser-flake";
claude-code.url = "github:ryoppippi/claude-code-overlay"; claude-code.url = "github:ryoppippi/claude-code-overlay";
neovim-nightly.url = "github:nix-community/neovim-nightly-overlay"; neovim-nightly.url = "github:nix-community/neovim-nightly-overlay";
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
@ -21,6 +25,7 @@
zen-browser, zen-browser,
claude-code, claude-code,
neovim-nightly, neovim-nightly,
disko,
... ...
}: }:
let let
@ -153,10 +158,12 @@
}; };
}; };
homeConfigurations = { nixosConfigurations.netcup = nixpkgs.lib.nixosSystem {
"barrett@mac" = mkHome macConfig; modules = [
"barrett@mac-work" = mkHome macWorkConfig; disko.nixosModules.disko
"barrett@linux-work" = mkHome linuxWorkConfig; ./hosts/netcup/configuration.nix
{ nixpkgs.hostPlatform = "x86_64-linux"; }
];
}; };
}; };
} }

View file

@ -0,0 +1,126 @@
{ pkgs, ... }:
{
imports = [ ./disk-config.nix ];
boot.loader.grub = {
enable = true;
efiSupport = true;
efiInstallAsRemovable = true;
device = "nodev";
};
networking = {
hostName = "netcup";
useDHCP = false;
interfaces.eth0 = {
ipv4.addresses = [
{
address = "152.53.168.144";
prefixLength = 22;
}
];
ipv6.addresses = [
{
address = "2a0a:4cc0:2000:af7d:c8e4:dff:fe7f:c233";
prefixLength = 64;
}
];
};
defaultGateway = {
address = "152.53.168.1";
interface = "eth0";
};
defaultGateway6 = {
address = "fe80::1";
interface = "eth0";
};
nameservers = [
"1.1.1.1"
"8.8.8.8"
];
firewall.allowedTCPPorts = [
22
80
443
];
};
services.openssh = {
enable = true;
settings = {
PermitRootLogin = "prohibit-password";
PasswordAuthentication = false;
};
};
users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILA1pOJawzHtJqIn56AZT4IhPUh9vUEhLPLwndk5s3iM br.barrettruth@gmail.com"
];
security.acme = {
acceptTerms = true;
defaults.email = "br.barrettruth@gmail.com";
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts."vault.barrettruth.com" = {
enableACME = true;
forceSSL = true;
locations."/".proxyPass = "http://127.0.0.1:8222";
};
virtualHosts."git.barrettruth.com" = {
enableACME = true;
forceSSL = true;
locations."/".proxyPass = "http://127.0.0.1:3000";
};
};
services.vaultwarden = {
enable = true;
backupDir = "/var/backup/vaultwarden";
environmentFile = "/var/lib/vaultwarden/vaultwarden.env";
config = {
DOMAIN = "https://vault.barrettruth.com";
SIGNUPS_ALLOWED = false;
ROCKET_ADDRESS = "127.0.0.1";
ROCKET_PORT = 8222;
};
};
services.forgejo = {
enable = true;
settings = {
server = {
DOMAIN = "git.barrettruth.com";
ROOT_URL = "https://git.barrettruth.com/";
HTTP_PORT = 3000;
};
service.DISABLE_REGISTRATION = true;
};
};
environment.systemPackages = with pkgs; [
vim
git
];
nix.settings = {
auto-optimise-store = true;
experimental-features = [
"nix-command"
"flakes"
];
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
system.stateVersion = "24.11";
}

View file

@ -0,0 +1,32 @@
{
disko.devices.disk.main = {
type = "disk";
device = "/dev/vda";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02";
};
esp = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
}

1
new Normal file
View file

@ -0,0 +1 @@

View file

@ -1,18 +1,13 @@
#!/bin/sh #!/bin/sh
file="$1" file="$1"
line="$2" line="$2"
echo "$(date) file='$file' line='$line'" >> ~/.debug for sock in /run/user/"$(id -u)"/nvim.*.0; do
for sock in /run/user/$(id -u)/nvim.*.0; do
[ -S "$sock" ] || continue [ -S "$sock" ] || continue
result=$(nvim --server "$sock" --remote-expr "bufnr('$file')" 2>&1) result=$(nvim --headless --server "$sock" --remote-expr "bufnr('$file')" 2>/dev/null)
echo " sock='$sock' bufnr='$result'" >> ~/.debug
if [ "$result" != "-1" ] && [ -n "$result" ]; then if [ "$result" != "-1" ] && [ -n "$result" ]; then
out=$(nvim --server "$sock" --remote-expr "execute('b +$line $file | normal! zz')" 2>&1) nvim --headless --server "$sock" --remote-expr "execute('b +$line $file | normal! zz')" >/dev/null 2>&1
echo " -> sent, result='$out'" >> ~/.debug
exit 0 exit 0
fi fi
done done
echo " -> no match found" >> ~/.debug