Setup checker
This commit is contained in:
parent
85b5c2bce6
commit
063d40937f
4 changed files with 206 additions and 10 deletions
148
flake.lock
generated
148
flake.lock
generated
|
|
@ -1,12 +1,145 @@
|
|||
{
|
||||
"nodes": {
|
||||
"checker": {
|
||||
"inputs": {
|
||||
"clj-nix": "clj-nix",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1776095659,
|
||||
"narHash": "sha256-3xXKVCwzjNKjctilYZWXcejxeE+9FPVLZaVuciFQmAI=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "57fe47b20e85ab3b8eba87a1a24d5ae46f1beaa7",
|
||||
"revCount": 32,
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/oibot/checker.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/oibot/checker.git"
|
||||
}
|
||||
},
|
||||
"clj-nix": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"nix-fetcher-data": "nix-fetcher-data",
|
||||
"nixpkgs": [
|
||||
"checker",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773151887,
|
||||
"narHash": "sha256-YUiehwe2iTlwYSrnJ1pcw7KDNX+U42xlTx/2k/mo0P8=",
|
||||
"owner": "jlesquembre",
|
||||
"repo": "clj-nix",
|
||||
"rev": "27dac4466c9d3939f6a4925bc09e0cb1d8f32d9c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jlesquembre",
|
||||
"repo": "clj-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"checker",
|
||||
"clj-nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768818222,
|
||||
"narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1719745305,
|
||||
"narHash": "sha256-xwgjVUpqSviudEkpQnioeez1Uo2wzrsMaJKJClh+Bls=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c3c5ecc05edc7dafba779c6c1a61cd08ac6583e9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-fetcher-data": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"checker",
|
||||
"clj-nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755022803,
|
||||
"narHash": "sha256-/QtBdVfZlrRJW5enUoWlBE2wrLXJBMJ45X0rZh0jiaU=",
|
||||
"owner": "jlesquembre",
|
||||
"repo": "nix-fetcher-data",
|
||||
"rev": "9da3926b1459d6ff15268072d1c51351b82811b9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jlesquembre",
|
||||
"repo": "nix-fetcher-data",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1770136044,
|
||||
"narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=",
|
||||
"lastModified": 1775811116,
|
||||
"narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e",
|
||||
"rev": "54170c54449ea4d6725efd30d719c5e505f1c10e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1717284937,
|
||||
"narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1775811116,
|
||||
"narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "54170c54449ea4d6725efd30d719c5e505f1c10e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -18,7 +151,8 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"checker": "checker",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"sops-nix": "sops-nix"
|
||||
}
|
||||
},
|
||||
|
|
@ -29,11 +163,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775682595,
|
||||
"narHash": "sha256-0E9PohY/VuESLq0LR4doaH7hTag513sDDW5n5qmHd1Q=",
|
||||
"lastModified": 1775971308,
|
||||
"narHash": "sha256-VKp9bhVSm0bT6JWctFy06ocqxGGnWHi1NfoE90IgIcY=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "d2e8438d5886e92bc5e7c40c035ab6cae0c41f76",
|
||||
"rev": "31ac5fe5d015f76b54058c69fcaebb66a55871a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -3,14 +3,20 @@
|
|||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
checker.url = "git+https://codeberg.org/oibot/checker.git";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, sops-nix, ... }:
|
||||
outputs = { self, nixpkgs, sops-nix, checker, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
in {
|
||||
nixosConfigurations.tobserver = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
|
||||
specialArgs = {
|
||||
inherit checker;
|
||||
};
|
||||
|
||||
modules = [
|
||||
sops-nix.nixosModules.sops
|
||||
./hardware-configuration.nix
|
||||
|
|
@ -20,6 +26,7 @@
|
|||
./modules/mempool.nix
|
||||
./modules/nextcloud.nix
|
||||
./modules/totap.nix
|
||||
./modules/checker.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
|||
53
modules/checker.nix
Normal file
53
modules/checker.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ config, pkgs, checker, ... }:
|
||||
|
||||
let
|
||||
checkerPkg = checker.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
in
|
||||
{
|
||||
users.users.checker = {
|
||||
isSystemUser = true;
|
||||
group = "checker";
|
||||
home = "/var/lib/checker";
|
||||
createHome = true;
|
||||
};
|
||||
|
||||
users.groups.checker = {};
|
||||
|
||||
sops.secrets."checker/env" = {
|
||||
owner = "checker";
|
||||
group = "checker";
|
||||
mode = "0400";
|
||||
};
|
||||
|
||||
systemd.services.checker = {
|
||||
description = "Checker a personal assistant";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
User = "checker";
|
||||
Group = "checker";
|
||||
WorkingDirectory = "/var/lib/checker";
|
||||
ExecStart = "${checkerPkg}/bin/checker";
|
||||
EnvironmentFile = config.sops.secrets."checker/env".path;
|
||||
|
||||
Restart = "always";
|
||||
RestartSec = 5;
|
||||
|
||||
NowNewPrivileges = true;
|
||||
PrivateTmp = true;
|
||||
ProtectSystem = "strict";
|
||||
ProtectHome = true;
|
||||
ReadWritePaths = [ "/var/lib/checker" ];
|
||||
};
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."checker.tobiasostner.de" = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:3001";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -3,6 +3,8 @@ mempool:
|
|||
mariadb-root-password: ENC[AES256_GCM,data:CjXQWw==,iv:3amyq9/3Nq7pz8s7wk4UORI1gSgURufGh1u/cITQf/I=,tag:4ulBVRDh0Ws04IqHT5P6tg==,type:str]
|
||||
nextcloud:
|
||||
admin-pass: ENC[AES256_GCM,data:3xufFHvcm5g5+jn+B4qxRljuWDqDXo1mLu4IlSuax7Cz+3ZoOuNXoCXoiaY=,iv:WaWeu/a45Vuz+HvO7m0dUlCGCexk4IX/ijURmb/7jPU=,tag:ytRjS89AmHiGOhKymViTrg==,type:str]
|
||||
checker:
|
||||
env: ENC[AES256_GCM,data:Iavqm2Tc+8M5n0/M1VbjVxYptRKlCxwi6RwoXH6jy2wRXWgrqkSknKnw6RIq+KmOVsRIe0Krz/JxSpgudnOF+wHnfwWRGHNVyl+o20ZAwZvNCYsK4HhANFdfY+TCvGIMVLzs+N/pRh7ynsDf+52zd1IhTZJk7ibQ8YiMLKQdZKM7uEDLamjNVrzCtdJM+pyNeDu5TOLtfR3ma0h1v70xidJUTzl1jlaGfv3hLuiQnhspYZOXh3rmFdO+/ICY2TVBkA/Irz1ghe14Cuf4S90uDKtpe65b+r7r7mVgaEnNvXMprCqIs/H8ekHzRXpoKDiCt7KYxCQFIvzFoDSbQ+NZvOLjDkMQFH3o/zZs5PZurmPYwiXjjkuRkhDaiqpv7t1ylRkaT35VQaXiJ5jMP2KIbrSKT7eJlHY3W4kwWImmOoHKDOJAQlSweontHvkcLLrxSzRxN9TuYV6TcZ0ZvdxBUOuKxiV+/m2r+lPGoNXLWURHNyh+QbOZYvXKdAhDNbbTrzgFgi03vD2euhwTORiia5GMWziCtR4r/mAgD3NK9adIcpwVoYy7EQx/TECNtYT4qNHOGpg9HCBGKVDCd1Ho,iv:NOc6iW2JaHse+52AQJNkY1jqFk6GAIyHf9wITvsKPPM=,tag:GKF/MjBU364lr7lG4vrwnA==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1qnudtkywppsdk6zn6jh9gra093w4mnf63m333hxsms9ys7elkpps3y008z
|
||||
|
|
@ -23,7 +25,7 @@ sops:
|
|||
cVE5VG56cFAzT1dsRFN4cCtnVEJJdU0KSBWm4blGhnVlOJ3k7lh8aJVOEH8NfFOh
|
||||
EwU/4Up6zWYBoe2+GKiQf8imnVLSSxMR7dlNd06ttuFD4B5baqFRcA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-04-11T17:27:25Z"
|
||||
mac: ENC[AES256_GCM,data:0926uedsIZ1GyhtTJjedMPds3zGvANUlRH6ro0abt391OfJ+b1z/pgjT7bRxiJNCOZITKfkaWoXR0529PK00dZAI2Z70lX2oDftNEtBzX+cq994m0s3HlfjaChqRwpFfxxX7sYbyvGqQRJxxgbiMfloyNeps55ODKXGXYwNKYog=,iv:PRHplnL6SUBwx1+wpi8uvWKZvHurhdiexIJr0kjQ8ao=,tag:uwDy9B7uP0khPorbc2woRA==,type:str]
|
||||
lastmodified: "2026-04-13T16:18:47Z"
|
||||
mac: ENC[AES256_GCM,data:En7+/DW4k5KkoyEXYIH8xZyBv8cRjzYQgIVA8PzfRx1YhquEnfS538kU3i79iKJrQHucmr8PtCO7oPCwrus5xzTeRmn6iVIcTzAqJigyd3Nf4yjgE24isay79jZGq62q05YTaYbQpVfQCoCUK5U/S1AJXte/l5dSYQL614K1eQ0=,iv:Tlp7BBJr/Nu3SAVIPofSTuDx5PSr84mUaOT9fLJN/Jw=,tag:lQLO7tzm3VAP2pPxKo5uWw==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.11.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue