Compare commits
1 commit
6f4d3f180b
...
964783be96
Author | SHA1 | Date | |
---|---|---|---|
964783be96 |
12 changed files with 61 additions and 195 deletions
103
flake.lock
generated
103
flake.lock
generated
|
@ -100,11 +100,11 @@
|
||||||
"pyproject-nix": "pyproject-nix"
|
"pyproject-nix": "pyproject-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732113111,
|
"lastModified": 1731915700,
|
||||||
"narHash": "sha256-KgGKWOEbqP15O2J6kue4JShHDk5yGG5e1GfY22bjuZU=",
|
"narHash": "sha256-IVhIHdQaY4LU+6wOmXM6IhjKN8k0nbTacedIfxmt0RI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "dream2nix",
|
"repo": "dream2nix",
|
||||||
"rev": "91bec8a0854abfa581a40b5030cfa8f98d2f8ee5",
|
"rev": "e118d69b142dea7690555fc4502f288030c1d4ed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -119,11 +119,11 @@
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732179669,
|
"lastModified": 1732093299,
|
||||||
"narHash": "sha256-zpaoCm2sakoi8hsabMjTq7kYTz0SJo7PhRUGk48QjXY=",
|
"narHash": "sha256-LFw807llsc/qIMbSBHN4C3jtOeWHLtSgo2V2yhv1nC8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "46cbce8bc96c36a83a2cae9312026b3028bdcb87",
|
"rev": "79d8dd3148860718bc78b73c7e4972f850b19541",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -223,27 +223,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_3": {
|
"flake-parts_3": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"nix-fast-build",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1722555600,
|
|
||||||
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_4": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
},
|
},
|
||||||
|
@ -261,7 +240,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_5": {
|
"flake-parts_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nixThePlanet",
|
"nixThePlanet",
|
||||||
|
@ -419,7 +398,7 @@
|
||||||
},
|
},
|
||||||
"hercules-ci-effects": {
|
"hercules-ci-effects": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_5",
|
"flake-parts": "flake-parts_4",
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -643,28 +622,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-fast-build": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_3",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"treefmt-nix": "treefmt-nix_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1730278911,
|
|
||||||
"narHash": "sha256-CrbqsC+lEA3w6gLfpqfDMDEKoEta2sl4sbQK6Z/gXak=",
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "nix-fast-build",
|
|
||||||
"rev": "8e7c9d76979381441facb8888f21408312cf177a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "nix-fast-build",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-formatter-pack": {
|
"nix-formatter-pack": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -755,7 +712,7 @@
|
||||||
},
|
},
|
||||||
"nixThePlanet": {
|
"nixThePlanet": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_4",
|
"flake-parts": "flake-parts_3",
|
||||||
"hercules-ci-effects": "hercules-ci-effects",
|
"hercules-ci-effects": "hercules-ci-effects",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
@ -935,11 +892,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732014248,
|
"lastModified": 1731676054,
|
||||||
"narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
|
"narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
|
"rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -996,11 +953,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732014248,
|
"lastModified": 1731676054,
|
||||||
"narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
|
"narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
|
"rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1162,13 +1119,12 @@
|
||||||
"lix-eval-jobs": "lix-eval-jobs",
|
"lix-eval-jobs": "lix-eval-jobs",
|
||||||
"lix-module": "lix-module",
|
"lix-module": "lix-module",
|
||||||
"mobile-nixos": "mobile-nixos",
|
"mobile-nixos": "mobile-nixos",
|
||||||
"nix-fast-build": "nix-fast-build",
|
|
||||||
"nix-on-droid": "nix-on-droid",
|
"nix-on-droid": "nix-on-droid",
|
||||||
"nixDarwin": "nixDarwin",
|
"nixDarwin": "nixDarwin",
|
||||||
"nixThePlanet": "nixThePlanet",
|
"nixThePlanet": "nixThePlanet",
|
||||||
"nixosHardware": "nixosHardware",
|
"nixosHardware": "nixosHardware",
|
||||||
"nixpkgs": "nixpkgs_7",
|
"nixpkgs": "nixpkgs_7",
|
||||||
"treefmt-nix": "treefmt-nix_3",
|
"treefmt-nix": "treefmt-nix_2",
|
||||||
"vscode-server": "vscode-server"
|
"vscode-server": "vscode-server"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1300,36 +1256,15 @@
|
||||||
"treefmt-nix_2": {
|
"treefmt-nix_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nix-fast-build",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723808491,
|
"lastModified": 1732013921,
|
||||||
"narHash": "sha256-rhis3qNuGmJmYC/okT7Dkc4M8CeUuRCSvW6kC2f3hBc=",
|
"narHash": "sha256-grEEN4LjL4DTDZUyZjVcj9dXRykH/SKnpOIADN0q5w8=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "1d07739554fdc4f8481068f1b11d6ab4c1a4167a",
|
"rev": "5f5c2787576f3e39bbc2ebdbf8521b3177c5c19c",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix_3": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1732187120,
|
|
||||||
"narHash": "sha256-XdW2mYXvPHYtZ8oQqO3tRYtxx7kI0Hs3NU64IwAtD68=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "37f8f47cb618eddee0c0dd31a582b1cd3013c7f6",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -62,10 +62,6 @@
|
||||||
};
|
};
|
||||||
catppuccin.url = "github:catppuccin/nix";
|
catppuccin.url = "github:catppuccin/nix";
|
||||||
emacs-overlay.url = "github:nix-community/emacs-overlay";
|
emacs-overlay.url = "github:nix-community/emacs-overlay";
|
||||||
nix-fast-build = {
|
|
||||||
url = "github:Mic92/nix-fast-build";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
|
|
@ -110,13 +110,11 @@
|
||||||
"cloudflare-dyndns-api-token" = { };
|
"cloudflare-dyndns-api-token" = { };
|
||||||
"restic-hetzner-password" = { };
|
"restic-hetzner-password" = { };
|
||||||
"hass-ssh-key".owner = "hass";
|
"hass-ssh-key".owner = "hass";
|
||||||
"sisko-attic-environment-file".owner = "atticd";
|
|
||||||
"autistici-password" = {
|
"autistici-password" = {
|
||||||
# FIXME terrible, should create a third ad-hoc group
|
# FIXME terrible, should create a third ad-hoc group
|
||||||
owner = "grafana";
|
owner = "grafana";
|
||||||
group = "forgejo";
|
group = "forgejo";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
"sisko-proxy"
|
"sisko-proxy"
|
||||||
"invidious"
|
"invidious"
|
||||||
"searx"
|
"searx"
|
||||||
"sisko-share"
|
"sisko-nfs"
|
||||||
"forgejo"
|
"forgejo"
|
||||||
"prometheus"
|
"prometheus"
|
||||||
"grafana"
|
"grafana"
|
||||||
|
@ -30,7 +30,6 @@
|
||||||
"immich"
|
"immich"
|
||||||
"paperless"
|
"paperless"
|
||||||
"syncthing"
|
"syncthing"
|
||||||
"atticd"
|
|
||||||
]
|
]
|
||||||
++ [
|
++ [
|
||||||
./disko.nix
|
./disko.nix
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
services.atticd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
listen = "0.0.0.0:8081";
|
|
||||||
allowed-hosts = [ ]; # Allow all hosts
|
|
||||||
# api-endpoint = "https://cache.staging.mlabs.city/";
|
|
||||||
soft-delete-caches = false;
|
|
||||||
require-proof-of-possession = true;
|
|
||||||
|
|
||||||
database.url = "sqlite://${config.services.atticd.settings.storage.path}/server.db?mode=rwc";
|
|
||||||
|
|
||||||
storage = {
|
|
||||||
type = "local";
|
|
||||||
path = "/mnt/hd/atticd";
|
|
||||||
};
|
|
||||||
|
|
||||||
compression = {
|
|
||||||
level = 8;
|
|
||||||
type = "zstd";
|
|
||||||
};
|
|
||||||
|
|
||||||
chunking = {
|
|
||||||
nar-size-threshold = 64 * 1024; # 64 KiB
|
|
||||||
min-size = 16 * 1024; # 16 KiB
|
|
||||||
avg-size = 64 * 1024; # 64 KiB
|
|
||||||
max-size = 256 * 1024; # 256 KiB
|
|
||||||
};
|
|
||||||
};
|
|
||||||
environmentFile = config.age.secrets.sisko-attic-environment-file.path;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.atticd = {
|
|
||||||
serviceConfig = {
|
|
||||||
DynamicUser = lib.mkForce false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"d config.services.atticd.settings.storage.path 770 atticd atticd"
|
|
||||||
];
|
|
||||||
|
|
||||||
users = {
|
|
||||||
groups.atticd = { };
|
|
||||||
users.atticd = {
|
|
||||||
group = "atticd";
|
|
||||||
home = config.services.atticd.settings.storage.path;
|
|
||||||
isSystemUser = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -23,7 +23,6 @@ let
|
||||||
nix-fast-build
|
nix-fast-build
|
||||||
curl
|
curl
|
||||||
tea
|
tea
|
||||||
attic-client
|
|
||||||
]
|
]
|
||||||
}; do
|
}; do
|
||||||
for bin in "$dir"/bin/*; do
|
for bin in "$dir"/bin/*; do
|
||||||
|
|
|
@ -70,6 +70,15 @@ in
|
||||||
"::1"
|
"::1"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
# ffmpeg = {};
|
||||||
|
# camera = [
|
||||||
|
# {
|
||||||
|
# name = "EyeToy";
|
||||||
|
# platform = "ffmpeg";
|
||||||
|
# input = "/dev/video1";
|
||||||
|
# extra_arguments = "-vcodec h264";
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
homeassistant = {
|
homeassistant = {
|
||||||
unit_system = "metric";
|
unit_system = "metric";
|
||||||
time_zone = "Europe/Rome";
|
time_zone = "Europe/Rome";
|
||||||
|
@ -78,6 +87,17 @@ in
|
||||||
internal_url = "http://rock5b.fleet:8123";
|
internal_url = "http://rock5b.fleet:8123";
|
||||||
};
|
};
|
||||||
logger.default = "WARNING";
|
logger.default = "WARNING";
|
||||||
|
# backup = {};
|
||||||
|
# media_player = [{
|
||||||
|
# platform = "webostv";
|
||||||
|
# host = "10.1.1.213";
|
||||||
|
# name = "TV";
|
||||||
|
# timeout = "5";
|
||||||
|
# turn_on_action = {
|
||||||
|
# service = "wake_on_lan.send_magic_packet";
|
||||||
|
# data.mac = "20:28:bc:74:14:c2";
|
||||||
|
# };
|
||||||
|
# }];
|
||||||
wake_on_lan = { };
|
wake_on_lan = { };
|
||||||
switch = [
|
switch = [
|
||||||
{
|
{
|
||||||
|
@ -89,6 +109,7 @@ in
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
shell_command.turn_off_picard = ''${pkgs.openssh}/bin/ssh -i /var/lib/hass/.ssh/id_ed25519 -o StrictHostKeyChecking=no hass@picard.fleet "exec sudo \$(readlink \$(which systemctl)) poweroff"'';
|
shell_command.turn_off_picard = ''${pkgs.openssh}/bin/ssh -i /var/lib/hass/.ssh/id_ed25519 -o StrictHostKeyChecking=no hass@picard.fleet "exec sudo \$(readlink \$(which systemctl)) poweroff"'';
|
||||||
|
# shell_command.turn_off_picard = ''whoami'';
|
||||||
prometheus = {
|
prometheus = {
|
||||||
namespace = "hass";
|
namespace = "hass";
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,23 +2,17 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
fleetFlake,
|
fleetFlake,
|
||||||
pkgs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(final: _: {
|
(final: _: {
|
||||||
nix-fast-build = fleetFlake.inputs.nix-fast-build.packages.${final.system}.nix-fast-build // {
|
|
||||||
nix = final.nix;
|
|
||||||
};
|
|
||||||
nix-eval-job = fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs // {
|
nix-eval-job = fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs // {
|
||||||
nix = final.nix;
|
nix = final.nix;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.nix-fast-build ];
|
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
optimise.automatic = true;
|
optimise.automatic = true;
|
||||||
|
|
||||||
|
|
20
modules/sisko-nfs/default.nix
Normal file
20
modules/sisko-nfs/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d /export 770 nobody nogroup"
|
||||||
|
];
|
||||||
|
|
||||||
|
fileSystems."/export/hd" = {
|
||||||
|
device = "/mnt/hd";
|
||||||
|
options = [ "bind" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nfs.server = {
|
||||||
|
enable = true;
|
||||||
|
exports = ''
|
||||||
|
/export 10.100.0.1/24(rw,fsid=0,no_subtree_check)
|
||||||
|
/export/hd 10.100.0.1/24(rw,nohide,insecure,no_subtree_check,no_root_squash)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 2049 ];
|
||||||
|
}
|
|
@ -1,39 +0,0 @@
|
||||||
{
|
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"d /export 770 nobody nogroup"
|
|
||||||
];
|
|
||||||
|
|
||||||
fileSystems."/export/hd" = {
|
|
||||||
device = "/mnt/hd";
|
|
||||||
options = [ "bind" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nfs.server = {
|
|
||||||
enable = true;
|
|
||||||
exports = ''
|
|
||||||
/export 10.100.0.1/24(rw,fsid=0,no_subtree_check)
|
|
||||||
/export/hd 10.100.0.1/24(rw,nohide,insecure,no_subtree_check,no_root_squash)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
services.webdav = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
address = "10.1.1.2"; # accessible only in LAN, used by Kodi installed on the TV
|
|
||||||
port = 9999;
|
|
||||||
scope = "/mnt/hd/torrent";
|
|
||||||
modify = false;
|
|
||||||
auth = false; # TODO should we enable authentication? It's only reachable in LAN
|
|
||||||
debug = true;
|
|
||||||
users = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.webdav.extraGroups = [ "transmission" ];
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [
|
|
||||||
2049
|
|
||||||
9999
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -161,11 +161,6 @@ with keys.users;
|
||||||
ccr-gpg
|
ccr-gpg
|
||||||
sisko
|
sisko
|
||||||
];
|
];
|
||||||
"sisko-attic-environment-file.age".publicKeys = [
|
|
||||||
ccr-ssh
|
|
||||||
ccr-gpg
|
|
||||||
sisko
|
|
||||||
];
|
|
||||||
|
|
||||||
# WireGuard
|
# WireGuard
|
||||||
"picard-wireguard-private-key.age".publicKeys = [
|
"picard-wireguard-private-key.age".publicKeys = [
|
||||||
|
|
Binary file not shown.
Loading…
Add table
Reference in a new issue