Compare commits

...

3 commits

Author SHA1 Message Date
19551022f0
add jujutsu vcs
Some checks are pending
/ ci (push) Waiting to run
2025-09-16 17:04:23 +01:00
bb08fe63c6
use tmux-githop 2025-09-16 17:04:22 +01:00
fedd077861
yuh 2025-09-16 17:04:22 +01:00
10 changed files with 286 additions and 70 deletions

257
flake.lock generated
View file

@ -26,11 +26,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1750173260,
"narHash": "sha256-9P1FziAwl5+3edkfFcr5HeGtQUtrSdk/MksX39GieoA=",
"lastModified": 1754433428,
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
"owner": "ryantm",
"repo": "agenix",
"rev": "531beac616433bac6f9e2a19feb8e99a22a66baf",
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
"type": "github"
},
"original": {
@ -106,21 +106,6 @@
"type": "github"
}
},
"cachix-push": {
"locked": {
"lastModified": 1725315090,
"narHash": "sha256-d/ZGRHfSGPEpCCNSVlfZ0ND2IZV0H9nN/3BLMA7d9fs=",
"owner": "juspay",
"repo": "cachix-push",
"rev": "fbe9734921e19abc4830dc4ea425aaa82cf61991",
"type": "github"
},
"original": {
"owner": "juspay",
"repo": "cachix-push",
"type": "github"
}
},
"copyparty": {
"inputs": {
"flake-utils": "flake-utils",
@ -129,11 +114,11 @@
]
},
"locked": {
"lastModified": 1754348197,
"narHash": "sha256-sVl/KDJR7X0bmRc/ccmuAy9HgcQXnnIaiOCWbSGvRPA=",
"lastModified": 1757898317,
"narHash": "sha256-bsaY6m/fEfJY9l0KU+tkMM+QwggNwS/GVw9jl8bHOF8=",
"owner": "9001",
"repo": "copyparty",
"rev": "b664ebb01f28094749e233ac70795ccd11fed253",
"rev": "fd331a545d6ac9c94287663f79a3379b5171d048",
"type": "github"
},
"original": {
@ -226,11 +211,11 @@
]
},
"locked": {
"lastModified": 1752718651,
"narHash": "sha256-PkaR0qmyP9q/MDN3uYa+RLeBA0PjvEQiM0rTDDBXkL8=",
"lastModified": 1757508292,
"narHash": "sha256-7lVWL5bC6xBIMWWDal41LlGAG+9u2zUorqo3QCUL4p4=",
"owner": "nix-community",
"repo": "disko",
"rev": "d5ad4485e6f2edcc06751df65c5e16572877db88",
"rev": "146f45bee02b8bd88812cfce6ffc0f933788875a",
"type": "github"
},
"original": {
@ -284,11 +269,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1752811437,
"narHash": "sha256-TVWYBcNpeQ3fEloryVP9N2yJnC3vuPpoZF1RqFFWFt0=",
"lastModified": 1757995413,
"narHash": "sha256-vaU/7/PXoym6vnspGxhR29V9klGe9iy9zmp6x7w38f8=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "369dccacc0a8214600773b3bbbf68d98a19b74e8",
"rev": "4ae8996b3e139926c784acd22824cde46cd28833",
"type": "gitlab"
},
"original": {
@ -361,6 +346,22 @@
"type": "github"
}
},
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@ -368,11 +369,11 @@
]
},
"locked": {
"lastModified": 1751413152,
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
@ -528,6 +529,24 @@
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_4"
},
"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"
}
},
"fromYaml": {
"flake": false,
"locked": {
@ -560,6 +579,29 @@
"type": "github"
}
},
"git-hooks_2": {
"inputs": {
"flake-compat": "flake-compat_4",
"gitignore": "gitignore_3",
"nixpkgs": [
"scenics",
"nixpkgs"
]
},
"locked": {
"lastModified": 1757239681,
"narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@ -603,6 +645,28 @@
"type": "github"
}
},
"gitignore_3": {
"inputs": {
"nixpkgs": [
"scenics",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
@ -648,11 +712,11 @@
]
},
"locked": {
"lastModified": 1752780124,
"narHash": "sha256-5dn97vIYxn6VozKePOQSDxVCsrl38nDdMJXx86KIJH0=",
"lastModified": 1757808926,
"narHash": "sha256-K6PEI5PYY94TVMH0mX3MbZNYFme7oNRKml/85BpRRAo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c718918222bdb104397762dea67e6b397a7927fe",
"rev": "f21d9167782c086a33ad53e2311854a8f13c281e",
"type": "github"
},
"original": {
@ -853,11 +917,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1752620740,
"narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=",
"lastModified": 1757810152,
"narHash": "sha256-Vp9K5ol6h0J90jG7Rm4RWZsCB3x7v5VPx588TQ1dkfs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e",
"rev": "9a094440e02a699be5c57453a092a8baf569bdad",
"type": "github"
},
"original": {
@ -917,6 +981,22 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1737469691,
"narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=",
"owner": "NixOs",
"repo": "nixpkgs",
"rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab",
"type": "github"
},
"original": {
"owner": "NixOs",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1711163522,
"narHash": "sha256-YN/Ciidm+A0fmJPWlHBGvVkcarYWSC+s3NTPk/P+q3c=",
@ -932,7 +1012,7 @@
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs_4": {
"locked": {
"lastModified": 1750215678,
"narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=",
@ -948,7 +1028,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1725194671,
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
@ -964,6 +1044,25 @@
"type": "github"
}
},
"nocodb": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1753527533,
"narHash": "sha256-UoOwtvkNicWrlxEVNR9RL7r39mOFEwyV6BpBd5Fa1is=",
"owner": "nocodb",
"repo": "nocodb",
"rev": "bec1fa46dd23996cad16e16150c959ce587b0750",
"type": "github"
},
"original": {
"owner": "nocodb",
"ref": "bec1fa4",
"repo": "nocodb",
"type": "github"
}
},
"nsbm": {
"inputs": {
"flake-parts": [
@ -1046,7 +1145,7 @@
"flake-parts": "flake-parts_4",
"flake-utils": "flake-utils_2",
"mnw": "mnw",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_4",
"systems": "systems_3"
},
"locked": {
@ -1065,7 +1164,6 @@
},
"omnix": {
"inputs": {
"cachix-push": "cachix-push",
"devour-flake": "devour-flake_2",
"false": "false",
"flake-parts": "flake-parts_5",
@ -1075,7 +1173,7 @@
"nix-systems-aarch64-linux": "nix-systems-aarch64-linux",
"nix-systems-x86_64-darwin": "nix-systems-x86_64-darwin",
"nix-systems-x86_64-linux": "nix-systems-x86_64-linux",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"rust-flake": "rust-flake",
"systems": [
"systems"
@ -1083,11 +1181,11 @@
"true": "true"
},
"locked": {
"lastModified": 1752609340,
"narHash": "sha256-LrcNUiyLOiIgalsP/GsaRh7pe8lpZLRiQHv9jCeJNtQ=",
"lastModified": 1757112869,
"narHash": "sha256-mYaj1ZiujvJkCYR2GK85A8Pr8azMrbj8abpDw4nEz5E=",
"owner": "juspay",
"repo": "omnix",
"rev": "e967319794c9b9ad7d040dc873eae62adab968f4",
"rev": "7e35ac51e30e94579cfc8f62c8318d4c198d5cb4",
"type": "github"
},
"original": {
@ -1107,11 +1205,11 @@
]
},
"locked": {
"lastModified": 1750779888,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"lastModified": 1757974173,
"narHash": "sha256-4DpXmct/2rcLgScT1CXOLr0TUeIlrBB1rnFqCOf5MUw=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"rev": "302af509428169db34f268324162712d10559f74",
"type": "github"
},
"original": {
@ -1161,12 +1259,14 @@
"nish": "nish",
"nixinate": "nixinate",
"nixpkgs": "nixpkgs",
"nocodb": "nocodb",
"nsbm": "nsbm",
"nvf": "nvf",
"omnix": "omnix",
"pre-commit-hooks": "pre-commit-hooks",
"scenics": "scenics",
"stylix": "stylix",
"systems": "systems_5",
"systems": "systems_6",
"treefmt-nix": "treefmt-nix_3",
"unstable": "unstable"
}
@ -1260,7 +1360,7 @@
"flake-parts": "flake-parts_3",
"flake-root": "flake-root",
"nix-visualize": "nix-visualize",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs_3",
"treefmt-nix": "treefmt-nix",
"vulnix": "vulnix"
},
@ -1278,6 +1378,28 @@
"type": "github"
}
},
"scenics": {
"inputs": {
"flake-utils": "flake-utils_3",
"git-hooks": "git-hooks_2",
"nixpkgs": [
"unstable"
]
},
"locked": {
"lastModified": 1757517057,
"narHash": "sha256-FOovR2vgYev9BoNmbacqpB6i3Tk5NxWjRj9hFr2fB/4=",
"owner": "callumio",
"repo": "scenics",
"rev": "6afe932b2c78782e6b2e7423926eb1995fd4f5be",
"type": "github"
},
"original": {
"owner": "callumio",
"repo": "scenics",
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",
@ -1291,7 +1413,7 @@
"nixpkgs"
],
"nur": "nur",
"systems": "systems_4",
"systems": "systems_5",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
@ -1299,11 +1421,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1752752240,
"narHash": "sha256-qSQ6oIJeIb5MX6LRszgqQYB46FOHemKrvrdzf2u+uxM=",
"lastModified": 1757957798,
"narHash": "sha256-FT4O5imFJ+FUIGhYj/aFwEEgyvLhuyJ2my8f6mCLtTY=",
"owner": "danth",
"repo": "stylix",
"rev": "40f40bda4269f6e5490c25975069dc61aede6d52",
"rev": "e6fc25cd12e8f461e402cf34649cc73ad93c7bdd",
"type": "github"
},
"original": {
@ -1359,6 +1481,21 @@
}
},
"systems_4": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -1373,7 +1510,7 @@
"type": "github"
}
},
"systems_5": {
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -1520,11 +1657,11 @@
]
},
"locked": {
"lastModified": 1752055615,
"narHash": "sha256-19m7P4O/Aw/6+CzncWMAJu89JaKeMh3aMle1CNQSIwM=",
"lastModified": 1756662192,
"narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "c9d477b5d5bd7f26adddd3f96cfd6a904768d4f9",
"rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4",
"type": "github"
},
"original": {
@ -1550,11 +1687,11 @@
},
"unstable": {
"locked": {
"lastModified": 1752687322,
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
"lastModified": 1757745802,
"narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
"rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
"type": "github"
},
"original": {

View file

@ -40,7 +40,7 @@
# TODO: use ./hosts/
nixosConfigurations = {
artemis = mkLinuxSystem [./hosts/artemis inputs.lanzaboote.nixosModules.lanzaboote] [];
hermes = mkLinuxSystem [./hosts/hermes inputs.copyparty.nixosModules.default] [inputs.copyparty.overlays.default];
hermes = mkLinuxSystem [./hosts/hermes inputs.nocodb.nixosModules.nocodb inputs.copyparty.nixosModules.default] [inputs.copyparty.overlays.default];
};
diskoConfigurations = {}; # maybe?
om.health.default = {nix-version.min-required = "2.18.5";};
@ -54,7 +54,12 @@
...
}: {
_module.args.pkgs = inputs'.nixpkgs.legacyPackages.extend self.overlays.default;
overlayAttrs = config.packages // {unstable = inputs'.unstable.legacyPackages;};
overlayAttrs =
config.packages
// {
unstable = inputs'.unstable.legacyPackages;
scenics = inputs'.scenics.packages;
};
pre-commit = {
check.enable = false;
@ -86,6 +91,9 @@
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
scenics.url = "github:callumio/scenics";
scenics.inputs.nixpkgs.follows = "unstable";
nixinate = {
url = "github:callumio/nixinate";
inputs.nixpkgs.follows = "unstable";
@ -182,5 +190,10 @@
url = "github:9001/copyparty";
inputs.nixpkgs.follows = "unstable";
};
nocodb = {
url = "github:nocodb/nocodb?ref=bec1fa4";
#inputs.nixpkgs.follows = "unstable";
};
};
}

View file

@ -4,6 +4,7 @@
./waybar
./git
./fish
./jj
./rofi
./rbw
./firefox

View file

@ -7,8 +7,7 @@
getProgFor' = cLib.getProgFor' pkgs;
getProgFor = cLib.getProgFor pkgs;
web = getProgFor "firefox";
#mail = getProgFor "betterbird";
mail = "";
# mail = "";
chat = getProgFor "discord";
media = getProgFor "spotify";
terminal = getProgFor "alacritty";
@ -218,7 +217,7 @@ in {
"name:web, on-created-empty: ${web}"
"name:chat, on-created-empty: ${chat}"
"name:media, on-created-empty: ${media}"
"name:mail, on-created-empty: ${mail}"
#"name:mail, on-created-empty: ${mail}"
];
bindm = [

View file

@ -0,0 +1,23 @@
{lib, ...}: {
programs.jujutsu = {
enable = true;
settings = {
user = {
name = "Callum Leslie";
email = "git@cleslie.uk";
};
signing = {
behavior = "own";
backend = "gpg";
};
"--scope" = [
{
"--when".repositories = ["~/repos/projects.cs.nott.ac.uk"];
user = {
email = "psycl6@nottingham.ac.uk";
};
}
];
};
};
}

View file

@ -4,9 +4,9 @@
...
}: let
getProgFor = cLib.getProgFor pkgs;
getProgFor' = cLib.getProgFor' pkgs;
tmux = getProgFor "tmux";
tmux-sessionizer = getProgFor' "tmux-sessionizer-cl" "tmux-sessionizer";
getProgFor' = cLib.getProgFor pkgs.scenics;
tmux-githop = getProgFor' "tmux-githop";
in {
programs.tmux = {
enable = true;
@ -51,8 +51,8 @@ in {
bind \\ split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
bind-key -r s run-shell "${tmux} display-popup -E '${tmux-sessionizer} -s'"
bind-key -r f run-shell "${tmux} display-popup -E '${tmux-sessionizer} -p'"
bind-key -r s run-shell "${tmux} display-popup -E '${tmux-githop} -s -y'"
bind-key -r f run-shell "${tmux} display-popup -E '${tmux-githop} -p -y'"
bind-key -r m run-shell "${tmux} switch-client -t main"
bind S choose-tree

View file

@ -16,7 +16,12 @@ in {
"/media" = {
path = "/var/lib/media/library";
access = {
r = "*";
rw = ["c"];
};
};
"/paperless" = {
path = "/var/lib/media/library";
access = {
rw = ["c"];
};
};

View file

@ -7,7 +7,9 @@
./quassel.nix
./fail2ban.nix
./containers.nix
./n8n.nix
./networking.nix
./nocodb.nix
./ssh.nix
./media.nix
./headscale.nix

18
hosts/hermes/n8n.nix Normal file
View file

@ -0,0 +1,18 @@
{pkgs, ...}: let
domain = "automation.cleslie.uk";
in {
services = {
cloudflare-dyndns.domains = [domain];
n8n = {
enable = true;
webhookUrl = "https://" + domain + "/";
settings = {
port = 5678;
};
};
caddy.virtualHosts.${domain}.extraConfig = ''
reverse_proxy http://127.0.0.1:5678
'';
};
environment.systemPackages = with pkgs; [mupdf-headless];
}

18
hosts/hermes/nocodb.nix Normal file
View file

@ -0,0 +1,18 @@
_: let
domain = "hub.cleslie.uk";
in {
services = {
cloudflare-dyndns.domains = [domain];
nocodb = {
enable = true;
environment = {
NC_PUBLIC_URL = "https://" + domain;
#NC_INVITE_ONLY_SIGNUP = 1;
PORT = "4690";
};
};
caddy.virtualHosts.${domain}.extraConfig = ''
reverse_proxy http://127.0.0.1:4690
'';
};
}