Merge branch 'master' of ssh://git.joshuabell.xyz:3032/ringofstorms/dotfiles

This commit is contained in:
RingOfStorms (Joshua Bell) 2025-06-24 11:34:37 -05:00
commit 61c9402d5e
54 changed files with 1964 additions and 2435 deletions

View file

@ -138,7 +138,7 @@ in
services.forgejo = {
enable = true;
dump = {
enable = true;
enable = false;
type = "tar.gz";
};
database = {

View file

@ -61,6 +61,8 @@ in
MONGO_URI = "mongodb://librechat_mongodb:27017/LibreChat";
SEARCH = "true";
MEILI_HOST = "http://librechat_meilisearch:7700";
MEILI_NO_ANALYTICS = "true";
MEILI_MASTER_KEY = "ringofstormsLibreChat";
RAG_PORT = toString cfg.ragPort;
RAG_API_URL = "http://librechat_rag_api:${toString cfg.ragPort}";
# DEBUG_CONSOLE = "true";
@ -95,13 +97,14 @@ in
librechat_meilisearch = {
user = "root";
image = "getmeili/meilisearch:v1.13";
image = "getmeili/meilisearch:v1.12.3";
environment = {
MEILI_HOST = "http://librechat_meilisearch:7700";
MEILI_NO_ANALYTICS = "true";
MEILI_MASTER_KEY = "ringofstormsLibreChat";
};
volumes = [
"${cfg.dataDir}/meili_data_v1.13:/meili_data"
"${cfg.dataDir}/meili_data_v1.12:/meili_data"
];
extraOptions = [ "--network=librechat-network" ];
};

View file

@ -0,0 +1,7 @@
docker run \
-e hostname=https://obsidiansync.joshuabell.xyz \
-e database=obsidian_sync \
-e username=obsidian_admin \
-e password=$REPLACE \
docker.io/oleduc/docker-obsidian-livesync-couchdb:master \
deno -A /scripts/generate_setupuri.ts

View file

@ -0,0 +1,61 @@
{
config,
pkgs,
...
}:
let
cfg = config.services.obsidian_sync;
in
{
options.services.obsidian_sync =
let
lib = pkgs.lib;
in
{
port = lib.mkOption {
type = lib.types.port;
default = 5984;
description = "Port number for Obsidian Sync CouchDB server";
};
dataDir = lib.mkOption {
type = lib.types.path;
default = "/var/lib/obsidian_sync";
description = "Directory to store Obsidian Sync data";
};
serverUrl = lib.mkOption {
type = lib.types.str;
description = "URL of the Obsidian Sync server";
};
dockerEnvFiles = lib.mkOption {
type = lib.types.listOf lib.types.path;
default = [ ];
description = "List of environment files to be used by the Obsidian Sync container. When provided you must supply chouchdb user/password env files they will not be supplied by default.";
};
};
config = {
virtualisation.oci-containers.containers = {
#############
# obsidian_sync #
#############
obsidian_sync = {
user = "root";
image = "docker.io/oleduc/docker-obsidian-livesync-couchdb:master";
ports = [
"${toString cfg.port}:${toString cfg.port}"
];
environment = {
SERVER_URL = cfg.serverUrl;
COUCHDB_DATABASE = "obsidian_sync";
COUCHDB_USER = pkgs.lib.mkIf (cfg.dockerEnvFiles == [ ]) "adminu";
COUCHDB_PASSWORD = pkgs.lib.mkIf (cfg.dockerEnvFiles == [ ]) "Password123";
};
environmentFiles = cfg.dockerEnvFiles;
volumes = [
"${cfg.dataDir}/data:/opt/couchdb/data"
"${cfg.dataDir}/config:/opt/couchdb/etc/local.d"
];
};
};
};
}

View file

@ -22,7 +22,7 @@ in
};
stateVersion = lib.mkOption {
type = lib.types.str;
default = "23.11";
default = "25.05";
description = "Home manager state version";
};
};

View file

@ -8,7 +8,7 @@
defaultKeymap = "emacs";
initExtra = ''
initContent = ''
# Set editor to neovim, TODO only do this if mod.neovim is enabled
export EDITOR=nvim
export VISUAL=nvim

View file

@ -25,6 +25,8 @@
compact-top-bar.extensionUuid
tray-icons-reloaded.extensionUuid
vitals.extensionUuid
] ++ lib.optionals cfg.enableRotate [
screen-rotate.extensionUuid
];
};

View file

@ -24,6 +24,7 @@ with lib;
default = "kitty";
description = "The terminal command to use.";
};
enableRotate = lib.mkEnableOption "enable screen rotation";
};
imports = [
@ -65,6 +66,8 @@ with lib;
gnomeExtensions.compact-top-bar
gnomeExtensions.tray-icons-reloaded
gnomeExtensions.vitals
] ++ lib.optionals cfg.enableRotate [
gnomeExtensions.screen-rotate
];
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";

255
common/flake.lock generated Normal file
View file

@ -0,0 +1,255 @@
{
"nodes": {
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager_2",
"nixpkgs": [
"ragenix",
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1736955230,
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
"owner": "ryantm",
"repo": "agenix",
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
"crane": {
"locked": {
"lastModified": 1741481578,
"narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=",
"owner": "ipetkov",
"repo": "crane",
"rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
"ragenix",
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1749154018,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"owner": "rycee",
"repo": "home-manager",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"ragenix",
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1703113217,
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
"type": "github"
},
"original": {
"owner": "gmodena",
"ref": "latest",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1749024892,
"narHash": "sha256-OGcDEz60TXQC+gVz5sdtgGJdKVYr6rwdzQKuZAJQpCA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8f1b52b04f2cb6e5ead50bd28d76528a2f0380ef",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1741379970,
"narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "36fd87baa9083f34f7f5027900b62ee6d09b1f2f",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"ragenix": {
"inputs": {
"agenix": "agenix",
"crane": "crane",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_2",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1744897914,
"narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=",
"owner": "yaxitech",
"repo": "ragenix",
"rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223",
"type": "github"
},
"original": {
"owner": "yaxitech",
"repo": "ragenix",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"ragenix": "ragenix"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"ragenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741400194,
"narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

View file

@ -1,16 +1,16 @@
{
inputs = {
home-manager.url = "github:rycee/home-manager/release-24.11";
# NOTE if you add/change any inputs here also add them in the TOP level repo's flake.nix
home-manager.url = "github:rycee/home-manager/release-25.05";
ragenix.url = "github:yaxitech/ragenix";
# hyprland.url = "github:hyprwm/Hyprland";
# cosmic.url = "github:lilyinstarlight/nixos-cosmic";
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
};
outputs =
{
home-manager,
ragenix,
nix-flatpak,
...
}:
{
@ -25,6 +25,7 @@
imports = [
home-manager.nixosModules.home-manager
ragenix.nixosModules.age
nix-flatpak.nixosModules.nix-flatpak
./_home_manager
./options.nix
./general
@ -43,6 +44,7 @@
containers = {
librechat = import ./_containers/librechat.nix;
forgejo = import ./_containers/forgejo.nix;
obsidian_sync = import ./_containers/obsidian_sync.nix;
};
};
homeManagerModules = {

View file

@ -57,6 +57,7 @@ in
./shell/common.nix
./fonts.nix
./tty_caps_esc.nix
./reporting.nix
];
config = {
# name this computer

View file

@ -33,7 +33,6 @@ in
default = true;
description = "Enable jetbrains mono font";
};
};
config = lib.mkIf cfg.jetbrainsMonoFont {

View file

@ -0,0 +1,80 @@
{
lib,
config,
...
}:
let
ccfg = import ../config.nix;
cfg_path = [
ccfg.custom_config_key
"general"
"reporting"
];
cfg = lib.attrsets.getAttrFromPath cfg_path config;
in
{
options =
{ }
// lib.attrsets.setAttrByPath cfg_path {
enable = lib.mkEnableOption "Reporting node info and logs to grafana";
lokiUrl = lib.mkOption {
type = lib.types.str;
default = "http://h001.net.joshuabell.xyz:3100/loki/api/v1/push";
description = "URL of the Loki instance to send logs to";
};
};
config = lib.mkIf cfg.enable {
services.prometheus.exporters.node = {
enable = true;
port = 9100;
};
# Create necessary directories with appropriate permissions
systemd.tmpfiles.rules = [
"d /tmp/positions 1777 - - -" # World-writable directory for positions file
"f /tmp/positions.yaml 0666 - - -" # World-writable positions file
];
users.groups.systemd-journal.members = [ "promtail" ];
services.promtail = {
enable = true;
extraFlags = [
"-config.expand-env=true"
];
configuration = {
server = {
http_listen_port = 9080;
grpc_listen_port = 0;
};
positions = {
filename = "/tmp/positions.yaml"; # Changed from /var/lib/promtail/positions.yaml
};
clients = [
{
url = cfg.lokiUrl;
}
];
scrape_configs = [
{
job_name = "journal";
journal = {
json = false;
max_age = "12h";
path = "/var/log/journal";
labels = {
job = "systemd-journal";
host = config.networking.hostName;
};
};
relabel_configs = [
{
source_labels = [ "__journal__systemd_unit" ];
target_label = "unit";
}
];
}
];
};
};
};
}

View file

@ -184,5 +184,5 @@ alias gintentnix_undo="gintent_undo .envrc flake.lock flake.nix"
# Aider
aider () {
http_proxy="" all_proxy="" https_proxy="" AZURE_API_BASE=http://100.64.0.8 AZURE_API_VERSION=2024-02-15-preview AZURE_API_KEY=1 nix run "nixpkgs#aider-chat" -- aider --dark-mode --no-gitignore --no-check-update --no-auto-commits --model azure/gpt-4o-2024-05-13 $@
http_proxy="" all_proxy="" https_proxy="" AZURE_API_BASE=http://100.64.0.8 AZURE_API_VERSION=2025-01-01-preview AZURE_API_KEY=1 nix run "nixpkgs#aider-chat-full" -- aider --dark-mode --no-gitignore --no-check-update --no-auto-commits --model azure/gpt-4.1-2025-04-14 $@
}

View file

@ -1,4 +1,8 @@
{ ... }:
{ config, lib, ... }:
let
ccfg = import ../config.nix;
cfg = config.${ccfg.custom_config_key}.programs;
in
{
imports = [
./qFlipper.nix
@ -7,6 +11,32 @@
./tailnet.nix
./ssh.nix
./docker.nix
./podman.nix
./incus.nix
./flatpaks.nix
];
config = {
assertions = [
(
let
enabledVirtualizers = lib.filter (x: x.enabled) [
{
name = "docker";
enabled = cfg.docker.enable;
}
{
name = "podman";
enabled = cfg.podman.enable;
}
];
in
{
assertion = lib.length enabledVirtualizers <= 1;
message =
"Only one virtualizer can be enabled at a time. Enabled: "
+ lib.concatStringsSep ", " (map (x: x.name) enabledVirtualizers);
}
)
];
};
}

View file

@ -0,0 +1,58 @@
{
config,
lib,
...
}:
let
ccfg = import ../config.nix;
cfg_path = [
ccfg.custom_config_key
"programs"
"flatpaks"
];
cfg = lib.attrsets.getAttrFromPath cfg_path config;
in
{
options =
{ }
// lib.attrsets.setAttrByPath cfg_path {
enable = lib.mkEnableOption "flatpaks";
packages = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "List of Flatpak package names to install.";
};
};
config = lib.mkIf cfg.enable {
services.flatpak = {
enable = true;
packages = cfg.packages;
overrides = {
global = {
Context.sockets = [
"wayland"
"x11"
];
Environment = {
XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons";
GTK_THEME = "Adwaita:dark";
# Force wayland as much as possible.
ELECTRON_OZONE_PLATFORM_HINT = "wayland"; # or 'auto'
};
};
"org.signal.Signal" = {
Environment = {
SIGNAL_PASSWORD_STORE = "gnome-libsecret";
};
Context = {
sockets = [
"xfg-settings"
];
};
};
};
};
};
}

View file

@ -0,0 +1,32 @@
{
config,
lib,
...
}:
let
ccfg = import ../config.nix;
cfg_path = [
ccfg.custom_config_key
"programs"
"podman"
];
cfg = lib.attrsets.getAttrFromPath cfg_path config;
users_cfg = config.${ccfg.custom_config_key}.users;
in
{
options =
{ }
// lib.attrsets.setAttrByPath cfg_path {
enable = lib.mkEnableOption "podman";
};
config = lib.mkIf cfg.enable {
virtualisation.podman = {
enable = true;
dockerSocket.enable = true;
autoPrune.enable = true;
};
# TODO add admins?
users.extraGroups.podman.members = lib.mkIf (users_cfg.primary != null) [ users_cfg.primary ];
};
}

View file

@ -35,7 +35,7 @@ in
services.tailscale = {
enable = true;
openFirewall = true;
useRoutingFeatures = "client";
useRoutingFeatures = if cfg.enableExitNode then "both" else "client";
authKeyFile = lib.mkIf (
config ? age && config.age ? secrets && config.age.secrets ? headscale_auth
) config.age.secrets.headscale_auth.path;

View file

@ -102,6 +102,10 @@ in
file = ./secrets/headscale_auth.age;
owner = users_cfg.primary;
};
obsidian_sync_env = {
file = ./secrets/obsidian_sync_env.age;
owner = users_cfg.primary;
};
};
};
};

View file

@ -0,0 +1,38 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDd6MzN5USBFSG9R
akdvQzNiRjgzc1pIZ09zdGIvUld1RmdHRUxnT3o3L3F2UlVxZlZNCmhpZUhWUHFO
cXFhcjgzb3VJM24ySDNQNkZLOEFWTkMrK0QyYkV0YlZDY3MKLT4gc3NoLWVkMjU1
MTkgSmh2TCtRIG5CMlNyTjhCZDI5cHBYOE1nNGtMc3g1bzlJT0JNc0l1TVNzK0p2
ZHhJVDAKRUFieUlUdmhTVWtaUGpJa0cxamorMmZDRDV3ZGtRU0pvVzJxL29oRzJK
NAotPiBzc2gtZWQyNTUxOSBTcENqQlEgc1JLOTF6ZFUxaXpmWGlLYWFEdzAydDYv
aW9NZjZEVENnVzYzUU14UHhSYwpQQ055RkVUTThWekwvMFlSWjhjUWx4Qmlrdm9M
M0RibjZTVnFlN1doN0RnCi0+IHNzaC1lZDI1NTE5IEJZS0crdyB5cTI4UnRVK01M
TU80WC80TFNGTW10TmdVbXJGeVAyS25oL0pkWVNGRkZjCjUrcUc2bjkxY3lXd2Ix
YUhFSk4raXcvcFBnT0dKeVVaK1E2MTBFd3dxbGMKLT4gc3NoLWVkMjU1MTkgWHpm
bWFRIHRsWEZBVE5TUkYwNHZFOStPNVFac0pCWnN2aDJPMVI1bVFXMW9JbjFzR0UK
djFneHk0OS9rYVlpd1FDNWFUakViOVhsQjhoZTdoTXI1RXUxRVQ1OTBxYwotPiBz
c2gtZWQyNTUxOSBSNSt4ZncgcU5mUTYyUG1Ob0dkN1FkRDZBMFI2QXRoZlNhbXc5
N01TL3hSbFY5b1MzbwpBN3R5NG9LM0ZOS0hHZkppbXRyam5zYnRUMXB3YjduOU5p
ZmMxOUxXMnBnCi0+IHNzaC1lZDI1NTE5IFJvWDVQUSBKMHNyeHI3ODhOQzNPQ2xG
QnQwUFM1cGt4QjdPTkF5TSsvajNqRkx1VmhJCngxWFk4S1R0OXFYV1loU2kyRWVa
UjBrN05McmhtcW9wOU4wY3pxcmlKZVkKLT4gc3NoLWVkMjU1MTkgRjRiYjhnIFFT
YkRlM0EvYVhWbmVqQjFhQU5Zak42MjI1cTU1dE8zR1p2bmFkRmYzRFkKSGc3elpl
NVBKMlZYalF4VTYwV3VLaGxramJ3ZlVwOXdud3hCd1BTS2JPUQotPiBzc2gtZWQy
NTUxOSB3ZHJaSkEgSFg1Q2xJR1dNY0xmYUhaY3psUkE5TG4vOXU3Znhac1ZmVFdn
L0JQdUtSdwptMDd1TmpPSnB0TENqOHBVM0p6a2l6NlBQRFRtZ3V5YnY2eVhsNlBu
c0ljCi0+IHNzaC1lZDI1NTE5IDVhZHFNZyA4WWNXT1VPZy9leFVrK0o2ZThHZTEr
bUNwKytnc3ZiM0t2NGJPNFdRZWowCk81QzN5ODYyT3hNVkVWMEtYbTlQclpwMkl3
SjBZZ09FYVMvNG0rV1BKamMKLT4gc3NoLWVkMjU1MTkgWmUxTXdRIGw4UitKVU44
S1BjSzFYUlNPMDEraFM4cGxhTk9KYlZJVnIxdmJZSlluQTQKR21yN2hyVlM1L3hB
V012dUUrQjVIeXBWbUZ1QzZNYVFYSm5PeGs5dVR3WQotPiBzc2gtZWQyNTUxOSBw
ZUZCUWcgeEhjL2F5RllRVlZ1UElxL0w3MmlmQXc3TlBaUEt0cTU4VThUbHVWVlhD
SQpncStaK2lDeE9FMVpYVmZzVmlkOWdxQUs0MVA3YU5ZSEorVXFwMndwdkpvCi0+
IHNzaC1lZDI1NTE5IDl2LzJIQSBwUHhzTUE2WFo5anYzTlFuM1FkdHh3T2ZOT2V5
V3lxZDhMMEVWVkwxN0hVClNxa3hEczJmSUJpYS94bzg5Nnk3NUtWSXQ3SEdLQkJG
b3hFbmN1VjhWUG8KLT4gUUktZ3JlYXNlIF0gbkpjKWlEIDRmTEBrIkg8CmxURW80
dmRhZ1UvSkhzd1lqOVZTTlpxYnNQbDllUFUKLS0tIGN5SzhpY3VFM3NBUzlFK3gx
dFhmN0dscWE5REVQMTVZa3NzRXFrZVhOU0kKUdr7OyUzs5iQwWX7rDucmC1sbRfe
AulfGi+K/ajK0R39JnJVE/WERNANzanPLOwk/7pI69HPQm/irA5HaX/JK6q5bxP5
mgdhR+5KF6uk7QXjU+w5uKN+ypVzZX29kO6p3cw8hOODtebUvP10QK7jYURxlo6g
o4Q=
-----END AGE ENCRYPTED FILE-----

View file

@ -84,4 +84,7 @@ in
"headscale_auth.age" = {
inherit publicKeys;
};
"obsidian_sync_env.age" = {
inherit publicKeys;
};
}

45
flake.lock generated
View file

@ -85,16 +85,16 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1744743431,
"narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
"lastModified": 1749154018,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"owner": "rycee",
"repo": "home-manager",
"rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-24.11",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
@ -121,29 +121,45 @@
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
"type": "github"
},
"original": {
"owner": "gmodena",
"ref": "latest",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"lastModified": 1749024892,
"narHash": "sha256-OGcDEz60TXQC+gVz5sdtgGJdKVYr6rwdzQKuZAJQpCA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"rev": "8f1b52b04f2cb6e5ead50bd28d76528a2f0380ef",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
@ -178,11 +194,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741508717,
"narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=",
"lastModified": 1744897914,
"narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=",
"owner": "yaxitech",
"repo": "ragenix",
"rev": "2a2bea99d74927e54adf53cbf113219def67d5c9",
"rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223",
"type": "github"
},
"original": {
@ -194,6 +210,7 @@
"root": {
"inputs": {
"home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2",
"ragenix": "ragenix"
}

View file

@ -4,11 +4,9 @@
# Manually synced with common/flake.nix inputs
# =====
home-manager.url = "github:rycee/home-manager/release-24.11";
home-manager.url = "github:rycee/home-manager/release-25.05";
ragenix.url = "github:yaxitech/ragenix";
# hyprland.url = "github:hyprwm/Hyprland";
# cosmic.url = "github:lilyinstarlight/nixos-cosmic";
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
# ======
};
@ -17,6 +15,7 @@
nixpkgs,
home-manager,
ragenix,
nix-flatpak,
...
}@inputs:
let

View file

@ -42,6 +42,9 @@
# };
# };
# accelerometer
hardware.sensor.iio.enable = true;
# TODO evaluate if any of this kernal/hardware stuff is actually needed for our pocket. This is a hodge podge of shit from online
# The GPD Pocket3 uses a tablet OLED display, that is mounted rotated 90° counter-clockwise.
# This requires cusotm kernal params.

View file

@ -28,15 +28,16 @@
"common": {
"inputs": {
"home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2",
"ragenix": "ragenix"
},
"locked": {
"lastModified": 1745956280,
"narHash": "sha256-HK9LEPCJAKbD3NK8FJGBgjoTDxA7/6GIkSomvPGFzgo=",
"lastModified": 1750257405,
"narHash": "sha256-Ztt+5z2BmPqxvpQT4yLV/8gaWD5Txedr3Gd38gTXOGU=",
"ref": "refs/heads/master",
"rev": "78fc771750b08f24eddfda25cf4f24a6daa7ddf0",
"revCount": 424,
"rev": "b715d8b5335b2302fefde329723bd3b4a0986c70",
"revCount": 483,
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/dotfiles"
},
@ -107,16 +108,16 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1744743431,
"narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
"lastModified": 1749154018,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"owner": "rycee",
"repo": "home-manager",
"rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-24.11",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
@ -144,29 +145,45 @@
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
"type": "github"
},
"original": {
"owner": "gmodena",
"ref": "latest",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"lastModified": 1749024892,
"narHash": "sha256-OGcDEz60TXQC+gVz5sdtgGJdKVYr6rwdzQKuZAJQpCA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"rev": "8f1b52b04f2cb6e5ead50bd28d76528a2f0380ef",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
@ -194,27 +211,27 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1745868005,
"narHash": "sha256-hZScOyQphT4RUmSEJX+2OxjIlGgLwSd8iW1LNtAWIOs=",
"lastModified": 1750133334,
"narHash": "sha256-urV51uWH7fVnhIvsZIELIYalMYsyr2FCalvlRTzqWRw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "330d0a4167924b43f31cc9406df363f71b768a02",
"rev": "36ab78dab7da2e4e27911007033713bab534187b",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1745250177,
"narHash": "sha256-NPkMDgRHLVuNHs7y/MK3qYbE/5uo42mskUIygSHEOLM=",
"lastModified": 1750188666,
"narHash": "sha256-yAfLvtbCzSigTfbsJeOrvljS7VYLAwi2RZ6F+qd+A5E=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d1e61a9c582ec2f701b36d4600ae19b8099c5211",
"rev": "aa36c6c05d04f90cf890f87845be9380cf7b83c2",
"type": "github"
},
"original": {
@ -226,11 +243,11 @@
"nvim_plugin-Almo7aya/openingh.nvim": {
"flake": false,
"locked": {
"lastModified": 1744327913,
"narHash": "sha256-WQ7GbrjtikpMnzzME59QSibZI0hjzt/KAGDmXa677Rw=",
"lastModified": 1746139196,
"narHash": "sha256-/FlNLWOSIrOYiWzAcgOdu9//QTorCDV1KWb+h6eqLwk=",
"owner": "Almo7aya",
"repo": "openingh.nvim",
"rev": "ce19b5ffe09e35cec600ba794df280cbb72c015f",
"rev": "7cc8c897cb6b34d8ed28e99d95baccef609ed251",
"type": "github"
},
"original": {
@ -242,11 +259,11 @@
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": {
"flake": false,
"locked": {
"lastModified": 1745008876,
"narHash": "sha256-/GdJNqoDpdsPCOjcESbtEEDCz5TYkvbPRY1/T0gF7IY=",
"lastModified": 1750069301,
"narHash": "sha256-lIAsudDunKOY69r00czO+rmMbM+woIdIGroT4dUZAFc=",
"owner": "CopilotC-Nvim",
"repo": "CopilotChat.nvim",
"rev": "634aa58117a9b70b3f08a0b150f11afd64f1c0eb",
"rev": "5df0b668d23c05c173f6bc79bb19642215b8b66a",
"type": "github"
},
"original": {
@ -274,11 +291,11 @@
"nvim_plugin-L3MON4D3/LuaSnip": {
"flake": false,
"locked": {
"lastModified": 1736009707,
"narHash": "sha256-3ecm5SDTcSOh256xSQPHhddQfMpepiEIpv58fHXrVg0=",
"lastModified": 1749564222,
"narHash": "sha256-StttV19d5gWbFPxerCOX3dXIaRwg1oeUANIbNztALps=",
"owner": "L3MON4D3",
"repo": "LuaSnip",
"rev": "c9b9a22904c97d0eb69ccb9bab76037838326817",
"rev": "fb525166ccc30296fb3457441eb979113de46b00",
"type": "github"
},
"original": {
@ -290,11 +307,11 @@
"nvim_plugin-MeanderingProgrammer/render-markdown.nvim": {
"flake": false,
"locked": {
"lastModified": 1744934679,
"narHash": "sha256-rTX+CCVOOU6ZzM5NvymJvOfJF10BRMfl8hdSJz0zw+Q=",
"lastModified": 1749846779,
"narHash": "sha256-j1aslQ3SPD9ZuhQDEt9e5GD+VZ6N6Re7IjVFXycaxWI=",
"owner": "MeanderingProgrammer",
"repo": "render-markdown.nvim",
"rev": "dfc1299d9f32b53b34b7ac6c3a7553b5fd29977f",
"rev": "76f7ce56ccb913632745714f160faa53164c5574",
"type": "github"
},
"original": {
@ -306,11 +323,11 @@
"nvim_plugin-MunifTanjim/nui.nvim": {
"flake": false,
"locked": {
"lastModified": 1741233810,
"narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=",
"lastModified": 1749392788,
"narHash": "sha256-41slmnvt1z7sCxvpiVuFmQ9g7eCaxQi1dDCL3AxSL1A=",
"owner": "MunifTanjim",
"repo": "nui.nvim",
"rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb",
"rev": "de740991c12411b663994b2860f1a4fd0937c130",
"type": "github"
},
"original": {
@ -322,11 +339,11 @@
"nvim_plugin-RRethy/vim-illuminate": {
"flake": false,
"locked": {
"lastModified": 1744859423,
"narHash": "sha256-zqXKkrUNTH/EIx3PBRN8+mQcbWa6fO9i/UoSeav5R/w=",
"lastModified": 1748105647,
"narHash": "sha256-KqAJRCtDBG5xsvNsqkxoBdDckg02u4NBBreYQw7BphA=",
"owner": "RRethy",
"repo": "vim-illuminate",
"rev": "1fa4b23409e22a03823648e344c77f260e2572cb",
"rev": "0d1e93684da00ab7c057410fecfc24f434698898",
"type": "github"
},
"original": {
@ -338,11 +355,11 @@
"nvim_plugin-Saecki/crates.nvim": {
"flake": false,
"locked": {
"lastModified": 1744379189,
"narHash": "sha256-HsdDeV3mMQwrzlP23bJnNkiSL5OELgn0WBTERxehviE=",
"lastModified": 1748637634,
"narHash": "sha256-sDjG6fjnQsyYtdf7xpmOW193e7USh6ghrFzo6NoLyP8=",
"owner": "Saecki",
"repo": "crates.nvim",
"rev": "73d2c590c74a0c582144987a4decb4a642755859",
"rev": "5d8b1bef686db0fabe5f1bb593744b617e8f1405",
"type": "github"
},
"original": {
@ -354,11 +371,11 @@
"nvim_plugin-aznhe21/actions-preview.nvim": {
"flake": false,
"locked": {
"lastModified": 1740589350,
"narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=",
"lastModified": 1745779150,
"narHash": "sha256-rQjwlu5gQcOvxF72lr9ugPRl0W78wCWGWPhpN1oOMbs=",
"owner": "aznhe21",
"repo": "actions-preview.nvim",
"rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2",
"rev": "36513ad213855d497b7dd3391a24d1d75d58e36f",
"type": "github"
},
"original": {
@ -370,11 +387,11 @@
"nvim_plugin-b0o/schemastore.nvim": {
"flake": false,
"locked": {
"lastModified": 1745020938,
"narHash": "sha256-qDcVJ2RovKSIcUdVnXNcQZHoAf75IqsTMlsclDFrT2U=",
"lastModified": 1750179699,
"narHash": "sha256-EGt75z/NbjzDXxsyXT9Qj2wWOf06ijUr1If5ljmfLqo=",
"owner": "b0o",
"repo": "schemastore.nvim",
"rev": "e623e30df4053cacc67fb7eb04e1bd0fadba52b4",
"rev": "45fd6c22f30487586c771072dc8c5230931e4c7b",
"type": "github"
},
"original": {
@ -386,11 +403,11 @@
"nvim_plugin-catppuccin/nvim": {
"flake": false,
"locked": {
"lastModified": 1740764472,
"narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=",
"lastModified": 1749271780,
"narHash": "sha256-wt/Ybjgr4N80B+QsyANs1QezM7PpFceUWSweRFgkhl0=",
"owner": "catppuccin",
"repo": "nvim",
"rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429",
"rev": "fa42eb5e26819ef58884257d5ae95dd0552b9a66",
"type": "github"
},
"original": {
@ -402,11 +419,11 @@
"nvim_plugin-chrisgrieser/nvim-early-retirement": {
"flake": false,
"locked": {
"lastModified": 1744450582,
"narHash": "sha256-ybs65ObtjcUBaGglxP3SIpYjlGSEk/MQI9nSN8S3Q1w=",
"lastModified": 1750108178,
"narHash": "sha256-3I7Xup+v9Yq9/nJQ1F5CDW99oFQcxbinv7VQcKeA16Y=",
"owner": "chrisgrieser",
"repo": "nvim-early-retirement",
"rev": "3b14762a0186b1922cb5ddf3a760d8521c7b3d7e",
"rev": "d9ffd8f70ed6d466cecd3e7e2dd1425b0010932f",
"type": "github"
},
"original": {
@ -578,11 +595,11 @@
"nvim_plugin-lewis6991/gitsigns.nvim": {
"flake": false,
"locked": {
"lastModified": 1745219545,
"narHash": "sha256-7WQ428oPr43z01HvNpArZJcUov61/pDtLqJtkEKnBAY=",
"lastModified": 1750058704,
"narHash": "sha256-V9aXXR9ZP2G/XInHt07RylC4rS+AyMXAAfODvC6pVxw=",
"owner": "lewis6991",
"repo": "gitsigns.nvim",
"rev": "2149fc2009d1117d58e86e56836f70c969f60a82",
"rev": "88205953bd748322b49b26e1dfb0389932520dc9",
"type": "github"
},
"original": {
@ -626,11 +643,11 @@
"nvim_plugin-m4xshen/hardtime.nvim": {
"flake": false,
"locked": {
"lastModified": 1744007533,
"narHash": "sha256-KCz8UNL7SkI4cP7wKmQPJgkI4TsQftnHjaMSBYCgrOY=",
"lastModified": 1750160168,
"narHash": "sha256-hzFX5mZRxTDDIp/iBVl4lqEaQryLQOe7jFJmXDwq4J8=",
"owner": "m4xshen",
"repo": "hardtime.nvim",
"rev": "9aaec65de041bddfc4c0af66919030d2950bcea8",
"rev": "b9a989191b3a97c9316a0efea02341c4cdab845a",
"type": "github"
},
"original": {
@ -658,11 +675,11 @@
"nvim_plugin-mfussenegger/nvim-lint": {
"flake": false,
"locked": {
"lastModified": 1745090089,
"narHash": "sha256-Pwxk2C5WaaaW7Ookbq2edvLSJh6ZQc3iWMxowHyQkFQ=",
"lastModified": 1749731021,
"narHash": "sha256-V4JJ1VQXoIsUBTxe6ykbkyo6LxEAr+QEIqIV3mA9phs=",
"owner": "mfussenegger",
"repo": "nvim-lint",
"rev": "d698d3b6fd7b1b85657d05a2a31d843ddb682c63",
"rev": "2b0039b8be9583704591a13129c600891ac2c596",
"type": "github"
},
"original": {
@ -674,11 +691,11 @@
"nvim_plugin-mrcjkb/rustaceanvim": {
"flake": false,
"locked": {
"lastModified": 1745050087,
"narHash": "sha256-nkCVQ+TXiaKm17HXaAMVuRMV3Jbxv8aRIO6re4zEgDw=",
"lastModified": 1750024924,
"narHash": "sha256-gmOqCnSLGDNerXyuuNhkyL/pSJitnyqBdWC3LejZoS4=",
"owner": "mrcjkb",
"repo": "rustaceanvim",
"rev": "69636cedf0d6aabf0eac3dfbce24883fe1051a3d",
"rev": "2fdf224107e5bc29fb5c3a175f5f2c9161b34741",
"type": "github"
},
"original": {
@ -690,11 +707,11 @@
"nvim_plugin-neovim/nvim-lspconfig": {
"flake": false,
"locked": {
"lastModified": 1745247686,
"narHash": "sha256-rnm/BJNMVxcYH/ZXf1HciXgG0UWhAeQQniOaSvi0E40=",
"lastModified": 1750169575,
"narHash": "sha256-lJWMFgQLQhKUuv50WrYXlJ3TFqT04nVbmcBGVDaSz0k=",
"owner": "neovim",
"repo": "nvim-lspconfig",
"rev": "b335f1c72877f101248d3b085d4b7da7576361d7",
"rev": "99d3a0f26bfe402f45257c1398287aef252cbe2d",
"type": "github"
},
"original": {
@ -706,11 +723,11 @@
"nvim_plugin-nosduco/remote-sshfs.nvim": {
"flake": false,
"locked": {
"lastModified": 1743352525,
"narHash": "sha256-YNqj1vPc2oyVrSgp+huoMkrUAp2Lx3G4W52liOujP6A=",
"lastModified": 1748880705,
"narHash": "sha256-eTnVFOR7FHlkU9kwrk3q3pNo/U8OR2gJrnrMUQKGi2A=",
"owner": "nosduco",
"repo": "remote-sshfs.nvim",
"rev": "1ae5784bf0729c8b03cb7fe6561508a673c9adc8",
"rev": "6e893c32ff7c5b8d0d501b748c525fa53963fb35",
"type": "github"
},
"original": {
@ -754,11 +771,11 @@
"nvim_plugin-nvim-lualine/lualine.nvim": {
"flake": false,
"locked": {
"lastModified": 1744482854,
"narHash": "sha256-XeAFXg6GWzMJV/HzfdCXtv/effAHVU7mioFKTf1kDc8=",
"lastModified": 1749383457,
"narHash": "sha256-2aPgA7riA/FubQpTkqsxLKl7OZ8L6FkucNHc2QEx2HQ=",
"owner": "nvim-lualine",
"repo": "lualine.nvim",
"rev": "86fe39534b7da729a1ac56c0466e76f2c663dc42",
"rev": "a94fc68960665e54408fe37dcf573193c4ce82c9",
"type": "github"
},
"original": {
@ -770,11 +787,11 @@
"nvim_plugin-nvim-telescope/telescope-file-browser.nvim": {
"flake": false,
"locked": {
"lastModified": 1729728595,
"narHash": "sha256-VJbRi91TTOwUkQYyTM6Njl7MtX8/mOjINiqWYWEtyxg=",
"lastModified": 1750040034,
"narHash": "sha256-NHcU3c+1pLeypHr9xXKmqvdwB1QM/vj5axzjpFEQCLQ=",
"owner": "nvim-telescope",
"repo": "telescope-file-browser.nvim",
"rev": "626998e5c1b71c130d8bc6cf7abb6709b98287bb",
"rev": "7bf55ed0ff5be182ad3301cff266581fc1c56cce",
"type": "github"
},
"original": {
@ -818,11 +835,11 @@
"nvim_plugin-nvim-telescope/telescope.nvim": {
"flake": false,
"locked": {
"lastModified": 1742346322,
"narHash": "sha256-GF1zOHZItVZm3bx2wqI4hPj7EXQJ2F9KS4MtaEt2gm0=",
"lastModified": 1747012888,
"narHash": "sha256-JpW0ehsX81yVbKNzrYOe1hdgVMs6oaaxMLH6lECnOJg=",
"owner": "nvim-telescope",
"repo": "telescope.nvim",
"rev": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5",
"rev": "b4da76be54691e854d3e0e02c36b0245f945c2c7",
"type": "github"
},
"original": {
@ -834,11 +851,11 @@
"nvim_plugin-nvim-tree/nvim-tree.lua": {
"flake": false,
"locked": {
"lastModified": 1745201081,
"narHash": "sha256-zQsqyJgqlvxniKOtwPSzArUaOwvIgo6Xm+oAjAbPda4=",
"lastModified": 1750143568,
"narHash": "sha256-E2YdGlvvpnT/PiayfQldwpbCnjsyNDcoTzxgMf2ajV8=",
"owner": "nvim-tree",
"repo": "nvim-tree.lua",
"rev": "be5b788f2dc1522c73fb7afad9092331c8aebe80",
"rev": "d54a1875a91e1a705795ea26074795210b92ce7f",
"type": "github"
},
"original": {
@ -850,11 +867,11 @@
"nvim_plugin-nvim-tree/nvim-web-devicons": {
"flake": false,
"locked": {
"lastModified": 1745131674,
"narHash": "sha256-uoT45oaeY5c1+A7pVQIS+Bj9JnrSy9rQAecvaWZht+c=",
"lastModified": 1747360641,
"narHash": "sha256-+RHeFaeCF/iwAf8qAOjbEIl3YcnrBMVfkQnnzDNhyTA=",
"owner": "nvim-tree",
"repo": "nvim-web-devicons",
"rev": "855c97005c8eebcdd19846f2e54706bffd40ee96",
"rev": "1fb58cca9aebbc4fd32b086cb413548ce132c127",
"type": "github"
},
"original": {
@ -866,11 +883,11 @@
"nvim_plugin-nvim-treesitter/nvim-treesitter-context": {
"flake": false,
"locked": {
"lastModified": 1744921782,
"narHash": "sha256-w3I3w1SGqtpUnu4KQyaLue+k96XmkgA3+DpxSEjj+WI=",
"lastModified": 1749893617,
"narHash": "sha256-QJAfpVdTHTxjUgggQekRLvNYuvG12gjtfTGybfcFdyo=",
"owner": "nvim-treesitter",
"repo": "nvim-treesitter-context",
"rev": "6daca3ad780f045550b820f262002f35175a6c04",
"rev": "1a1a7c5d6d75cb49bf64049dafab15ebe294a79f",
"type": "github"
},
"original": {
@ -882,11 +899,11 @@
"nvim_plugin-rafamadriz/friendly-snippets": {
"flake": false,
"locked": {
"lastModified": 1745202387,
"narHash": "sha256-R6xE5vwgFtyEYpET0E4ecZejuV/lNHFkumk+wGf3lbI=",
"lastModified": 1745949052,
"narHash": "sha256-FzApcTbWfFkBD9WsYMhaCyn6ky8UmpUC2io/co/eByM=",
"owner": "rafamadriz",
"repo": "friendly-snippets",
"rev": "fc8f183479a472df60aa86f00e295462f2308178",
"rev": "572f5660cf05f8cd8834e096d7b4c921ba18e175",
"type": "github"
},
"original": {
@ -914,11 +931,11 @@
"nvim_plugin-rmagatti/auto-session": {
"flake": false,
"locked": {
"lastModified": 1745009508,
"narHash": "sha256-NCytp+DiOo3obZeQ9bpaEaNMfstf1Ytn0OR5mAWodLw=",
"lastModified": 1749967462,
"narHash": "sha256-1pIGu/GJ4FiMH/yHhoo6Gu0HLC3rFQiesJBuv8uE7Vw=",
"owner": "rmagatti",
"repo": "auto-session",
"rev": "71c8af9a99e96b9d2533cf4bac4dfed1eafab923",
"rev": "fffb13dcbe8731b8650e5bf1caa749a485d20556",
"type": "github"
},
"original": {
@ -978,11 +995,11 @@
"nvim_plugin-stevearc/conform.nvim": {
"flake": false,
"locked": {
"lastModified": 1745180802,
"narHash": "sha256-J/GKqn2VHv/ydaFXWCFduV2B7iwZzHtUvFArszxf2Cw=",
"lastModified": 1749498876,
"narHash": "sha256-n1IPUNwD14WlDU4zbgfJuhXQcVMt8oc4wCuUJBPJ+y4=",
"owner": "stevearc",
"repo": "conform.nvim",
"rev": "372fc521f8421b7830ea6db4d6ea3bae1c77548c",
"rev": "8132ec733eed3bf415b97b76797ca41b59f51d7d",
"type": "github"
},
"original": {
@ -1007,6 +1024,22 @@
"type": "github"
}
},
"nvim_plugin-supermaven-inc/supermaven-nvim": {
"flake": false,
"locked": {
"lastModified": 1728314930,
"narHash": "sha256-1z3WKIiikQqoweReUyK5O8MWSRN5y95qcxM6qzlKMME=",
"owner": "supermaven-inc",
"repo": "supermaven-nvim",
"rev": "07d20fce48a5629686aefb0a7cd4b25e33947d50",
"type": "github"
},
"original": {
"owner": "supermaven-inc",
"repo": "supermaven-nvim",
"type": "github"
}
},
"nvim_plugin-tpope/vim-sleuth": {
"flake": false,
"locked": {
@ -1042,11 +1075,11 @@
"nvim_plugin-uga-rosa/ccc.nvim": {
"flake": false,
"locked": {
"lastModified": 1744103477,
"narHash": "sha256-MSh9tJv9UNfceO1yQIvID36x/fLGmgFcnIzJ9LOog0A=",
"lastModified": 1746537659,
"narHash": "sha256-3TZ8VmvdgQ9n63m78C3r4OIUkVQHTHBvC24ixBdhTig=",
"owner": "uga-rosa",
"repo": "ccc.nvim",
"rev": "af2cf5a963f401aad868c065222ee13d4bbc9050",
"rev": "9d1a256e006decc574789dfc7d628ca11644d4c2",
"type": "github"
},
"original": {
@ -1071,22 +1104,6 @@
"type": "github"
}
},
"nvim_plugin-yetone/avante.nvim": {
"flake": false,
"locked": {
"lastModified": 1744881650,
"narHash": "sha256-BzRFgcBG4vn7mamwLvviMl4erTPwg+1AkAb3Ss4Kq8E=",
"owner": "yetone",
"repo": "avante.nvim",
"rev": "eb1cd44731783024621beafe4e46204cbc9a4320",
"type": "github"
},
"original": {
"owner": "yetone",
"repo": "avante.nvim",
"type": "github"
}
},
"nvim_plugin-zbirenbaum/copilot-cmp": {
"flake": false,
"locked": {
@ -1106,11 +1123,11 @@
"nvim_plugin-zbirenbaum/copilot.lua": {
"flake": false,
"locked": {
"lastModified": 1745111203,
"narHash": "sha256-PaWWT0mSsTfnBMrmHagHgemGN5Be6rbikVVW4ZBK/Zs=",
"lastModified": 1749137204,
"narHash": "sha256-qxHpIsFFLDG/jtk6e1hkOZgDSRA5Q0+DMxxAxckNhIc=",
"owner": "zbirenbaum",
"repo": "copilot.lua",
"rev": "dc579f98536029610cfa32c6bad86c0d24363679",
"rev": "c1bb86abbed1a52a11ab3944ef00c8410520543d",
"type": "github"
},
"original": {
@ -1128,11 +1145,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741508717,
"narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=",
"lastModified": 1744897914,
"narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=",
"owner": "yaxitech",
"repo": "ragenix",
"rev": "2a2bea99d74927e54adf53cbf113219def67d5c9",
"rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223",
"type": "github"
},
"original": {
@ -1200,21 +1217,21 @@
"nvim_plugin-sindrets/diffview.nvim": "nvim_plugin-sindrets/diffview.nvim",
"nvim_plugin-stevearc/conform.nvim": "nvim_plugin-stevearc/conform.nvim",
"nvim_plugin-stevearc/dressing.nvim": "nvim_plugin-stevearc/dressing.nvim",
"nvim_plugin-supermaven-inc/supermaven-nvim": "nvim_plugin-supermaven-inc/supermaven-nvim",
"nvim_plugin-tpope/vim-sleuth": "nvim_plugin-tpope/vim-sleuth",
"nvim_plugin-tpope/vim-surround": "nvim_plugin-tpope/vim-surround",
"nvim_plugin-uga-rosa/ccc.nvim": "nvim_plugin-uga-rosa/ccc.nvim",
"nvim_plugin-windwp/nvim-ts-autotag": "nvim_plugin-windwp/nvim-ts-autotag",
"nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim",
"nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp",
"nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1745585761,
"narHash": "sha256-xS3068xhndFrZh9GcTTNTmeebGq1A3uVykRRdzJOj3Y=",
"lastModified": 1750190298,
"narHash": "sha256-ero30lVvCzmdKkY0lZR/RO+oTNTY1WXQh6vhfbcbTIk=",
"ref": "refs/heads/master",
"rev": "e5523910a0c07c88d026d006f5962434bfa53548",
"revCount": 277,
"rev": "1ed03dac446683ef42035b53a410d857855d82d9",
"revCount": 291,
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/nvim"
},
@ -1253,11 +1270,11 @@
]
},
"locked": {
"lastModified": 1745207416,
"narHash": "sha256-2g2TnXgJEvSvpk7ujY69pSplmM3oShhoOidZf1iHTHU=",
"lastModified": 1750127910,
"narHash": "sha256-FIgEIS0RAlOyXGqoj/OufTfcKItYq668yPYL4SXdU0M=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "68a0ff1a43d08aa1ec3730e7e7d06f6da0ba630a",
"rev": "45418795a73b77b7726c62ce265d68cf541ffb49",
"type": "github"
},
"original": {

View file

@ -1,9 +1,9 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
# for local testing.
# common.url = "path:../../common
# common.url = "path:../../common";
common.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles";
ros_neovim.url = "git+https://git.joshuabell.xyz/ringofstorms/nvim";
@ -35,13 +35,15 @@
environment.systemPackages = with pkgs; [
lua
qdirstat
rustdesk-flutter
];
ringofstorms_common = {
systemName = configuration_name;
boot.systemd.enable = true;
desktopEnvironment.gnome.enable = true;
desktopEnvironment.gnome = {
enable = true;
enableRotate = true;
};
secrets.enable = true;
general.enableSleep = true;
programs = {
@ -50,6 +52,22 @@
tailnet.enable = true;
ssh.enable = true;
docker.enable = true;
flatpaks = {
enable = true;
packages = [
"org.signal.Signal"
"com.discordapp.Discord"
"md.obsidian.Obsidian"
"com.spotify.Client"
"org.videolan.VLC"
"com.bitwarden.desktop"
"org.openscad.OpenSCAD"
"org.blender.Blender"
"im.riot.Riot"
"com.rustdesk.RustDesk"
"com.google.Chrome"
];
};
};
users = {
# Users are all normal users and default password is password1
@ -65,15 +83,6 @@
"input"
];
shell = pkgs.zsh;
packages = with pkgs; [
google-chrome
discordo
discord
vlc
spotify
bitwarden
vaultwarden
];
};
};
};

View file

@ -0,0 +1,104 @@
{ inputs }:
let
common = inputs.common;
in
{
...
}:
{
imports = [
# common.nixosModules.containers.librechat
common.nixosModules.containers.forgejo
./opengist.nix
./homarr.nix
];
config = {
## Give internet access
networking = {
nat = {
enable = true;
internalInterfaces = [ "ve-*" ];
externalInterface = "enp0s31f6";
enableIPv6 = true;
};
firewall.trustedInterfaces = [ "ve-*" ];
};
containers.wasabi = {
ephemeral = true;
autoStart = true;
privateNetwork = true;
hostAddress = "10.0.0.1";
localAddress = "10.0.0.111";
config =
{ config, pkgs, ... }:
{
system.stateVersion = "24.11";
services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.org";
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 ];
};
};
};
virtualisation.oci-containers.containers = {
ntest = {
image = "nginx:alpine";
ports = [
"127.0.0.1:8085:80"
];
};
};
virtualisation.oci-containers.backend = "podman";
security.acme.acceptTerms = true;
security.acme.defaults.email = "admin@joshuabell.xyz";
services.nginx = {
enable = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts = {
"localhost" = {
locations."/" = {
proxyPass = "http://10.0.0.111";
};
};
# forgejo http traffic
"git.joshuabell.xyz" = {
locations."/" = {
proxyPass = "http://10.0.0.2:3000";
};
};
"_" = {
default = true;
locations."/" = {
return = "404"; # or 444 for drop
};
};
};
# STREAMS
# Forgejo ssh
streamConfig = ''
server {
listen 3032;
proxy_pass 10.0.0.2:3032;
}
'';
};
networking.firewall.allowedTCPPorts = [
80
443
];
};
}

View file

@ -0,0 +1,32 @@
{
...
}:
let
name = "homarr";
hostDataDir = "/var/lib/${name}";
v_port = 7575;
in
{
virtualisation.oci-containers.containers = {
"${name}" = {
image = "ghcr.io/homarr-labs/homarr:latest";
ports = [
"127.0.0.1:${toString v_port}:${toString v_port}"
];
volumes = [
"${hostDataDir}:/appdata"
"/var/run/docker.sock:/var/run/docker.sock"
];
environment = {
SECRET_ENCRYPTION_KEY = "0b7e80116a742d16a8f07452a2d9b206b1997d32a6dd2c29cfe4df676e281295";
};
};
};
system.activationScripts."${name}_directories" = ''
mkdir -p ${hostDataDir}
chown -R root:root ${hostDataDir}
chmod -R 777 ${hostDataDir}
'';
}

View file

@ -8,10 +8,8 @@ let
v_port = 6157;
in
{
virtualisation.oci-containers.backend = "docker";
virtualisation.oci-containers.containers = {
opengist = {
user = "root";
"${name}" = {
image = "ghcr.io/thomiceli/opengist:1";
ports = [
"127.0.0.1:${toString v_port}:${toString v_port}"
@ -24,10 +22,13 @@ in
};
};
};
system.activationScripts."${name}_directories" = ''
mkdir -p ${hostDataDir}
chown -R root:root ${hostDataDir}
chmod -R 777 ${hostDataDir}
'';
services.nginx.virtualHosts."gist.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations = {
"/" = {
proxyWebsockets = true;

360
hosts/h001/flake.lock generated
View file

@ -28,15 +28,16 @@
"common": {
"inputs": {
"home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2",
"ragenix": "ragenix"
},
"locked": {
"lastModified": 1745956269,
"narHash": "sha256-rD++3De0ixxLWQcCVJIQzNam5TKXfP5BOX/wZbjlshY=",
"lastModified": 1750780721,
"narHash": "sha256-EgWdBolm8wPXY9iuTHPXykJiQRzSnfXzkCXpNooxEB8=",
"ref": "refs/heads/master",
"rev": "45834a4caf0c72e965fce9e5aa394db35f7a76fe",
"revCount": 423,
"rev": "2004734c7b7d77638874b63e147970199830c3fd",
"revCount": 500,
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/dotfiles"
},
@ -107,16 +108,16 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1744743431,
"narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
"lastModified": 1749154018,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"owner": "rycee",
"repo": "home-manager",
"rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-24.11",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
@ -144,29 +145,65 @@
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
"type": "github"
},
"original": {
"owner": "gmodena",
"ref": "latest",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixarr": {
"inputs": {
"nixpkgs": "nixpkgs_4",
"vpnconfinement": "vpnconfinement",
"website-builder": "website-builder"
},
"locked": {
"lastModified": 1750367617,
"narHash": "sha256-1kz35TbeqhJMdo1s/WHidoUT64IuoKCGlngv5/JCHiw=",
"owner": "rasmus-kirk",
"repo": "nixarr",
"rev": "450d76583ae6ec025577bde7da2a38cfc7fb0510",
"type": "github"
},
"original": {
"owner": "rasmus-kirk",
"repo": "nixarr",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"lastModified": 1749024892,
"narHash": "sha256-OGcDEz60TXQC+gVz5sdtgGJdKVYr6rwdzQKuZAJQpCA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"rev": "8f1b52b04f2cb6e5ead50bd28d76528a2f0380ef",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
@ -194,27 +231,43 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1745868005,
"narHash": "sha256-hZScOyQphT4RUmSEJX+2OxjIlGgLwSd8iW1LNtAWIOs=",
"lastModified": 1748662220,
"narHash": "sha256-7gGa49iB9nCnFk4h/g9zwjlQAyjtpgcFkODjcOQS0Es=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "330d0a4167924b43f31cc9406df363f71b768a02",
"rev": "59138c7667b7970d205d6a05a8bfa2d78caa3643",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1745250177,
"narHash": "sha256-NPkMDgRHLVuNHs7y/MK3qYbE/5uo42mskUIygSHEOLM=",
"lastModified": 1750400657,
"narHash": "sha256-3vkjFnxCOP6vm5Pm13wC/Zy6/VYgei/I/2DWgW4RFeA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d1e61a9c582ec2f701b36d4600ae19b8099c5211",
"rev": "b2485d56967598da068b5a6946dadda8bfcbcd37",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1750188666,
"narHash": "sha256-yAfLvtbCzSigTfbsJeOrvljS7VYLAwi2RZ6F+qd+A5E=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "aa36c6c05d04f90cf890f87845be9380cf7b83c2",
"type": "github"
},
"original": {
@ -226,11 +279,11 @@
"nvim_plugin-Almo7aya/openingh.nvim": {
"flake": false,
"locked": {
"lastModified": 1744327913,
"narHash": "sha256-WQ7GbrjtikpMnzzME59QSibZI0hjzt/KAGDmXa677Rw=",
"lastModified": 1746139196,
"narHash": "sha256-/FlNLWOSIrOYiWzAcgOdu9//QTorCDV1KWb+h6eqLwk=",
"owner": "Almo7aya",
"repo": "openingh.nvim",
"rev": "ce19b5ffe09e35cec600ba794df280cbb72c015f",
"rev": "7cc8c897cb6b34d8ed28e99d95baccef609ed251",
"type": "github"
},
"original": {
@ -242,11 +295,11 @@
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": {
"flake": false,
"locked": {
"lastModified": 1745008876,
"narHash": "sha256-/GdJNqoDpdsPCOjcESbtEEDCz5TYkvbPRY1/T0gF7IY=",
"lastModified": 1750069301,
"narHash": "sha256-lIAsudDunKOY69r00czO+rmMbM+woIdIGroT4dUZAFc=",
"owner": "CopilotC-Nvim",
"repo": "CopilotChat.nvim",
"rev": "634aa58117a9b70b3f08a0b150f11afd64f1c0eb",
"rev": "5df0b668d23c05c173f6bc79bb19642215b8b66a",
"type": "github"
},
"original": {
@ -274,11 +327,11 @@
"nvim_plugin-L3MON4D3/LuaSnip": {
"flake": false,
"locked": {
"lastModified": 1736009707,
"narHash": "sha256-3ecm5SDTcSOh256xSQPHhddQfMpepiEIpv58fHXrVg0=",
"lastModified": 1749564222,
"narHash": "sha256-StttV19d5gWbFPxerCOX3dXIaRwg1oeUANIbNztALps=",
"owner": "L3MON4D3",
"repo": "LuaSnip",
"rev": "c9b9a22904c97d0eb69ccb9bab76037838326817",
"rev": "fb525166ccc30296fb3457441eb979113de46b00",
"type": "github"
},
"original": {
@ -290,11 +343,11 @@
"nvim_plugin-MeanderingProgrammer/render-markdown.nvim": {
"flake": false,
"locked": {
"lastModified": 1744934679,
"narHash": "sha256-rTX+CCVOOU6ZzM5NvymJvOfJF10BRMfl8hdSJz0zw+Q=",
"lastModified": 1749846779,
"narHash": "sha256-j1aslQ3SPD9ZuhQDEt9e5GD+VZ6N6Re7IjVFXycaxWI=",
"owner": "MeanderingProgrammer",
"repo": "render-markdown.nvim",
"rev": "dfc1299d9f32b53b34b7ac6c3a7553b5fd29977f",
"rev": "76f7ce56ccb913632745714f160faa53164c5574",
"type": "github"
},
"original": {
@ -306,11 +359,11 @@
"nvim_plugin-MunifTanjim/nui.nvim": {
"flake": false,
"locked": {
"lastModified": 1741233810,
"narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=",
"lastModified": 1749392788,
"narHash": "sha256-41slmnvt1z7sCxvpiVuFmQ9g7eCaxQi1dDCL3AxSL1A=",
"owner": "MunifTanjim",
"repo": "nui.nvim",
"rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb",
"rev": "de740991c12411b663994b2860f1a4fd0937c130",
"type": "github"
},
"original": {
@ -322,11 +375,11 @@
"nvim_plugin-RRethy/vim-illuminate": {
"flake": false,
"locked": {
"lastModified": 1744859423,
"narHash": "sha256-zqXKkrUNTH/EIx3PBRN8+mQcbWa6fO9i/UoSeav5R/w=",
"lastModified": 1748105647,
"narHash": "sha256-KqAJRCtDBG5xsvNsqkxoBdDckg02u4NBBreYQw7BphA=",
"owner": "RRethy",
"repo": "vim-illuminate",
"rev": "1fa4b23409e22a03823648e344c77f260e2572cb",
"rev": "0d1e93684da00ab7c057410fecfc24f434698898",
"type": "github"
},
"original": {
@ -338,11 +391,11 @@
"nvim_plugin-Saecki/crates.nvim": {
"flake": false,
"locked": {
"lastModified": 1744379189,
"narHash": "sha256-HsdDeV3mMQwrzlP23bJnNkiSL5OELgn0WBTERxehviE=",
"lastModified": 1748637634,
"narHash": "sha256-sDjG6fjnQsyYtdf7xpmOW193e7USh6ghrFzo6NoLyP8=",
"owner": "Saecki",
"repo": "crates.nvim",
"rev": "73d2c590c74a0c582144987a4decb4a642755859",
"rev": "5d8b1bef686db0fabe5f1bb593744b617e8f1405",
"type": "github"
},
"original": {
@ -354,11 +407,11 @@
"nvim_plugin-aznhe21/actions-preview.nvim": {
"flake": false,
"locked": {
"lastModified": 1740589350,
"narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=",
"lastModified": 1745779150,
"narHash": "sha256-rQjwlu5gQcOvxF72lr9ugPRl0W78wCWGWPhpN1oOMbs=",
"owner": "aznhe21",
"repo": "actions-preview.nvim",
"rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2",
"rev": "36513ad213855d497b7dd3391a24d1d75d58e36f",
"type": "github"
},
"original": {
@ -370,11 +423,11 @@
"nvim_plugin-b0o/schemastore.nvim": {
"flake": false,
"locked": {
"lastModified": 1745020938,
"narHash": "sha256-qDcVJ2RovKSIcUdVnXNcQZHoAf75IqsTMlsclDFrT2U=",
"lastModified": 1750179699,
"narHash": "sha256-EGt75z/NbjzDXxsyXT9Qj2wWOf06ijUr1If5ljmfLqo=",
"owner": "b0o",
"repo": "schemastore.nvim",
"rev": "e623e30df4053cacc67fb7eb04e1bd0fadba52b4",
"rev": "45fd6c22f30487586c771072dc8c5230931e4c7b",
"type": "github"
},
"original": {
@ -386,11 +439,11 @@
"nvim_plugin-catppuccin/nvim": {
"flake": false,
"locked": {
"lastModified": 1740764472,
"narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=",
"lastModified": 1749271780,
"narHash": "sha256-wt/Ybjgr4N80B+QsyANs1QezM7PpFceUWSweRFgkhl0=",
"owner": "catppuccin",
"repo": "nvim",
"rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429",
"rev": "fa42eb5e26819ef58884257d5ae95dd0552b9a66",
"type": "github"
},
"original": {
@ -402,11 +455,11 @@
"nvim_plugin-chrisgrieser/nvim-early-retirement": {
"flake": false,
"locked": {
"lastModified": 1744450582,
"narHash": "sha256-ybs65ObtjcUBaGglxP3SIpYjlGSEk/MQI9nSN8S3Q1w=",
"lastModified": 1750108178,
"narHash": "sha256-3I7Xup+v9Yq9/nJQ1F5CDW99oFQcxbinv7VQcKeA16Y=",
"owner": "chrisgrieser",
"repo": "nvim-early-retirement",
"rev": "3b14762a0186b1922cb5ddf3a760d8521c7b3d7e",
"rev": "d9ffd8f70ed6d466cecd3e7e2dd1425b0010932f",
"type": "github"
},
"original": {
@ -578,11 +631,11 @@
"nvim_plugin-lewis6991/gitsigns.nvim": {
"flake": false,
"locked": {
"lastModified": 1745219545,
"narHash": "sha256-7WQ428oPr43z01HvNpArZJcUov61/pDtLqJtkEKnBAY=",
"lastModified": 1750058704,
"narHash": "sha256-V9aXXR9ZP2G/XInHt07RylC4rS+AyMXAAfODvC6pVxw=",
"owner": "lewis6991",
"repo": "gitsigns.nvim",
"rev": "2149fc2009d1117d58e86e56836f70c969f60a82",
"rev": "88205953bd748322b49b26e1dfb0389932520dc9",
"type": "github"
},
"original": {
@ -626,11 +679,11 @@
"nvim_plugin-m4xshen/hardtime.nvim": {
"flake": false,
"locked": {
"lastModified": 1744007533,
"narHash": "sha256-KCz8UNL7SkI4cP7wKmQPJgkI4TsQftnHjaMSBYCgrOY=",
"lastModified": 1750160168,
"narHash": "sha256-hzFX5mZRxTDDIp/iBVl4lqEaQryLQOe7jFJmXDwq4J8=",
"owner": "m4xshen",
"repo": "hardtime.nvim",
"rev": "9aaec65de041bddfc4c0af66919030d2950bcea8",
"rev": "b9a989191b3a97c9316a0efea02341c4cdab845a",
"type": "github"
},
"original": {
@ -658,11 +711,11 @@
"nvim_plugin-mfussenegger/nvim-lint": {
"flake": false,
"locked": {
"lastModified": 1745090089,
"narHash": "sha256-Pwxk2C5WaaaW7Ookbq2edvLSJh6ZQc3iWMxowHyQkFQ=",
"lastModified": 1749731021,
"narHash": "sha256-V4JJ1VQXoIsUBTxe6ykbkyo6LxEAr+QEIqIV3mA9phs=",
"owner": "mfussenegger",
"repo": "nvim-lint",
"rev": "d698d3b6fd7b1b85657d05a2a31d843ddb682c63",
"rev": "2b0039b8be9583704591a13129c600891ac2c596",
"type": "github"
},
"original": {
@ -674,11 +727,11 @@
"nvim_plugin-mrcjkb/rustaceanvim": {
"flake": false,
"locked": {
"lastModified": 1745050087,
"narHash": "sha256-nkCVQ+TXiaKm17HXaAMVuRMV3Jbxv8aRIO6re4zEgDw=",
"lastModified": 1750024924,
"narHash": "sha256-gmOqCnSLGDNerXyuuNhkyL/pSJitnyqBdWC3LejZoS4=",
"owner": "mrcjkb",
"repo": "rustaceanvim",
"rev": "69636cedf0d6aabf0eac3dfbce24883fe1051a3d",
"rev": "2fdf224107e5bc29fb5c3a175f5f2c9161b34741",
"type": "github"
},
"original": {
@ -690,11 +743,11 @@
"nvim_plugin-neovim/nvim-lspconfig": {
"flake": false,
"locked": {
"lastModified": 1745247686,
"narHash": "sha256-rnm/BJNMVxcYH/ZXf1HciXgG0UWhAeQQniOaSvi0E40=",
"lastModified": 1750169575,
"narHash": "sha256-lJWMFgQLQhKUuv50WrYXlJ3TFqT04nVbmcBGVDaSz0k=",
"owner": "neovim",
"repo": "nvim-lspconfig",
"rev": "b335f1c72877f101248d3b085d4b7da7576361d7",
"rev": "99d3a0f26bfe402f45257c1398287aef252cbe2d",
"type": "github"
},
"original": {
@ -706,11 +759,11 @@
"nvim_plugin-nosduco/remote-sshfs.nvim": {
"flake": false,
"locked": {
"lastModified": 1743352525,
"narHash": "sha256-YNqj1vPc2oyVrSgp+huoMkrUAp2Lx3G4W52liOujP6A=",
"lastModified": 1748880705,
"narHash": "sha256-eTnVFOR7FHlkU9kwrk3q3pNo/U8OR2gJrnrMUQKGi2A=",
"owner": "nosduco",
"repo": "remote-sshfs.nvim",
"rev": "1ae5784bf0729c8b03cb7fe6561508a673c9adc8",
"rev": "6e893c32ff7c5b8d0d501b748c525fa53963fb35",
"type": "github"
},
"original": {
@ -754,11 +807,11 @@
"nvim_plugin-nvim-lualine/lualine.nvim": {
"flake": false,
"locked": {
"lastModified": 1744482854,
"narHash": "sha256-XeAFXg6GWzMJV/HzfdCXtv/effAHVU7mioFKTf1kDc8=",
"lastModified": 1749383457,
"narHash": "sha256-2aPgA7riA/FubQpTkqsxLKl7OZ8L6FkucNHc2QEx2HQ=",
"owner": "nvim-lualine",
"repo": "lualine.nvim",
"rev": "86fe39534b7da729a1ac56c0466e76f2c663dc42",
"rev": "a94fc68960665e54408fe37dcf573193c4ce82c9",
"type": "github"
},
"original": {
@ -770,11 +823,11 @@
"nvim_plugin-nvim-telescope/telescope-file-browser.nvim": {
"flake": false,
"locked": {
"lastModified": 1729728595,
"narHash": "sha256-VJbRi91TTOwUkQYyTM6Njl7MtX8/mOjINiqWYWEtyxg=",
"lastModified": 1750040034,
"narHash": "sha256-NHcU3c+1pLeypHr9xXKmqvdwB1QM/vj5axzjpFEQCLQ=",
"owner": "nvim-telescope",
"repo": "telescope-file-browser.nvim",
"rev": "626998e5c1b71c130d8bc6cf7abb6709b98287bb",
"rev": "7bf55ed0ff5be182ad3301cff266581fc1c56cce",
"type": "github"
},
"original": {
@ -818,11 +871,11 @@
"nvim_plugin-nvim-telescope/telescope.nvim": {
"flake": false,
"locked": {
"lastModified": 1742346322,
"narHash": "sha256-GF1zOHZItVZm3bx2wqI4hPj7EXQJ2F9KS4MtaEt2gm0=",
"lastModified": 1747012888,
"narHash": "sha256-JpW0ehsX81yVbKNzrYOe1hdgVMs6oaaxMLH6lECnOJg=",
"owner": "nvim-telescope",
"repo": "telescope.nvim",
"rev": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5",
"rev": "b4da76be54691e854d3e0e02c36b0245f945c2c7",
"type": "github"
},
"original": {
@ -834,11 +887,11 @@
"nvim_plugin-nvim-tree/nvim-tree.lua": {
"flake": false,
"locked": {
"lastModified": 1745201081,
"narHash": "sha256-zQsqyJgqlvxniKOtwPSzArUaOwvIgo6Xm+oAjAbPda4=",
"lastModified": 1750143568,
"narHash": "sha256-E2YdGlvvpnT/PiayfQldwpbCnjsyNDcoTzxgMf2ajV8=",
"owner": "nvim-tree",
"repo": "nvim-tree.lua",
"rev": "be5b788f2dc1522c73fb7afad9092331c8aebe80",
"rev": "d54a1875a91e1a705795ea26074795210b92ce7f",
"type": "github"
},
"original": {
@ -850,11 +903,11 @@
"nvim_plugin-nvim-tree/nvim-web-devicons": {
"flake": false,
"locked": {
"lastModified": 1745131674,
"narHash": "sha256-uoT45oaeY5c1+A7pVQIS+Bj9JnrSy9rQAecvaWZht+c=",
"lastModified": 1747360641,
"narHash": "sha256-+RHeFaeCF/iwAf8qAOjbEIl3YcnrBMVfkQnnzDNhyTA=",
"owner": "nvim-tree",
"repo": "nvim-web-devicons",
"rev": "855c97005c8eebcdd19846f2e54706bffd40ee96",
"rev": "1fb58cca9aebbc4fd32b086cb413548ce132c127",
"type": "github"
},
"original": {
@ -866,11 +919,11 @@
"nvim_plugin-nvim-treesitter/nvim-treesitter-context": {
"flake": false,
"locked": {
"lastModified": 1744921782,
"narHash": "sha256-w3I3w1SGqtpUnu4KQyaLue+k96XmkgA3+DpxSEjj+WI=",
"lastModified": 1749893617,
"narHash": "sha256-QJAfpVdTHTxjUgggQekRLvNYuvG12gjtfTGybfcFdyo=",
"owner": "nvim-treesitter",
"repo": "nvim-treesitter-context",
"rev": "6daca3ad780f045550b820f262002f35175a6c04",
"rev": "1a1a7c5d6d75cb49bf64049dafab15ebe294a79f",
"type": "github"
},
"original": {
@ -882,11 +935,11 @@
"nvim_plugin-rafamadriz/friendly-snippets": {
"flake": false,
"locked": {
"lastModified": 1745202387,
"narHash": "sha256-R6xE5vwgFtyEYpET0E4ecZejuV/lNHFkumk+wGf3lbI=",
"lastModified": 1745949052,
"narHash": "sha256-FzApcTbWfFkBD9WsYMhaCyn6ky8UmpUC2io/co/eByM=",
"owner": "rafamadriz",
"repo": "friendly-snippets",
"rev": "fc8f183479a472df60aa86f00e295462f2308178",
"rev": "572f5660cf05f8cd8834e096d7b4c921ba18e175",
"type": "github"
},
"original": {
@ -914,11 +967,11 @@
"nvim_plugin-rmagatti/auto-session": {
"flake": false,
"locked": {
"lastModified": 1745009508,
"narHash": "sha256-NCytp+DiOo3obZeQ9bpaEaNMfstf1Ytn0OR5mAWodLw=",
"lastModified": 1749967462,
"narHash": "sha256-1pIGu/GJ4FiMH/yHhoo6Gu0HLC3rFQiesJBuv8uE7Vw=",
"owner": "rmagatti",
"repo": "auto-session",
"rev": "71c8af9a99e96b9d2533cf4bac4dfed1eafab923",
"rev": "fffb13dcbe8731b8650e5bf1caa749a485d20556",
"type": "github"
},
"original": {
@ -978,11 +1031,11 @@
"nvim_plugin-stevearc/conform.nvim": {
"flake": false,
"locked": {
"lastModified": 1745180802,
"narHash": "sha256-J/GKqn2VHv/ydaFXWCFduV2B7iwZzHtUvFArszxf2Cw=",
"lastModified": 1749498876,
"narHash": "sha256-n1IPUNwD14WlDU4zbgfJuhXQcVMt8oc4wCuUJBPJ+y4=",
"owner": "stevearc",
"repo": "conform.nvim",
"rev": "372fc521f8421b7830ea6db4d6ea3bae1c77548c",
"rev": "8132ec733eed3bf415b97b76797ca41b59f51d7d",
"type": "github"
},
"original": {
@ -1007,6 +1060,22 @@
"type": "github"
}
},
"nvim_plugin-supermaven-inc/supermaven-nvim": {
"flake": false,
"locked": {
"lastModified": 1728314930,
"narHash": "sha256-1z3WKIiikQqoweReUyK5O8MWSRN5y95qcxM6qzlKMME=",
"owner": "supermaven-inc",
"repo": "supermaven-nvim",
"rev": "07d20fce48a5629686aefb0a7cd4b25e33947d50",
"type": "github"
},
"original": {
"owner": "supermaven-inc",
"repo": "supermaven-nvim",
"type": "github"
}
},
"nvim_plugin-tpope/vim-sleuth": {
"flake": false,
"locked": {
@ -1042,11 +1111,11 @@
"nvim_plugin-uga-rosa/ccc.nvim": {
"flake": false,
"locked": {
"lastModified": 1744103477,
"narHash": "sha256-MSh9tJv9UNfceO1yQIvID36x/fLGmgFcnIzJ9LOog0A=",
"lastModified": 1746537659,
"narHash": "sha256-3TZ8VmvdgQ9n63m78C3r4OIUkVQHTHBvC24ixBdhTig=",
"owner": "uga-rosa",
"repo": "ccc.nvim",
"rev": "af2cf5a963f401aad868c065222ee13d4bbc9050",
"rev": "9d1a256e006decc574789dfc7d628ca11644d4c2",
"type": "github"
},
"original": {
@ -1071,22 +1140,6 @@
"type": "github"
}
},
"nvim_plugin-yetone/avante.nvim": {
"flake": false,
"locked": {
"lastModified": 1744881650,
"narHash": "sha256-BzRFgcBG4vn7mamwLvviMl4erTPwg+1AkAb3Ss4Kq8E=",
"owner": "yetone",
"repo": "avante.nvim",
"rev": "eb1cd44731783024621beafe4e46204cbc9a4320",
"type": "github"
},
"original": {
"owner": "yetone",
"repo": "avante.nvim",
"type": "github"
}
},
"nvim_plugin-zbirenbaum/copilot-cmp": {
"flake": false,
"locked": {
@ -1106,11 +1159,11 @@
"nvim_plugin-zbirenbaum/copilot.lua": {
"flake": false,
"locked": {
"lastModified": 1745111203,
"narHash": "sha256-PaWWT0mSsTfnBMrmHagHgemGN5Be6rbikVVW4ZBK/Zs=",
"lastModified": 1749137204,
"narHash": "sha256-qxHpIsFFLDG/jtk6e1hkOZgDSRA5Q0+DMxxAxckNhIc=",
"owner": "zbirenbaum",
"repo": "copilot.lua",
"rev": "dc579f98536029610cfa32c6bad86c0d24363679",
"rev": "c1bb86abbed1a52a11ab3944ef00c8410520543d",
"type": "github"
},
"original": {
@ -1128,11 +1181,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741508717,
"narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=",
"lastModified": 1744897914,
"narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=",
"owner": "yaxitech",
"repo": "ragenix",
"rev": "2a2bea99d74927e54adf53cbf113219def67d5c9",
"rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223",
"type": "github"
},
"original": {
@ -1144,13 +1197,14 @@
"root": {
"inputs": {
"common": "common",
"nixpkgs": "nixpkgs_4",
"nixarr": "nixarr",
"nixpkgs": "nixpkgs_5",
"ros_neovim": "ros_neovim"
}
},
"ros_neovim": {
"inputs": {
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim",
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim",
"nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring",
@ -1200,21 +1254,21 @@
"nvim_plugin-sindrets/diffview.nvim": "nvim_plugin-sindrets/diffview.nvim",
"nvim_plugin-stevearc/conform.nvim": "nvim_plugin-stevearc/conform.nvim",
"nvim_plugin-stevearc/dressing.nvim": "nvim_plugin-stevearc/dressing.nvim",
"nvim_plugin-supermaven-inc/supermaven-nvim": "nvim_plugin-supermaven-inc/supermaven-nvim",
"nvim_plugin-tpope/vim-sleuth": "nvim_plugin-tpope/vim-sleuth",
"nvim_plugin-tpope/vim-surround": "nvim_plugin-tpope/vim-surround",
"nvim_plugin-uga-rosa/ccc.nvim": "nvim_plugin-uga-rosa/ccc.nvim",
"nvim_plugin-windwp/nvim-ts-autotag": "nvim_plugin-windwp/nvim-ts-autotag",
"nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim",
"nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp",
"nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1745585761,
"narHash": "sha256-xS3068xhndFrZh9GcTTNTmeebGq1A3uVykRRdzJOj3Y=",
"lastModified": 1750190298,
"narHash": "sha256-ero30lVvCzmdKkY0lZR/RO+oTNTY1WXQh6vhfbcbTIk=",
"ref": "refs/heads/master",
"rev": "e5523910a0c07c88d026d006f5962434bfa53548",
"revCount": 277,
"rev": "1ed03dac446683ef42035b53a410d857855d82d9",
"revCount": 291,
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/nvim"
},
@ -1253,11 +1307,11 @@
]
},
"locked": {
"lastModified": 1745207416,
"narHash": "sha256-2g2TnXgJEvSvpk7ujY69pSplmM3oShhoOidZf1iHTHU=",
"lastModified": 1750127910,
"narHash": "sha256-FIgEIS0RAlOyXGqoj/OufTfcKItYq668yPYL4SXdU0M=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "68a0ff1a43d08aa1ec3730e7e7d06f6da0ba630a",
"rev": "45418795a73b77b7726c62ce265d68cf541ffb49",
"type": "github"
},
"original": {
@ -1295,6 +1349,42 @@
"repo": "default",
"type": "github"
}
},
"vpnconfinement": {
"locked": {
"lastModified": 1743810720,
"narHash": "sha256-kbv/W4gizUSa6qH2rUQdgPj9AJaeN9k2XSWUYqj7IMU=",
"owner": "Maroka-chan",
"repo": "VPN-Confinement",
"rev": "74ae51e6d18b972ecc918ab43e8bde60c21a65d8",
"type": "github"
},
"original": {
"owner": "Maroka-chan",
"repo": "VPN-Confinement",
"type": "github"
}
},
"website-builder": {
"inputs": {
"nixpkgs": [
"nixarr",
"nixpkgs"
]
},
"locked": {
"lastModified": 1750317638,
"narHash": "sha256-B4RWcXXOLO6gMeYyV+K4olu+kGGsYamKH+JAm0cIXqI=",
"owner": "rasmus-kirk",
"repo": "website-builder",
"rev": "b54192000a00e865947f45bacf3184d56363ee38",
"type": "github"
},
"original": {
"owner": "rasmus-kirk",
"repo": "website-builder",
"type": "github"
}
}
},
"root": "root",

View file

@ -1,6 +1,6 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
# nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Use relative to get current version for testing
@ -8,6 +8,8 @@
common.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles";
ros_neovim.url = "git+https://git.joshuabell.xyz/ringofstorms/nvim";
nixarr.url = "github:rasmus-kirk/nixarr";
};
outputs =
@ -15,8 +17,9 @@
nixpkgs,
common,
ros_neovim,
nixarr,
...
}:
}@inputs:
let
configuration_name = "h001";
lib = nixpkgs.lib;
@ -28,23 +31,31 @@
modules = [
common.nixosModules.default
ros_neovim.nixosModules.default
nixarr.nixosModules.default
./configuration.nix
./hardware-configuration.nix
./mods
./nginx.nix
(import ./containers { inherit inputs; })
(
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
lua
sqlite
];
ringofstorms_common = {
systemName = configuration_name;
boot.systemd.enable = true;
secrets.enable = true;
general = {
reporting.enable = true;
};
programs = {
tailnet.enable = true;
ssh.enable = true;
docker.enable = true;
podman.enable = true;
};
users = {
admins = [ "luser" ]; # First admin is also the primary user owning nix config

View file

@ -36,10 +36,15 @@
];
};
fileSystems."/drives/wd10" = {
device = "/dev/sda";
fsType = "ext4";
};
swapDevices = [
{
device = "/.swapfile";
size = 64 * 1024; # 64GB
size = 4 * 1024; # 4GB
}
];
networking.useDHCP = lib.mkDefault true;

View file

@ -0,0 +1,29 @@
{
...
}:
{
config = {
services.adguardhome = {
enable = true;
allowDHCP = true;
openFirewall = false;
};
networking.firewall.allowedTCPPorts = [
53
67
68
5543
3000
];
networking.firewall.allowedUDPPorts = [
53
67
68
784
853
8853
5443
];
};
}

View file

@ -0,0 +1,10 @@
{
...
}:
{
imports = [
./adguardhome.nix
./nixarr.nix
./monitoring.nix
];
}

View file

@ -0,0 +1,140 @@
{
config,
...
}:
{
config = {
services.prometheus = {
enable = true;
scrapeConfigs = [
{
job_name = "node";
static_configs = [
{
targets = [ "localhost:9100" ];
labels.instance = config.networking.hostName; # h001
}
{
targets = [ "lio.net.joshuabell.xyz:9100" ];
labels.instance = "lio";
}
];
}
];
};
services.grafana = {
enable = true;
dataDir = "/var/lib/grafana";
settings = {
server = {
http_port = 3001;
http_addr = "127.0.0.1";
serve_from_sub_path = true;
domain = "h001.net.joshuabell.xyz";
root_url = "http://h001.net.joshuabell.xyz/grafana/";
enforce_domain = true;
enable_gzip = true;
};
};
provision = {
datasources.settings.datasources = [
{
name = "Prometheus";
type = "prometheus";
url = "http://localhost:9090";
access = "proxy";
isDefault = true; # Set as default, if you want
}
{
name = "Loki";
type = "loki";
url = "http://localhost:3100";
access = "proxy";
isDefault = false;
}
];
};
};
# Loki for log aggregation
systemd.tmpfiles.rules = [
"d /var/lib/loki 0755 loki loki -"
"d /var/lib/loki/chunks 0755 loki loki -"
"d /var/lib/loki/rules 0755 loki loki -"
"d /var/lib/loki/compactor 0755 loki loki -"
];
services.loki = {
enable = true;
configuration = {
auth_enabled = false;
server = {
http_listen_port = 3100;
};
common = {
path_prefix = "/var/lib/loki";
storage = {
filesystem = {
chunks_directory = "/var/lib/loki/chunks";
rules_directory = "/var/lib/loki/rules";
};
};
replication_factor = 1;
ring = {
kvstore = {
store = "inmemory";
};
};
};
schema_config = {
configs = [
{
from = "2023-01-01";
store = "boltdb-shipper";
object_store = "filesystem";
schema = "v12"; # Updated schema version
index = {
prefix = "index_";
period = "24h"; # Set to 24h period as recommended
};
}
];
};
limits_config = {
allow_structured_metadata = false; # Disable structured metadata until we upgrade to v13
};
ruler = {
storage = {
type = "local";
local = {
directory = "/var/lib/loki/rules";
};
};
rule_path = "/var/lib/loki/rules";
ring = {
kvstore = {
store = "inmemory";
};
};
};
compactor = {
working_directory = "/var/lib/loki/compactor"; # Set working directory
retention_enabled = true;
compaction_interval = "5m";
delete_request_store = "filesystem"; # Add this line for retention configuration
delete_request_cancel_period = "24h";
};
analytics = {
reporting_enabled = false;
};
};
};
};
}

View file

@ -0,0 +1,51 @@
{
...
}:
{
config = {
nixarr = {
enable = true;
mediaDir = "/drives/wd10/nixarr/media";
stateDir = "/var/lib/nixarr/state";
jellyfin.enable = true; # jellyfinnnnnn!
jellyseerr.enable = true; # request manager for media
sabnzbd.enable = true; # Usenet downloader
prowlarr.enable = true; # Index manager
sonarr.enable = true; # TV
radarr.enable = true; # Movies
bazarr.enable = true; # subtitles for sonarr and radarr
lidarr.enable = true; # music
readarr.enable = true; # books
};
services.nginx = {
virtualHosts = {
"jellyfin.joshuabell.xyz" = {
locations."/" = {
proxyWebsockets = true;
proxyPass = "http://localhost:8096";
};
};
"media.joshuabell.xyz" = {
locations."/" = {
proxyWebsockets = true;
proxyPass = "http://localhost:5055";
};
};
"jellyfin.h001.local.joshuabell.xyz" = {
locations."/" = {
proxyWebsockets = true;
proxyPass = "http://localhost:8096";
};
};
"media.h001.local.joshuabell.xyz" = {
locations."/" = {
proxyWebsockets = true;
proxyPass = "http://localhost:5055";
};
};
};
};
};
}

40
hosts/h001/nginx.nix Normal file
View file

@ -0,0 +1,40 @@
{
...
}:
let
homarr = {
proxyWebsockets = true;
proxyPass = "http://localhost:7575";
};
in
{
services.nginx.virtualHosts = {
"10.12.14.2" = {
locations = {
"/" = {
return = "301 http://h001.local.joshuabell.xyz";
};
};
};
"h001.local.joshuabell.xyz" = {
locations = {
"/" = homarr;
};
};
"100.64.0.13" = {
locations."/" = {
return = "301 http://h001.net.joshuabell.xyz";
};
};
"h001.net.joshuabell.xyz" = {
locations = {
"/grafana/" = {
proxyPass = "http://localhost:3001";
proxyWebsockets = true;
recommendedProxySettings = true;
};
"/" = homarr;
};
};
};
}

16
hosts/h002/flake.lock generated
View file

@ -32,11 +32,19 @@
"ragenix": "ragenix"
},
"locked": {
<<<<<<< HEAD
"lastModified": 1745956280,
"narHash": "sha256-HK9LEPCJAKbD3NK8FJGBgjoTDxA7/6GIkSomvPGFzgo=",
"ref": "refs/heads/master",
"rev": "78fc771750b08f24eddfda25cf4f24a6daa7ddf0",
"revCount": 424,
=======
"lastModified": 1745957989,
"narHash": "sha256-mLYJXPri4DVRa6exEPtzlkje5FZVSYAteObHOxcAvfA=",
"ref": "refs/heads/master",
"rev": "6277d06b4dcaa6665e92aaf5f20eee49a8362556",
"revCount": 426,
>>>>>>> a3be6f71fb0570f8e2ac60fd3f3ad436b8a6bf90
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/dotfiles"
},
@ -210,11 +218,19 @@
},
"nixpkgs_5": {
"locked": {
<<<<<<< HEAD
"lastModified": 1745250177,
"narHash": "sha256-NPkMDgRHLVuNHs7y/MK3qYbE/5uo42mskUIygSHEOLM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d1e61a9c582ec2f701b36d4600ae19b8099c5211",
=======
"lastModified": 1745961410,
"narHash": "sha256-RU4c9JVZp/CdWyPUUZGsZvTWvjrFtXLUnlMs38IeHD0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a2001229477b3a343b13e6e7870fa37fedd8e09d",
>>>>>>> a3be6f71fb0570f8e2ac60fd3f3ad436b8a6bf90
"type": "github"
},
"original": {

View file

@ -35,6 +35,7 @@
{
environment.systemPackages = with pkgs; [
lua
qdirstat
];
ringofstorms_common = {
@ -43,10 +44,12 @@
secrets.enable = true;
desktopEnvironment.gnome.enable = true;
programs = {
qFlipper.enable = true;
rustDev.enable = true;
tailnet.enable = true;
ssh.enable = true;
docker.enable = true;
uhkAgent.enable = true;
};
users = {
admins = [ "luser" ]; # First admin is also the primary user owning nix config
@ -69,6 +72,10 @@
packages = with pkgs; [
bitwarden
vaultwarden
google-chrome
firefox-esr
openscad
vlc
];
};
};

View file

@ -1,7 +0,0 @@
{
...
}:
{
boot.loader.grub.enable = true;
system.stateVersion = "24.11";
}

File diff suppressed because it is too large Load diff

View file

@ -1,101 +0,0 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
deploy-rs.url = "github:serokell/deploy-rs";
common.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles";
ros_neovim.url = "git+https://git.joshuabell.xyz/ringofstorms/nvim";
};
outputs =
{
self,
nixpkgs,
common,
ros_neovim,
deploy-rs,
...
}:
let
configuration_name = "l002";
lib = nixpkgs.lib;
in
{
deploy = {
sshUser = "root";
sshOpts = [
"-i"
"/run/agenix/nix2linode"
];
nodes.${configuration_name} = {
hostname = "172.234.26.141";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.${configuration_name};
};
};
};
nixosConfigurations = {
nixos = self.nixosConfigurations.${configuration_name};
"${configuration_name}" = lib.nixosSystem {
modules = [
common.nixosModules.default
ros_neovim.nixosModules.default
./configuration.nix
./hardware-configuration.nix
./linode.nix
./nginx.nix
(
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
bitwarden
vaultwarden
];
ringofstorms_common = {
systemName = configuration_name;
general = {
disableRemoteBuildsOnLio = true;
readWindowsDrives = false;
jetbrainsMonoFont = false;
ttyCapsEscape = false;
};
programs = {
tailnet.enable = true;
tailnet.useSecretsAuth = false;
ssh.enable = true;
};
users = {
users = {
root = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode"
];
shell = pkgs.zsh;
};
};
};
homeManager = {
users = {
root = {
imports = with common.homeManagerModules; [
tmux
atuin
git
postgres
starship
zoxide
zsh
];
};
};
};
};
}
)
];
};
};
};
}

View file

@ -1,34 +0,0 @@
# 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.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/3612d65e-719c-4b33-af08-561b790d6d33";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/f1408ea6-59a0-11ed-bc9d-525400000001"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s5.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View file

@ -1,32 +0,0 @@
{ config, pkgs, ... }:
{
# https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos
boot.kernelParams = [ "console=ttyS0,19200n8" ];
boot.loader.grub.enable = true;
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.device = "nodev";
boot.loader.timeout = 10;
services.openssh = {
enable = true;
settings.PermitRootLogin = "yes";
settings.PasswordAuthentication = false;
};
networking.usePredictableInterfaceNames = false;
networking.useDHCP = false; # Disable DHCP globally as we will not need it.
# required for ssh?
networking.interfaces.eth0.useDHCP = true;
environment.systemPackages = with pkgs; [
inetutils
mtr
sysstat
];
}

View file

@ -1,158 +0,0 @@
{
...
}:
{
# JUST A TEST TODO remove
containers.wasabi = {
ephemeral = true;
autoStart = true;
privateNetwork = true;
hostAddress = "192.168.100.2";
localAddress = "192.168.100.11";
config =
{ config, pkgs, ... }:
{
system.stateVersion = "24.11";
services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.org";
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 ];
};
};
};
security.acme.acceptTerms = true;
security.acme.defaults.email = "admin@joshuabell.xyz";
services.nginx = {
enable = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts = {
# default that is put first for fallbacks
# Note that order here doesn't matter it orders alphabetically so `0` puts it first
# I had an issue tha the first SSL port 443 site would catch any https traffic instead
# of hitting my default fallback and this fixes that issue and ensure this is hit instead
"002.linodes.joshuabell.xyz" = {
default = true;
enableACME = true;
forceSSL = true;
locations."/" = {
return = "444"; # 404 for not found or 444 for drop
};
};
# PROXY HOSTS
"chat.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyWebsockets = true;
proxyPass = "http://100.64.0.1:3080";
};
};
"db.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyWebsockets = true;
proxyPass = "http://100.64.0.1:3085";
};
};
"gist.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://100.64.0.2:6157";
};
};
"git.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://100.64.0.1";
};
};
# Redirect self IP to domain
"172.234.26.141" = {
locations."/" = {
return = "301 https://joshuabell.xyz";
};
};
"2600:3c06::f03c:95ff:fe2c:2806" = {
locations."/" = {
return = "301 https://joshuabell.xyz";
};
};
"www.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
return = "301 https://joshuabell.xyz";
};
};
"joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations = {
"/wasabi" = {
proxyPass = "http://192.168.100.11/";
extraConfig = ''
rewrite ^/wasabi/(.*) /$1 break;
'';
};
"/" = {
# return = "200 '<html>Hello World</html>'";
extraConfig = ''
default_type text/html;
return 200 '
<html>
<body style="width:100vw;height:100vh;overflow:hidden">
<div style="display: flex;width:100vw;height:100vh;justify-content: center;align-items:center;text-align:center;overflow:hidden">
In the void you roam,</br>
A page that cannot be found-</br>
Turn back, seek anew.
</div>
</body>
</html>
';
'';
};
};
};
"www.ellalala.com" = {
enableACME = true;
forceSSL = true;
locations."/" = {
return = "301 https://ellalala.com";
};
};
"ellalala.com" = {
enableACME = true;
forceSSL = true;
locations."/" = {
return = "444";
};
};
};
# STREAMS
streamConfig = ''
server {
listen 3032;
proxy_pass 100.64.0.1:3032;
}
'';
};
networking.firewall.allowedTCPPorts = [
80 # web http
443 # web https
3032 # git ssh stream
];
}

View file

@ -1,9 +1,12 @@
{ common }:
{ inputs }:
let
common = inputs.common;
in
{
config,
...
}:
{
# NOTE some useful links
# nixos containers: https://blog.beardhatcode.be/2020/12/Declarative-Nixos-Containers.html
# https://nixos.wiki/wiki/NixOS_Containers
@ -11,10 +14,16 @@
imports = [
common.nixosModules.containers.librechat
common.nixosModules.containers.forgejo
common.nixosModules.containers.obsidian_sync
];
config = {
# Obsidian Sync settings
services.obsidian_sync = {
serverUrl = "https://obsidiansync.joshuabell.xyz";
dockerEnvFiles = [ config.age.secrets.obsidian_sync_env.path ];
};
## Give internet access
networking = {
nat = {
@ -26,32 +35,36 @@
firewall.trustedInterfaces = [ "ve-*" ];
};
# mathesar
# services.mathesar.secretKey = "mImvhwyu0cFmtUNOAyOjm6qozWjEmHyrGIpOTZXWW7lnkj5RP3";
# containers.wasabi = {
# ephemeral = true;
# autoStart = true;
# privateNetwork = true;
# hostAddress = "10.0.0.1";
# localAddress = "10.0.0.111";
# config =
# { config, pkgs, ... }:
# {
# system.stateVersion = "24.11";
# services.httpd.enable = true;
# services.httpd.adminAddr = "foo@example.org";
# networking.firewall = {
# enable = true;
# allowedTCPPorts = [ 80 ];
# };
# };
# };
containers.wasabi = {
ephemeral = true;
autoStart = true;
privateNetwork = true;
hostAddress = "192.168.100.2";
localAddress = "192.168.100.11";
config =
{ config, pkgs, ... }:
{
system.stateVersion = "24.11";
services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.org";
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 ];
};
};
};
# virtualisation.oci-containers.containers = {
# ntest = {
# image = "nginx:alpine";
# ports = [
# "127.0.0.1:8085:80"
# ];
# };
# };
virtualisation.oci-containers.backend = "docker";
security.acme.acceptTerms = true;
security.acme.defaults.email = "admin@joshuabell.xyz";
services.nginx = {
enable = true;
recommendedGzipSettings = true;
@ -59,45 +72,13 @@
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts = {
# "local.belljm.com" = {
# # enableACME = true;
# # forceSSL = true;
# locations."/".proxyPass = "http://${config.containers.wasabi.localAddress}:80";
# };
# "127.0.0.1" = {
# locations."/wasabi/" = {
# extraConfig = ''
# rewrite ^/wasabi/(.*) /$1 break;
# '';
# proxyPass = "http://${config.containers.wasabi.localAddress}:80/";
# };
# locations."/" = {
# return = "404"; # or 444 for drop
# };
# };
"git.joshuabell.xyz" = {
# GIT passthrough
locations."/" = {
proxyPass = "http://10.0.0.2:3000";
};
};
"_" = {
default = true;
locations."/" = {
return = "404"; # or 444 for drop
return = "444"; # or 444 for drop
};
};
};
# STREAMS
streamConfig = ''
server {
listen 3032;
proxy_pass 10.0.0.2:3032;
}
'';
};
networking.firewall.allowedTCPPorts = [

283
hosts/lio/flake.lock generated
View file

@ -28,15 +28,16 @@
"common": {
"inputs": {
"home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2",
"ragenix": "ragenix"
},
"locked": {
"lastModified": 1745953495,
"narHash": "sha256-8FzNmiQ4FuAk3Lz1vP3Up2npluYPXe5eos05h3npvrA=",
"lastModified": 1750780721,
"narHash": "sha256-EgWdBolm8wPXY9iuTHPXykJiQRzSnfXzkCXpNooxEB8=",
"ref": "refs/heads/master",
"rev": "37d4ac85b2450a407d8528aef1f5de38fbabb72d",
"revCount": 413,
"rev": "2004734c7b7d77638874b63e147970199830c3fd",
"revCount": 500,
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/dotfiles"
},
@ -107,16 +108,16 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1744743431,
"narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
"lastModified": 1749154018,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"owner": "rycee",
"repo": "home-manager",
"rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-24.11",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
@ -144,29 +145,45 @@
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
"type": "github"
},
"original": {
"owner": "gmodena",
"ref": "latest",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"lastModified": 1749024892,
"narHash": "sha256-OGcDEz60TXQC+gVz5sdtgGJdKVYr6rwdzQKuZAJQpCA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"rev": "8f1b52b04f2cb6e5ead50bd28d76528a2f0380ef",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
@ -194,27 +211,27 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1745868005,
"narHash": "sha256-hZScOyQphT4RUmSEJX+2OxjIlGgLwSd8iW1LNtAWIOs=",
"lastModified": 1750622754,
"narHash": "sha256-kMhs+YzV4vPGfuTpD3mwzibWUE6jotw5Al2wczI0Pv8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "330d0a4167924b43f31cc9406df363f71b768a02",
"rev": "c7ab75210cb8cb16ddd8f290755d9558edde7ee1",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1745250177,
"narHash": "sha256-NPkMDgRHLVuNHs7y/MK3qYbE/5uo42mskUIygSHEOLM=",
"lastModified": 1750188666,
"narHash": "sha256-yAfLvtbCzSigTfbsJeOrvljS7VYLAwi2RZ6F+qd+A5E=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d1e61a9c582ec2f701b36d4600ae19b8099c5211",
"rev": "aa36c6c05d04f90cf890f87845be9380cf7b83c2",
"type": "github"
},
"original": {
@ -226,11 +243,11 @@
"nvim_plugin-Almo7aya/openingh.nvim": {
"flake": false,
"locked": {
"lastModified": 1744327913,
"narHash": "sha256-WQ7GbrjtikpMnzzME59QSibZI0hjzt/KAGDmXa677Rw=",
"lastModified": 1746139196,
"narHash": "sha256-/FlNLWOSIrOYiWzAcgOdu9//QTorCDV1KWb+h6eqLwk=",
"owner": "Almo7aya",
"repo": "openingh.nvim",
"rev": "ce19b5ffe09e35cec600ba794df280cbb72c015f",
"rev": "7cc8c897cb6b34d8ed28e99d95baccef609ed251",
"type": "github"
},
"original": {
@ -242,11 +259,11 @@
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": {
"flake": false,
"locked": {
"lastModified": 1745008876,
"narHash": "sha256-/GdJNqoDpdsPCOjcESbtEEDCz5TYkvbPRY1/T0gF7IY=",
"lastModified": 1750069301,
"narHash": "sha256-lIAsudDunKOY69r00czO+rmMbM+woIdIGroT4dUZAFc=",
"owner": "CopilotC-Nvim",
"repo": "CopilotChat.nvim",
"rev": "634aa58117a9b70b3f08a0b150f11afd64f1c0eb",
"rev": "5df0b668d23c05c173f6bc79bb19642215b8b66a",
"type": "github"
},
"original": {
@ -274,11 +291,11 @@
"nvim_plugin-L3MON4D3/LuaSnip": {
"flake": false,
"locked": {
"lastModified": 1736009707,
"narHash": "sha256-3ecm5SDTcSOh256xSQPHhddQfMpepiEIpv58fHXrVg0=",
"lastModified": 1749564222,
"narHash": "sha256-StttV19d5gWbFPxerCOX3dXIaRwg1oeUANIbNztALps=",
"owner": "L3MON4D3",
"repo": "LuaSnip",
"rev": "c9b9a22904c97d0eb69ccb9bab76037838326817",
"rev": "fb525166ccc30296fb3457441eb979113de46b00",
"type": "github"
},
"original": {
@ -290,11 +307,11 @@
"nvim_plugin-MeanderingProgrammer/render-markdown.nvim": {
"flake": false,
"locked": {
"lastModified": 1744934679,
"narHash": "sha256-rTX+CCVOOU6ZzM5NvymJvOfJF10BRMfl8hdSJz0zw+Q=",
"lastModified": 1749846779,
"narHash": "sha256-j1aslQ3SPD9ZuhQDEt9e5GD+VZ6N6Re7IjVFXycaxWI=",
"owner": "MeanderingProgrammer",
"repo": "render-markdown.nvim",
"rev": "dfc1299d9f32b53b34b7ac6c3a7553b5fd29977f",
"rev": "76f7ce56ccb913632745714f160faa53164c5574",
"type": "github"
},
"original": {
@ -306,11 +323,11 @@
"nvim_plugin-MunifTanjim/nui.nvim": {
"flake": false,
"locked": {
"lastModified": 1741233810,
"narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=",
"lastModified": 1749392788,
"narHash": "sha256-41slmnvt1z7sCxvpiVuFmQ9g7eCaxQi1dDCL3AxSL1A=",
"owner": "MunifTanjim",
"repo": "nui.nvim",
"rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb",
"rev": "de740991c12411b663994b2860f1a4fd0937c130",
"type": "github"
},
"original": {
@ -322,11 +339,11 @@
"nvim_plugin-RRethy/vim-illuminate": {
"flake": false,
"locked": {
"lastModified": 1744859423,
"narHash": "sha256-zqXKkrUNTH/EIx3PBRN8+mQcbWa6fO9i/UoSeav5R/w=",
"lastModified": 1748105647,
"narHash": "sha256-KqAJRCtDBG5xsvNsqkxoBdDckg02u4NBBreYQw7BphA=",
"owner": "RRethy",
"repo": "vim-illuminate",
"rev": "1fa4b23409e22a03823648e344c77f260e2572cb",
"rev": "0d1e93684da00ab7c057410fecfc24f434698898",
"type": "github"
},
"original": {
@ -338,11 +355,11 @@
"nvim_plugin-Saecki/crates.nvim": {
"flake": false,
"locked": {
"lastModified": 1744379189,
"narHash": "sha256-HsdDeV3mMQwrzlP23bJnNkiSL5OELgn0WBTERxehviE=",
"lastModified": 1748637634,
"narHash": "sha256-sDjG6fjnQsyYtdf7xpmOW193e7USh6ghrFzo6NoLyP8=",
"owner": "Saecki",
"repo": "crates.nvim",
"rev": "73d2c590c74a0c582144987a4decb4a642755859",
"rev": "5d8b1bef686db0fabe5f1bb593744b617e8f1405",
"type": "github"
},
"original": {
@ -354,11 +371,11 @@
"nvim_plugin-aznhe21/actions-preview.nvim": {
"flake": false,
"locked": {
"lastModified": 1740589350,
"narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=",
"lastModified": 1745779150,
"narHash": "sha256-rQjwlu5gQcOvxF72lr9ugPRl0W78wCWGWPhpN1oOMbs=",
"owner": "aznhe21",
"repo": "actions-preview.nvim",
"rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2",
"rev": "36513ad213855d497b7dd3391a24d1d75d58e36f",
"type": "github"
},
"original": {
@ -370,11 +387,11 @@
"nvim_plugin-b0o/schemastore.nvim": {
"flake": false,
"locked": {
"lastModified": 1745020938,
"narHash": "sha256-qDcVJ2RovKSIcUdVnXNcQZHoAf75IqsTMlsclDFrT2U=",
"lastModified": 1750179699,
"narHash": "sha256-EGt75z/NbjzDXxsyXT9Qj2wWOf06ijUr1If5ljmfLqo=",
"owner": "b0o",
"repo": "schemastore.nvim",
"rev": "e623e30df4053cacc67fb7eb04e1bd0fadba52b4",
"rev": "45fd6c22f30487586c771072dc8c5230931e4c7b",
"type": "github"
},
"original": {
@ -386,11 +403,11 @@
"nvim_plugin-catppuccin/nvim": {
"flake": false,
"locked": {
"lastModified": 1740764472,
"narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=",
"lastModified": 1749271780,
"narHash": "sha256-wt/Ybjgr4N80B+QsyANs1QezM7PpFceUWSweRFgkhl0=",
"owner": "catppuccin",
"repo": "nvim",
"rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429",
"rev": "fa42eb5e26819ef58884257d5ae95dd0552b9a66",
"type": "github"
},
"original": {
@ -402,11 +419,11 @@
"nvim_plugin-chrisgrieser/nvim-early-retirement": {
"flake": false,
"locked": {
"lastModified": 1744450582,
"narHash": "sha256-ybs65ObtjcUBaGglxP3SIpYjlGSEk/MQI9nSN8S3Q1w=",
"lastModified": 1750108178,
"narHash": "sha256-3I7Xup+v9Yq9/nJQ1F5CDW99oFQcxbinv7VQcKeA16Y=",
"owner": "chrisgrieser",
"repo": "nvim-early-retirement",
"rev": "3b14762a0186b1922cb5ddf3a760d8521c7b3d7e",
"rev": "d9ffd8f70ed6d466cecd3e7e2dd1425b0010932f",
"type": "github"
},
"original": {
@ -578,11 +595,11 @@
"nvim_plugin-lewis6991/gitsigns.nvim": {
"flake": false,
"locked": {
"lastModified": 1745219545,
"narHash": "sha256-7WQ428oPr43z01HvNpArZJcUov61/pDtLqJtkEKnBAY=",
"lastModified": 1750058704,
"narHash": "sha256-V9aXXR9ZP2G/XInHt07RylC4rS+AyMXAAfODvC6pVxw=",
"owner": "lewis6991",
"repo": "gitsigns.nvim",
"rev": "2149fc2009d1117d58e86e56836f70c969f60a82",
"rev": "88205953bd748322b49b26e1dfb0389932520dc9",
"type": "github"
},
"original": {
@ -626,11 +643,11 @@
"nvim_plugin-m4xshen/hardtime.nvim": {
"flake": false,
"locked": {
"lastModified": 1744007533,
"narHash": "sha256-KCz8UNL7SkI4cP7wKmQPJgkI4TsQftnHjaMSBYCgrOY=",
"lastModified": 1750160168,
"narHash": "sha256-hzFX5mZRxTDDIp/iBVl4lqEaQryLQOe7jFJmXDwq4J8=",
"owner": "m4xshen",
"repo": "hardtime.nvim",
"rev": "9aaec65de041bddfc4c0af66919030d2950bcea8",
"rev": "b9a989191b3a97c9316a0efea02341c4cdab845a",
"type": "github"
},
"original": {
@ -658,11 +675,11 @@
"nvim_plugin-mfussenegger/nvim-lint": {
"flake": false,
"locked": {
"lastModified": 1745090089,
"narHash": "sha256-Pwxk2C5WaaaW7Ookbq2edvLSJh6ZQc3iWMxowHyQkFQ=",
"lastModified": 1749731021,
"narHash": "sha256-V4JJ1VQXoIsUBTxe6ykbkyo6LxEAr+QEIqIV3mA9phs=",
"owner": "mfussenegger",
"repo": "nvim-lint",
"rev": "d698d3b6fd7b1b85657d05a2a31d843ddb682c63",
"rev": "2b0039b8be9583704591a13129c600891ac2c596",
"type": "github"
},
"original": {
@ -674,11 +691,11 @@
"nvim_plugin-mrcjkb/rustaceanvim": {
"flake": false,
"locked": {
"lastModified": 1745050087,
"narHash": "sha256-nkCVQ+TXiaKm17HXaAMVuRMV3Jbxv8aRIO6re4zEgDw=",
"lastModified": 1750024924,
"narHash": "sha256-gmOqCnSLGDNerXyuuNhkyL/pSJitnyqBdWC3LejZoS4=",
"owner": "mrcjkb",
"repo": "rustaceanvim",
"rev": "69636cedf0d6aabf0eac3dfbce24883fe1051a3d",
"rev": "2fdf224107e5bc29fb5c3a175f5f2c9161b34741",
"type": "github"
},
"original": {
@ -690,11 +707,11 @@
"nvim_plugin-neovim/nvim-lspconfig": {
"flake": false,
"locked": {
"lastModified": 1745247686,
"narHash": "sha256-rnm/BJNMVxcYH/ZXf1HciXgG0UWhAeQQniOaSvi0E40=",
"lastModified": 1750169575,
"narHash": "sha256-lJWMFgQLQhKUuv50WrYXlJ3TFqT04nVbmcBGVDaSz0k=",
"owner": "neovim",
"repo": "nvim-lspconfig",
"rev": "b335f1c72877f101248d3b085d4b7da7576361d7",
"rev": "99d3a0f26bfe402f45257c1398287aef252cbe2d",
"type": "github"
},
"original": {
@ -706,11 +723,11 @@
"nvim_plugin-nosduco/remote-sshfs.nvim": {
"flake": false,
"locked": {
"lastModified": 1743352525,
"narHash": "sha256-YNqj1vPc2oyVrSgp+huoMkrUAp2Lx3G4W52liOujP6A=",
"lastModified": 1748880705,
"narHash": "sha256-eTnVFOR7FHlkU9kwrk3q3pNo/U8OR2gJrnrMUQKGi2A=",
"owner": "nosduco",
"repo": "remote-sshfs.nvim",
"rev": "1ae5784bf0729c8b03cb7fe6561508a673c9adc8",
"rev": "6e893c32ff7c5b8d0d501b748c525fa53963fb35",
"type": "github"
},
"original": {
@ -754,11 +771,11 @@
"nvim_plugin-nvim-lualine/lualine.nvim": {
"flake": false,
"locked": {
"lastModified": 1744482854,
"narHash": "sha256-XeAFXg6GWzMJV/HzfdCXtv/effAHVU7mioFKTf1kDc8=",
"lastModified": 1749383457,
"narHash": "sha256-2aPgA7riA/FubQpTkqsxLKl7OZ8L6FkucNHc2QEx2HQ=",
"owner": "nvim-lualine",
"repo": "lualine.nvim",
"rev": "86fe39534b7da729a1ac56c0466e76f2c663dc42",
"rev": "a94fc68960665e54408fe37dcf573193c4ce82c9",
"type": "github"
},
"original": {
@ -770,11 +787,11 @@
"nvim_plugin-nvim-telescope/telescope-file-browser.nvim": {
"flake": false,
"locked": {
"lastModified": 1729728595,
"narHash": "sha256-VJbRi91TTOwUkQYyTM6Njl7MtX8/mOjINiqWYWEtyxg=",
"lastModified": 1750040034,
"narHash": "sha256-NHcU3c+1pLeypHr9xXKmqvdwB1QM/vj5axzjpFEQCLQ=",
"owner": "nvim-telescope",
"repo": "telescope-file-browser.nvim",
"rev": "626998e5c1b71c130d8bc6cf7abb6709b98287bb",
"rev": "7bf55ed0ff5be182ad3301cff266581fc1c56cce",
"type": "github"
},
"original": {
@ -818,11 +835,11 @@
"nvim_plugin-nvim-telescope/telescope.nvim": {
"flake": false,
"locked": {
"lastModified": 1742346322,
"narHash": "sha256-GF1zOHZItVZm3bx2wqI4hPj7EXQJ2F9KS4MtaEt2gm0=",
"lastModified": 1747012888,
"narHash": "sha256-JpW0ehsX81yVbKNzrYOe1hdgVMs6oaaxMLH6lECnOJg=",
"owner": "nvim-telescope",
"repo": "telescope.nvim",
"rev": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5",
"rev": "b4da76be54691e854d3e0e02c36b0245f945c2c7",
"type": "github"
},
"original": {
@ -834,11 +851,11 @@
"nvim_plugin-nvim-tree/nvim-tree.lua": {
"flake": false,
"locked": {
"lastModified": 1745201081,
"narHash": "sha256-zQsqyJgqlvxniKOtwPSzArUaOwvIgo6Xm+oAjAbPda4=",
"lastModified": 1750143568,
"narHash": "sha256-E2YdGlvvpnT/PiayfQldwpbCnjsyNDcoTzxgMf2ajV8=",
"owner": "nvim-tree",
"repo": "nvim-tree.lua",
"rev": "be5b788f2dc1522c73fb7afad9092331c8aebe80",
"rev": "d54a1875a91e1a705795ea26074795210b92ce7f",
"type": "github"
},
"original": {
@ -850,11 +867,11 @@
"nvim_plugin-nvim-tree/nvim-web-devicons": {
"flake": false,
"locked": {
"lastModified": 1745131674,
"narHash": "sha256-uoT45oaeY5c1+A7pVQIS+Bj9JnrSy9rQAecvaWZht+c=",
"lastModified": 1747360641,
"narHash": "sha256-+RHeFaeCF/iwAf8qAOjbEIl3YcnrBMVfkQnnzDNhyTA=",
"owner": "nvim-tree",
"repo": "nvim-web-devicons",
"rev": "855c97005c8eebcdd19846f2e54706bffd40ee96",
"rev": "1fb58cca9aebbc4fd32b086cb413548ce132c127",
"type": "github"
},
"original": {
@ -866,11 +883,11 @@
"nvim_plugin-nvim-treesitter/nvim-treesitter-context": {
"flake": false,
"locked": {
"lastModified": 1744921782,
"narHash": "sha256-w3I3w1SGqtpUnu4KQyaLue+k96XmkgA3+DpxSEjj+WI=",
"lastModified": 1749893617,
"narHash": "sha256-QJAfpVdTHTxjUgggQekRLvNYuvG12gjtfTGybfcFdyo=",
"owner": "nvim-treesitter",
"repo": "nvim-treesitter-context",
"rev": "6daca3ad780f045550b820f262002f35175a6c04",
"rev": "1a1a7c5d6d75cb49bf64049dafab15ebe294a79f",
"type": "github"
},
"original": {
@ -882,11 +899,11 @@
"nvim_plugin-rafamadriz/friendly-snippets": {
"flake": false,
"locked": {
"lastModified": 1745202387,
"narHash": "sha256-R6xE5vwgFtyEYpET0E4ecZejuV/lNHFkumk+wGf3lbI=",
"lastModified": 1745949052,
"narHash": "sha256-FzApcTbWfFkBD9WsYMhaCyn6ky8UmpUC2io/co/eByM=",
"owner": "rafamadriz",
"repo": "friendly-snippets",
"rev": "fc8f183479a472df60aa86f00e295462f2308178",
"rev": "572f5660cf05f8cd8834e096d7b4c921ba18e175",
"type": "github"
},
"original": {
@ -914,11 +931,11 @@
"nvim_plugin-rmagatti/auto-session": {
"flake": false,
"locked": {
"lastModified": 1745009508,
"narHash": "sha256-NCytp+DiOo3obZeQ9bpaEaNMfstf1Ytn0OR5mAWodLw=",
"lastModified": 1749967462,
"narHash": "sha256-1pIGu/GJ4FiMH/yHhoo6Gu0HLC3rFQiesJBuv8uE7Vw=",
"owner": "rmagatti",
"repo": "auto-session",
"rev": "71c8af9a99e96b9d2533cf4bac4dfed1eafab923",
"rev": "fffb13dcbe8731b8650e5bf1caa749a485d20556",
"type": "github"
},
"original": {
@ -978,11 +995,11 @@
"nvim_plugin-stevearc/conform.nvim": {
"flake": false,
"locked": {
"lastModified": 1745180802,
"narHash": "sha256-J/GKqn2VHv/ydaFXWCFduV2B7iwZzHtUvFArszxf2Cw=",
"lastModified": 1749498876,
"narHash": "sha256-n1IPUNwD14WlDU4zbgfJuhXQcVMt8oc4wCuUJBPJ+y4=",
"owner": "stevearc",
"repo": "conform.nvim",
"rev": "372fc521f8421b7830ea6db4d6ea3bae1c77548c",
"rev": "8132ec733eed3bf415b97b76797ca41b59f51d7d",
"type": "github"
},
"original": {
@ -1007,6 +1024,22 @@
"type": "github"
}
},
"nvim_plugin-supermaven-inc/supermaven-nvim": {
"flake": false,
"locked": {
"lastModified": 1728314930,
"narHash": "sha256-1z3WKIiikQqoweReUyK5O8MWSRN5y95qcxM6qzlKMME=",
"owner": "supermaven-inc",
"repo": "supermaven-nvim",
"rev": "07d20fce48a5629686aefb0a7cd4b25e33947d50",
"type": "github"
},
"original": {
"owner": "supermaven-inc",
"repo": "supermaven-nvim",
"type": "github"
}
},
"nvim_plugin-tpope/vim-sleuth": {
"flake": false,
"locked": {
@ -1042,11 +1075,11 @@
"nvim_plugin-uga-rosa/ccc.nvim": {
"flake": false,
"locked": {
"lastModified": 1744103477,
"narHash": "sha256-MSh9tJv9UNfceO1yQIvID36x/fLGmgFcnIzJ9LOog0A=",
"lastModified": 1746537659,
"narHash": "sha256-3TZ8VmvdgQ9n63m78C3r4OIUkVQHTHBvC24ixBdhTig=",
"owner": "uga-rosa",
"repo": "ccc.nvim",
"rev": "af2cf5a963f401aad868c065222ee13d4bbc9050",
"rev": "9d1a256e006decc574789dfc7d628ca11644d4c2",
"type": "github"
},
"original": {
@ -1071,22 +1104,6 @@
"type": "github"
}
},
"nvim_plugin-yetone/avante.nvim": {
"flake": false,
"locked": {
"lastModified": 1744881650,
"narHash": "sha256-BzRFgcBG4vn7mamwLvviMl4erTPwg+1AkAb3Ss4Kq8E=",
"owner": "yetone",
"repo": "avante.nvim",
"rev": "eb1cd44731783024621beafe4e46204cbc9a4320",
"type": "github"
},
"original": {
"owner": "yetone",
"repo": "avante.nvim",
"type": "github"
}
},
"nvim_plugin-zbirenbaum/copilot-cmp": {
"flake": false,
"locked": {
@ -1106,11 +1123,11 @@
"nvim_plugin-zbirenbaum/copilot.lua": {
"flake": false,
"locked": {
"lastModified": 1745111203,
"narHash": "sha256-PaWWT0mSsTfnBMrmHagHgemGN5Be6rbikVVW4ZBK/Zs=",
"lastModified": 1749137204,
"narHash": "sha256-qxHpIsFFLDG/jtk6e1hkOZgDSRA5Q0+DMxxAxckNhIc=",
"owner": "zbirenbaum",
"repo": "copilot.lua",
"rev": "dc579f98536029610cfa32c6bad86c0d24363679",
"rev": "c1bb86abbed1a52a11ab3944ef00c8410520543d",
"type": "github"
},
"original": {
@ -1128,11 +1145,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741508717,
"narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=",
"lastModified": 1744897914,
"narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=",
"owner": "yaxitech",
"repo": "ragenix",
"rev": "2a2bea99d74927e54adf53cbf113219def67d5c9",
"rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223",
"type": "github"
},
"original": {
@ -1200,21 +1217,21 @@
"nvim_plugin-sindrets/diffview.nvim": "nvim_plugin-sindrets/diffview.nvim",
"nvim_plugin-stevearc/conform.nvim": "nvim_plugin-stevearc/conform.nvim",
"nvim_plugin-stevearc/dressing.nvim": "nvim_plugin-stevearc/dressing.nvim",
"nvim_plugin-supermaven-inc/supermaven-nvim": "nvim_plugin-supermaven-inc/supermaven-nvim",
"nvim_plugin-tpope/vim-sleuth": "nvim_plugin-tpope/vim-sleuth",
"nvim_plugin-tpope/vim-surround": "nvim_plugin-tpope/vim-surround",
"nvim_plugin-uga-rosa/ccc.nvim": "nvim_plugin-uga-rosa/ccc.nvim",
"nvim_plugin-windwp/nvim-ts-autotag": "nvim_plugin-windwp/nvim-ts-autotag",
"nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim",
"nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp",
"nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1745585761,
"narHash": "sha256-xS3068xhndFrZh9GcTTNTmeebGq1A3uVykRRdzJOj3Y=",
"lastModified": 1750190298,
"narHash": "sha256-ero30lVvCzmdKkY0lZR/RO+oTNTY1WXQh6vhfbcbTIk=",
"ref": "refs/heads/master",
"rev": "e5523910a0c07c88d026d006f5962434bfa53548",
"revCount": 277,
"rev": "1ed03dac446683ef42035b53a410d857855d82d9",
"revCount": 291,
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/nvim"
},
@ -1253,11 +1270,11 @@
]
},
"locked": {
"lastModified": 1745207416,
"narHash": "sha256-2g2TnXgJEvSvpk7ujY69pSplmM3oShhoOidZf1iHTHU=",
"lastModified": 1750127910,
"narHash": "sha256-FIgEIS0RAlOyXGqoj/OufTfcKItYq668yPYL4SXdU0M=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "68a0ff1a43d08aa1ec3730e7e7d06f6da0ba630a",
"rev": "45418795a73b77b7726c62ce265d68cf541ffb49",
"type": "github"
},
"original": {

View file

@ -1,7 +1,6 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
# nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
# Use relative to get current version for testing
# common.url = "path:../../common";
@ -16,7 +15,7 @@
common,
ros_neovim,
...
}:
}@inputs:
let
configuration_name = "lio";
lib = nixpkgs.lib;
@ -25,12 +24,13 @@
nixosConfigurations = {
"${configuration_name}" = (
lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
common.nixosModules.default
ros_neovim.nixosModules.default
./configuration.nix
./hardware-configuration.nix
(import ./containers.nix { inherit common; })
(import ./containers.nix { inherit inputs; })
(
{ config, pkgs, ... }:
{
@ -44,7 +44,6 @@
steam
ffmpeg-full
appimage-run
rustdesk-flutter
];
# Also allow this key to work for root user, this will let us use this as a remote builder easier
@ -59,6 +58,7 @@
boot.systemd.enable = true;
secrets.enable = true;
general = {
reporting.enable = true;
disableRemoteBuildsOnLio = true;
};
desktopEnvironment.gnome.enable = true;
@ -70,6 +70,22 @@
tailnet.enableExitNode = true;
ssh.enable = true;
docker.enable = true;
flatpaks = {
enable = true;
packages = [
"org.signal.Signal"
"com.discordapp.Discord"
"md.obsidian.Obsidian"
"com.spotify.Client"
"org.videolan.VLC"
"com.bitwarden.desktop"
"org.openscad.OpenSCAD"
"org.blender.Blender"
"im.riot.Riot"
"com.rustdesk.RustDesk"
"com.google.Chrome"
];
};
};
users = {
# Users are all normal users and default password is password1
@ -86,17 +102,7 @@
];
shell = pkgs.zsh;
packages = with pkgs; [
signal-desktop
spotify
blender
google-chrome
discordo
discord
firefox-esr
openscad
vlc
bitwarden
vaultwarden
sabnzbd
];
};
};

View file

@ -32,17 +32,17 @@
"ragenix": "ragenix"
},
"locked": {
"lastModified": 1745444238,
"narHash": "sha256-zT1T9zC7dr+HApuC390eQHPpCJq4vYvOwYSq507DtFA=",
"lastModified": 1746052265,
"narHash": "sha256-/cb1BPEUb1O/clHP101M52hvUZ2zo8FAyJS7BF/M3Mg=",
"ref": "refs/heads/master",
"rev": "214e6f289da1e888ff547aff173aaffc8517092b",
"revCount": 399,
"rev": "7ae93579413e6bfcc6a55d1fae05ef77dc224676",
"revCount": 436,
"type": "git",
"url": "https://git.joshuabell.xyz/dotfiles"
"url": "https://git.joshuabell.xyz/ringofstorms/dotfiles"
},
"original": {
"type": "git",
"url": "https://git.joshuabell.xyz/dotfiles"
"url": "https://git.joshuabell.xyz/ringofstorms/dotfiles"
}
},
"crane": {
@ -1263,17 +1263,17 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1744648171,
"narHash": "sha256-DodI1yschNbktPZiGKM6Gke2pgEM0J4wkVaM+Ygk0Cs=",
"lastModified": 1745585761,
"narHash": "sha256-xS3068xhndFrZh9GcTTNTmeebGq1A3uVykRRdzJOj3Y=",
"ref": "refs/heads/master",
"rev": "0a14d0e7451d17a2f368749cf269c6a59aa35059",
"revCount": 274,
"rev": "e5523910a0c07c88d026d006f5962434bfa53548",
"revCount": 277,
"type": "git",
"url": "https://git.joshuabell.xyz/nvim"
"url": "https://git.joshuabell.xyz/ringofstorms/nvim"
},
"original": {
"type": "git",
"url": "https://git.joshuabell.xyz/nvim"
"url": "https://git.joshuabell.xyz/ringofstorms/nvim"
}
},
"rust-overlay": {

View file

@ -47,7 +47,6 @@
./hardware-configuration.nix
./nginx.nix
./containers/vaultwarden.nix
./containers/opengist.nix
./mods/postgresql.nix
./mods/atuin.nix
./mods/rustdesk-server.nix

View file

@ -45,18 +45,27 @@
'';
};
};
};
in
{
# Redirect self IP to domain
"64.181.210.7" = {
locations."/" = {
return = "301 https://o001.joshuabell.xyz";
return = "301 https://joshuabell.xyz";
};
};
"o001.joshuabell.xyz" = {
"100.64.0.11" = tailnetConfig;
"o001.net.joshuabell.xyz" = tailnetConfig;
"www.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
return = "301 https://joshuabell.xyz";
};
};
"joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations = {
@ -74,7 +83,6 @@
<html>
<body style="width:100vw;height:100vh;overflow:hidden">
<div style="display: flex;width:100vw;height:100vh;justify-content: center;align-items:center;text-align:center;overflow:hidden">
In the void you roam,</br>
A page that cannot be found-</br>
Turn back, seek anew.
@ -87,20 +95,96 @@
};
};
"100.64.0.11" = tailnetConfig;
"o001.net.joshuabell.xyz" = tailnetConfig;
"www.ellalala.com" = {
enableACME = true;
forceSSL = true;
locations."/" = {
return = "301 https://ellalala.com";
};
};
"ellalala.com" = {
enableACME = true;
forceSSL = true;
locations."/" = {
return = "444";
};
};
# PROXY HOSTS
"chat.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyWebsockets = true;
proxyPass = "http://100.64.0.1:3080";
};
};
"gist.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://100.64.0.13";
};
};
"git.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://100.64.0.13";
};
};
"obsidiansync.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://100.64.0.1:5984";
};
extraConfig = ''
client_max_body_size 100M;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
'';
};
"jellyfin.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://100.64.0.13";
};
};
"media.joshuabell.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://100.64.0.13";
};
};
"_" = {
default = true;
locations."/" = {
return = "404"; # 404 for not found or 444 for drop
return = "444"; # 404 for not found or 444 for drop
};
};
};
# STREAMS
streamConfig = ''
server {
listen 3032;
proxy_pass 100.64.0.13:3032;
}
'';
};
# NOTE Oracle also has security rules that must expose these ports so this alone will not work! See readme
networking.firewall.allowedTCPPorts = [
80 # web http
443 # web https
3032 # ssh for git server
];
}

289
hosts/oren/flake.lock generated
View file

@ -28,15 +28,16 @@
"common": {
"inputs": {
"home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2",
"ragenix": "ragenix"
},
"locked": {
"lastModified": 1745957654,
"narHash": "sha256-7srBa6eMbDzR5zD1TFmSOw5gBy+vRsoEC3DrlQD8Vig=",
"lastModified": 1750257405,
"narHash": "sha256-Ztt+5z2BmPqxvpQT4yLV/8gaWD5Txedr3Gd38gTXOGU=",
"ref": "refs/heads/master",
"rev": "46d5748992a9cbbf42f3c6e501288d5cf97de706",
"revCount": 425,
"rev": "b715d8b5335b2302fefde329723bd3b4a0986c70",
"revCount": 483,
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/dotfiles"
},
@ -107,16 +108,16 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1744743431,
"narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
"lastModified": 1749154018,
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"owner": "rycee",
"repo": "home-manager",
"rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-24.11",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
@ -144,29 +145,45 @@
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
"type": "github"
},
"original": {
"owner": "gmodena",
"ref": "latest",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"lastModified": 1749024892,
"narHash": "sha256-OGcDEz60TXQC+gVz5sdtgGJdKVYr6rwdzQKuZAJQpCA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"rev": "8f1b52b04f2cb6e5ead50bd28d76528a2f0380ef",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1745794561,
"narHash": "sha256-T36rUZHUART00h3dW4sV5tv4MrXKT7aWjNfHiZz7OHg=",
"lastModified": 1750134718,
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5461b7fa65f3ca74cef60be837fd559a8918eaa0",
"rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
"type": "github"
},
"original": {
@ -178,11 +195,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"lastModified": 1749794982,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
"type": "github"
},
"original": {
@ -210,27 +227,27 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1745868005,
"narHash": "sha256-hZScOyQphT4RUmSEJX+2OxjIlGgLwSd8iW1LNtAWIOs=",
"lastModified": 1750133334,
"narHash": "sha256-urV51uWH7fVnhIvsZIELIYalMYsyr2FCalvlRTzqWRw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "330d0a4167924b43f31cc9406df363f71b768a02",
"rev": "36ab78dab7da2e4e27911007033713bab534187b",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1745250177,
"narHash": "sha256-NPkMDgRHLVuNHs7y/MK3qYbE/5uo42mskUIygSHEOLM=",
"lastModified": 1750188666,
"narHash": "sha256-yAfLvtbCzSigTfbsJeOrvljS7VYLAwi2RZ6F+qd+A5E=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d1e61a9c582ec2f701b36d4600ae19b8099c5211",
"rev": "aa36c6c05d04f90cf890f87845be9380cf7b83c2",
"type": "github"
},
"original": {
@ -242,11 +259,11 @@
"nvim_plugin-Almo7aya/openingh.nvim": {
"flake": false,
"locked": {
"lastModified": 1744327913,
"narHash": "sha256-WQ7GbrjtikpMnzzME59QSibZI0hjzt/KAGDmXa677Rw=",
"lastModified": 1746139196,
"narHash": "sha256-/FlNLWOSIrOYiWzAcgOdu9//QTorCDV1KWb+h6eqLwk=",
"owner": "Almo7aya",
"repo": "openingh.nvim",
"rev": "ce19b5ffe09e35cec600ba794df280cbb72c015f",
"rev": "7cc8c897cb6b34d8ed28e99d95baccef609ed251",
"type": "github"
},
"original": {
@ -258,11 +275,11 @@
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": {
"flake": false,
"locked": {
"lastModified": 1745008876,
"narHash": "sha256-/GdJNqoDpdsPCOjcESbtEEDCz5TYkvbPRY1/T0gF7IY=",
"lastModified": 1750069301,
"narHash": "sha256-lIAsudDunKOY69r00czO+rmMbM+woIdIGroT4dUZAFc=",
"owner": "CopilotC-Nvim",
"repo": "CopilotChat.nvim",
"rev": "634aa58117a9b70b3f08a0b150f11afd64f1c0eb",
"rev": "5df0b668d23c05c173f6bc79bb19642215b8b66a",
"type": "github"
},
"original": {
@ -290,11 +307,11 @@
"nvim_plugin-L3MON4D3/LuaSnip": {
"flake": false,
"locked": {
"lastModified": 1736009707,
"narHash": "sha256-3ecm5SDTcSOh256xSQPHhddQfMpepiEIpv58fHXrVg0=",
"lastModified": 1749564222,
"narHash": "sha256-StttV19d5gWbFPxerCOX3dXIaRwg1oeUANIbNztALps=",
"owner": "L3MON4D3",
"repo": "LuaSnip",
"rev": "c9b9a22904c97d0eb69ccb9bab76037838326817",
"rev": "fb525166ccc30296fb3457441eb979113de46b00",
"type": "github"
},
"original": {
@ -306,11 +323,11 @@
"nvim_plugin-MeanderingProgrammer/render-markdown.nvim": {
"flake": false,
"locked": {
"lastModified": 1744934679,
"narHash": "sha256-rTX+CCVOOU6ZzM5NvymJvOfJF10BRMfl8hdSJz0zw+Q=",
"lastModified": 1749846779,
"narHash": "sha256-j1aslQ3SPD9ZuhQDEt9e5GD+VZ6N6Re7IjVFXycaxWI=",
"owner": "MeanderingProgrammer",
"repo": "render-markdown.nvim",
"rev": "dfc1299d9f32b53b34b7ac6c3a7553b5fd29977f",
"rev": "76f7ce56ccb913632745714f160faa53164c5574",
"type": "github"
},
"original": {
@ -322,11 +339,11 @@
"nvim_plugin-MunifTanjim/nui.nvim": {
"flake": false,
"locked": {
"lastModified": 1741233810,
"narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=",
"lastModified": 1749392788,
"narHash": "sha256-41slmnvt1z7sCxvpiVuFmQ9g7eCaxQi1dDCL3AxSL1A=",
"owner": "MunifTanjim",
"repo": "nui.nvim",
"rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb",
"rev": "de740991c12411b663994b2860f1a4fd0937c130",
"type": "github"
},
"original": {
@ -338,11 +355,11 @@
"nvim_plugin-RRethy/vim-illuminate": {
"flake": false,
"locked": {
"lastModified": 1744859423,
"narHash": "sha256-zqXKkrUNTH/EIx3PBRN8+mQcbWa6fO9i/UoSeav5R/w=",
"lastModified": 1748105647,
"narHash": "sha256-KqAJRCtDBG5xsvNsqkxoBdDckg02u4NBBreYQw7BphA=",
"owner": "RRethy",
"repo": "vim-illuminate",
"rev": "1fa4b23409e22a03823648e344c77f260e2572cb",
"rev": "0d1e93684da00ab7c057410fecfc24f434698898",
"type": "github"
},
"original": {
@ -354,11 +371,11 @@
"nvim_plugin-Saecki/crates.nvim": {
"flake": false,
"locked": {
"lastModified": 1744379189,
"narHash": "sha256-HsdDeV3mMQwrzlP23bJnNkiSL5OELgn0WBTERxehviE=",
"lastModified": 1748637634,
"narHash": "sha256-sDjG6fjnQsyYtdf7xpmOW193e7USh6ghrFzo6NoLyP8=",
"owner": "Saecki",
"repo": "crates.nvim",
"rev": "73d2c590c74a0c582144987a4decb4a642755859",
"rev": "5d8b1bef686db0fabe5f1bb593744b617e8f1405",
"type": "github"
},
"original": {
@ -370,11 +387,11 @@
"nvim_plugin-aznhe21/actions-preview.nvim": {
"flake": false,
"locked": {
"lastModified": 1740589350,
"narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=",
"lastModified": 1745779150,
"narHash": "sha256-rQjwlu5gQcOvxF72lr9ugPRl0W78wCWGWPhpN1oOMbs=",
"owner": "aznhe21",
"repo": "actions-preview.nvim",
"rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2",
"rev": "36513ad213855d497b7dd3391a24d1d75d58e36f",
"type": "github"
},
"original": {
@ -386,11 +403,11 @@
"nvim_plugin-b0o/schemastore.nvim": {
"flake": false,
"locked": {
"lastModified": 1745020938,
"narHash": "sha256-qDcVJ2RovKSIcUdVnXNcQZHoAf75IqsTMlsclDFrT2U=",
"lastModified": 1750179699,
"narHash": "sha256-EGt75z/NbjzDXxsyXT9Qj2wWOf06ijUr1If5ljmfLqo=",
"owner": "b0o",
"repo": "schemastore.nvim",
"rev": "e623e30df4053cacc67fb7eb04e1bd0fadba52b4",
"rev": "45fd6c22f30487586c771072dc8c5230931e4c7b",
"type": "github"
},
"original": {
@ -402,11 +419,11 @@
"nvim_plugin-catppuccin/nvim": {
"flake": false,
"locked": {
"lastModified": 1740764472,
"narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=",
"lastModified": 1749271780,
"narHash": "sha256-wt/Ybjgr4N80B+QsyANs1QezM7PpFceUWSweRFgkhl0=",
"owner": "catppuccin",
"repo": "nvim",
"rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429",
"rev": "fa42eb5e26819ef58884257d5ae95dd0552b9a66",
"type": "github"
},
"original": {
@ -418,11 +435,11 @@
"nvim_plugin-chrisgrieser/nvim-early-retirement": {
"flake": false,
"locked": {
"lastModified": 1744450582,
"narHash": "sha256-ybs65ObtjcUBaGglxP3SIpYjlGSEk/MQI9nSN8S3Q1w=",
"lastModified": 1750108178,
"narHash": "sha256-3I7Xup+v9Yq9/nJQ1F5CDW99oFQcxbinv7VQcKeA16Y=",
"owner": "chrisgrieser",
"repo": "nvim-early-retirement",
"rev": "3b14762a0186b1922cb5ddf3a760d8521c7b3d7e",
"rev": "d9ffd8f70ed6d466cecd3e7e2dd1425b0010932f",
"type": "github"
},
"original": {
@ -594,11 +611,11 @@
"nvim_plugin-lewis6991/gitsigns.nvim": {
"flake": false,
"locked": {
"lastModified": 1745219545,
"narHash": "sha256-7WQ428oPr43z01HvNpArZJcUov61/pDtLqJtkEKnBAY=",
"lastModified": 1750058704,
"narHash": "sha256-V9aXXR9ZP2G/XInHt07RylC4rS+AyMXAAfODvC6pVxw=",
"owner": "lewis6991",
"repo": "gitsigns.nvim",
"rev": "2149fc2009d1117d58e86e56836f70c969f60a82",
"rev": "88205953bd748322b49b26e1dfb0389932520dc9",
"type": "github"
},
"original": {
@ -642,11 +659,11 @@
"nvim_plugin-m4xshen/hardtime.nvim": {
"flake": false,
"locked": {
"lastModified": 1744007533,
"narHash": "sha256-KCz8UNL7SkI4cP7wKmQPJgkI4TsQftnHjaMSBYCgrOY=",
"lastModified": 1750160168,
"narHash": "sha256-hzFX5mZRxTDDIp/iBVl4lqEaQryLQOe7jFJmXDwq4J8=",
"owner": "m4xshen",
"repo": "hardtime.nvim",
"rev": "9aaec65de041bddfc4c0af66919030d2950bcea8",
"rev": "b9a989191b3a97c9316a0efea02341c4cdab845a",
"type": "github"
},
"original": {
@ -674,11 +691,11 @@
"nvim_plugin-mfussenegger/nvim-lint": {
"flake": false,
"locked": {
"lastModified": 1745090089,
"narHash": "sha256-Pwxk2C5WaaaW7Ookbq2edvLSJh6ZQc3iWMxowHyQkFQ=",
"lastModified": 1749731021,
"narHash": "sha256-V4JJ1VQXoIsUBTxe6ykbkyo6LxEAr+QEIqIV3mA9phs=",
"owner": "mfussenegger",
"repo": "nvim-lint",
"rev": "d698d3b6fd7b1b85657d05a2a31d843ddb682c63",
"rev": "2b0039b8be9583704591a13129c600891ac2c596",
"type": "github"
},
"original": {
@ -690,11 +707,11 @@
"nvim_plugin-mrcjkb/rustaceanvim": {
"flake": false,
"locked": {
"lastModified": 1745050087,
"narHash": "sha256-nkCVQ+TXiaKm17HXaAMVuRMV3Jbxv8aRIO6re4zEgDw=",
"lastModified": 1750024924,
"narHash": "sha256-gmOqCnSLGDNerXyuuNhkyL/pSJitnyqBdWC3LejZoS4=",
"owner": "mrcjkb",
"repo": "rustaceanvim",
"rev": "69636cedf0d6aabf0eac3dfbce24883fe1051a3d",
"rev": "2fdf224107e5bc29fb5c3a175f5f2c9161b34741",
"type": "github"
},
"original": {
@ -706,11 +723,11 @@
"nvim_plugin-neovim/nvim-lspconfig": {
"flake": false,
"locked": {
"lastModified": 1745247686,
"narHash": "sha256-rnm/BJNMVxcYH/ZXf1HciXgG0UWhAeQQniOaSvi0E40=",
"lastModified": 1750169575,
"narHash": "sha256-lJWMFgQLQhKUuv50WrYXlJ3TFqT04nVbmcBGVDaSz0k=",
"owner": "neovim",
"repo": "nvim-lspconfig",
"rev": "b335f1c72877f101248d3b085d4b7da7576361d7",
"rev": "99d3a0f26bfe402f45257c1398287aef252cbe2d",
"type": "github"
},
"original": {
@ -722,11 +739,11 @@
"nvim_plugin-nosduco/remote-sshfs.nvim": {
"flake": false,
"locked": {
"lastModified": 1743352525,
"narHash": "sha256-YNqj1vPc2oyVrSgp+huoMkrUAp2Lx3G4W52liOujP6A=",
"lastModified": 1748880705,
"narHash": "sha256-eTnVFOR7FHlkU9kwrk3q3pNo/U8OR2gJrnrMUQKGi2A=",
"owner": "nosduco",
"repo": "remote-sshfs.nvim",
"rev": "1ae5784bf0729c8b03cb7fe6561508a673c9adc8",
"rev": "6e893c32ff7c5b8d0d501b748c525fa53963fb35",
"type": "github"
},
"original": {
@ -770,11 +787,11 @@
"nvim_plugin-nvim-lualine/lualine.nvim": {
"flake": false,
"locked": {
"lastModified": 1744482854,
"narHash": "sha256-XeAFXg6GWzMJV/HzfdCXtv/effAHVU7mioFKTf1kDc8=",
"lastModified": 1749383457,
"narHash": "sha256-2aPgA7riA/FubQpTkqsxLKl7OZ8L6FkucNHc2QEx2HQ=",
"owner": "nvim-lualine",
"repo": "lualine.nvim",
"rev": "86fe39534b7da729a1ac56c0466e76f2c663dc42",
"rev": "a94fc68960665e54408fe37dcf573193c4ce82c9",
"type": "github"
},
"original": {
@ -786,11 +803,11 @@
"nvim_plugin-nvim-telescope/telescope-file-browser.nvim": {
"flake": false,
"locked": {
"lastModified": 1729728595,
"narHash": "sha256-VJbRi91TTOwUkQYyTM6Njl7MtX8/mOjINiqWYWEtyxg=",
"lastModified": 1750040034,
"narHash": "sha256-NHcU3c+1pLeypHr9xXKmqvdwB1QM/vj5axzjpFEQCLQ=",
"owner": "nvim-telescope",
"repo": "telescope-file-browser.nvim",
"rev": "626998e5c1b71c130d8bc6cf7abb6709b98287bb",
"rev": "7bf55ed0ff5be182ad3301cff266581fc1c56cce",
"type": "github"
},
"original": {
@ -834,11 +851,11 @@
"nvim_plugin-nvim-telescope/telescope.nvim": {
"flake": false,
"locked": {
"lastModified": 1742346322,
"narHash": "sha256-GF1zOHZItVZm3bx2wqI4hPj7EXQJ2F9KS4MtaEt2gm0=",
"lastModified": 1747012888,
"narHash": "sha256-JpW0ehsX81yVbKNzrYOe1hdgVMs6oaaxMLH6lECnOJg=",
"owner": "nvim-telescope",
"repo": "telescope.nvim",
"rev": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5",
"rev": "b4da76be54691e854d3e0e02c36b0245f945c2c7",
"type": "github"
},
"original": {
@ -850,11 +867,11 @@
"nvim_plugin-nvim-tree/nvim-tree.lua": {
"flake": false,
"locked": {
"lastModified": 1745201081,
"narHash": "sha256-zQsqyJgqlvxniKOtwPSzArUaOwvIgo6Xm+oAjAbPda4=",
"lastModified": 1750143568,
"narHash": "sha256-E2YdGlvvpnT/PiayfQldwpbCnjsyNDcoTzxgMf2ajV8=",
"owner": "nvim-tree",
"repo": "nvim-tree.lua",
"rev": "be5b788f2dc1522c73fb7afad9092331c8aebe80",
"rev": "d54a1875a91e1a705795ea26074795210b92ce7f",
"type": "github"
},
"original": {
@ -866,11 +883,11 @@
"nvim_plugin-nvim-tree/nvim-web-devicons": {
"flake": false,
"locked": {
"lastModified": 1745131674,
"narHash": "sha256-uoT45oaeY5c1+A7pVQIS+Bj9JnrSy9rQAecvaWZht+c=",
"lastModified": 1747360641,
"narHash": "sha256-+RHeFaeCF/iwAf8qAOjbEIl3YcnrBMVfkQnnzDNhyTA=",
"owner": "nvim-tree",
"repo": "nvim-web-devicons",
"rev": "855c97005c8eebcdd19846f2e54706bffd40ee96",
"rev": "1fb58cca9aebbc4fd32b086cb413548ce132c127",
"type": "github"
},
"original": {
@ -882,11 +899,11 @@
"nvim_plugin-nvim-treesitter/nvim-treesitter-context": {
"flake": false,
"locked": {
"lastModified": 1744921782,
"narHash": "sha256-w3I3w1SGqtpUnu4KQyaLue+k96XmkgA3+DpxSEjj+WI=",
"lastModified": 1749893617,
"narHash": "sha256-QJAfpVdTHTxjUgggQekRLvNYuvG12gjtfTGybfcFdyo=",
"owner": "nvim-treesitter",
"repo": "nvim-treesitter-context",
"rev": "6daca3ad780f045550b820f262002f35175a6c04",
"rev": "1a1a7c5d6d75cb49bf64049dafab15ebe294a79f",
"type": "github"
},
"original": {
@ -898,11 +915,11 @@
"nvim_plugin-rafamadriz/friendly-snippets": {
"flake": false,
"locked": {
"lastModified": 1745202387,
"narHash": "sha256-R6xE5vwgFtyEYpET0E4ecZejuV/lNHFkumk+wGf3lbI=",
"lastModified": 1745949052,
"narHash": "sha256-FzApcTbWfFkBD9WsYMhaCyn6ky8UmpUC2io/co/eByM=",
"owner": "rafamadriz",
"repo": "friendly-snippets",
"rev": "fc8f183479a472df60aa86f00e295462f2308178",
"rev": "572f5660cf05f8cd8834e096d7b4c921ba18e175",
"type": "github"
},
"original": {
@ -930,11 +947,11 @@
"nvim_plugin-rmagatti/auto-session": {
"flake": false,
"locked": {
"lastModified": 1745009508,
"narHash": "sha256-NCytp+DiOo3obZeQ9bpaEaNMfstf1Ytn0OR5mAWodLw=",
"lastModified": 1749967462,
"narHash": "sha256-1pIGu/GJ4FiMH/yHhoo6Gu0HLC3rFQiesJBuv8uE7Vw=",
"owner": "rmagatti",
"repo": "auto-session",
"rev": "71c8af9a99e96b9d2533cf4bac4dfed1eafab923",
"rev": "fffb13dcbe8731b8650e5bf1caa749a485d20556",
"type": "github"
},
"original": {
@ -994,11 +1011,11 @@
"nvim_plugin-stevearc/conform.nvim": {
"flake": false,
"locked": {
"lastModified": 1745180802,
"narHash": "sha256-J/GKqn2VHv/ydaFXWCFduV2B7iwZzHtUvFArszxf2Cw=",
"lastModified": 1749498876,
"narHash": "sha256-n1IPUNwD14WlDU4zbgfJuhXQcVMt8oc4wCuUJBPJ+y4=",
"owner": "stevearc",
"repo": "conform.nvim",
"rev": "372fc521f8421b7830ea6db4d6ea3bae1c77548c",
"rev": "8132ec733eed3bf415b97b76797ca41b59f51d7d",
"type": "github"
},
"original": {
@ -1023,6 +1040,22 @@
"type": "github"
}
},
"nvim_plugin-supermaven-inc/supermaven-nvim": {
"flake": false,
"locked": {
"lastModified": 1728314930,
"narHash": "sha256-1z3WKIiikQqoweReUyK5O8MWSRN5y95qcxM6qzlKMME=",
"owner": "supermaven-inc",
"repo": "supermaven-nvim",
"rev": "07d20fce48a5629686aefb0a7cd4b25e33947d50",
"type": "github"
},
"original": {
"owner": "supermaven-inc",
"repo": "supermaven-nvim",
"type": "github"
}
},
"nvim_plugin-tpope/vim-sleuth": {
"flake": false,
"locked": {
@ -1058,11 +1091,11 @@
"nvim_plugin-uga-rosa/ccc.nvim": {
"flake": false,
"locked": {
"lastModified": 1744103477,
"narHash": "sha256-MSh9tJv9UNfceO1yQIvID36x/fLGmgFcnIzJ9LOog0A=",
"lastModified": 1746537659,
"narHash": "sha256-3TZ8VmvdgQ9n63m78C3r4OIUkVQHTHBvC24ixBdhTig=",
"owner": "uga-rosa",
"repo": "ccc.nvim",
"rev": "af2cf5a963f401aad868c065222ee13d4bbc9050",
"rev": "9d1a256e006decc574789dfc7d628ca11644d4c2",
"type": "github"
},
"original": {
@ -1087,22 +1120,6 @@
"type": "github"
}
},
"nvim_plugin-yetone/avante.nvim": {
"flake": false,
"locked": {
"lastModified": 1744881650,
"narHash": "sha256-BzRFgcBG4vn7mamwLvviMl4erTPwg+1AkAb3Ss4Kq8E=",
"owner": "yetone",
"repo": "avante.nvim",
"rev": "eb1cd44731783024621beafe4e46204cbc9a4320",
"type": "github"
},
"original": {
"owner": "yetone",
"repo": "avante.nvim",
"type": "github"
}
},
"nvim_plugin-zbirenbaum/copilot-cmp": {
"flake": false,
"locked": {
@ -1122,11 +1139,11 @@
"nvim_plugin-zbirenbaum/copilot.lua": {
"flake": false,
"locked": {
"lastModified": 1745111203,
"narHash": "sha256-PaWWT0mSsTfnBMrmHagHgemGN5Be6rbikVVW4ZBK/Zs=",
"lastModified": 1749137204,
"narHash": "sha256-qxHpIsFFLDG/jtk6e1hkOZgDSRA5Q0+DMxxAxckNhIc=",
"owner": "zbirenbaum",
"repo": "copilot.lua",
"rev": "dc579f98536029610cfa32c6bad86c0d24363679",
"rev": "c1bb86abbed1a52a11ab3944ef00c8410520543d",
"type": "github"
},
"original": {
@ -1144,11 +1161,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741508717,
"narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=",
"lastModified": 1744897914,
"narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=",
"owner": "yaxitech",
"repo": "ragenix",
"rev": "2a2bea99d74927e54adf53cbf113219def67d5c9",
"rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223",
"type": "github"
},
"original": {
@ -1217,21 +1234,21 @@
"nvim_plugin-sindrets/diffview.nvim": "nvim_plugin-sindrets/diffview.nvim",
"nvim_plugin-stevearc/conform.nvim": "nvim_plugin-stevearc/conform.nvim",
"nvim_plugin-stevearc/dressing.nvim": "nvim_plugin-stevearc/dressing.nvim",
"nvim_plugin-supermaven-inc/supermaven-nvim": "nvim_plugin-supermaven-inc/supermaven-nvim",
"nvim_plugin-tpope/vim-sleuth": "nvim_plugin-tpope/vim-sleuth",
"nvim_plugin-tpope/vim-surround": "nvim_plugin-tpope/vim-surround",
"nvim_plugin-uga-rosa/ccc.nvim": "nvim_plugin-uga-rosa/ccc.nvim",
"nvim_plugin-windwp/nvim-ts-autotag": "nvim_plugin-windwp/nvim-ts-autotag",
"nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim",
"nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp",
"nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1745585761,
"narHash": "sha256-xS3068xhndFrZh9GcTTNTmeebGq1A3uVykRRdzJOj3Y=",
"lastModified": 1750190298,
"narHash": "sha256-ero30lVvCzmdKkY0lZR/RO+oTNTY1WXQh6vhfbcbTIk=",
"ref": "refs/heads/master",
"rev": "e5523910a0c07c88d026d006f5962434bfa53548",
"revCount": 277,
"rev": "1ed03dac446683ef42035b53a410d857855d82d9",
"revCount": 291,
"type": "git",
"url": "https://git.joshuabell.xyz/ringofstorms/nvim"
},
@ -1270,11 +1287,11 @@
]
},
"locked": {
"lastModified": 1745207416,
"narHash": "sha256-2g2TnXgJEvSvpk7ujY69pSplmM3oShhoOidZf1iHTHU=",
"lastModified": 1750127910,
"narHash": "sha256-FIgEIS0RAlOyXGqoj/OufTfcKItYq668yPYL4SXdU0M=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "68a0ff1a43d08aa1ec3730e7e7d06f6da0ba630a",
"rev": "45418795a73b77b7726c62ce265d68cf541ffb49",
"type": "github"
},
"original": {

View file

@ -1,6 +1,6 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Use relative to get current version for testing
@ -53,7 +53,6 @@
systemName = configuration_name;
boot.systemd.enable = true;
general = {
# disableRemoteBuildsOnLio = true;
enableSleep = true;
};
secrets.enable = true;
@ -65,6 +64,22 @@
tailnet.enable = true;
ssh.enable = true;
docker.enable = true;
flatpaks = {
enable = true;
packages = [
"org.signal.Signal"
"com.discordapp.Discord"
"md.obsidian.Obsidian"
"com.spotify.Client"
"org.videolan.VLC"
"com.bitwarden.desktop"
"org.openscad.OpenSCAD"
"org.blender.Blender"
"im.riot.Riot"
"com.rustdesk.RustDesk"
"com.google.Chrome"
];
};
};
users = {
# Users are all normal users and default password is password1
@ -80,16 +95,6 @@
"input"
];
shell = pkgs.zsh;
packages = with pkgs; [
signal-desktop
google-chrome
discordo
discord
spotify
vlc
vaultwarden
bitwarden
];
};
};
};

View file

@ -68,9 +68,7 @@
- atuin setup
- if atuin is on enable that mod in configuration.nix, make sure to `atuin login` get key from existing device
- TODO move key into secrets and mount it to atuin local share
- stormd onboard to network
- ssh key access, ssh iden in config in nix config
-
### Notes