From ddd88920b302f401f8e09ab740b023b631e9971b Mon Sep 17 00:00:00 2001 From: Seven of Nine Date: Thu, 25 Jul 2024 13:01:56 +0000 Subject: [PATCH 01/10] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'disko': 'github:nix-community/disko/786965e1b1ed3fd2018d78399984f461e2a44689' (2024-07-11) → 'github:nix-community/disko/55e874b9c14764cb791e5740f0e92202e41393fc' (2024-07-25) • Updated input 'dream2nix': 'github:nix-community/dream2nix/0c6b5c8ab796f6dfb2aef1133f5b7bb25ce57cb9' (2024-07-10) → 'github:nix-community/dream2nix/959d6f96784cf5fc53024e5c3c362f0a2a347b45' (2024-07-23) • Updated input 'homeManager': 'github:nix-community/home-manager/c085b984ff2808bf322f375b10fea5a415a9c43d' (2024-07-10) → 'github:nix-community/home-manager/304a011325b7ac7b8c9950333cd215a7aa146b0e' (2024-07-24) • Updated input 'lix': 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=014410cbf0bda9c0fcdaf5f894120883cdc805ce' (2024-07-10) → 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=8d12e0fbb7306cbc58b12ef051d7067d703738de' (2024-07-24) • Updated input 'lix-module': 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=5d9d94089fb1ca96222a34bfe245ef5c5ebefd37' (2024-06-25) → 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=d70318fb946a0e720dfdd1fb10b0645c14e2a02a' (2024-07-11) • Updated input 'mobile-nixos': 'github:NixOS/mobile-nixos/31704f8a55f5773c9b4e7adb7408a142d142e1f2' (2024-07-11) → 'github:NixOS/mobile-nixos/472073a51745cca03257cf625582252cdd04ec21' (2024-07-17) • Updated input 'nix-on-droid': 'github:nix-community/nix-on-droid/8bcadcef69dcb5ca177bfb6ea3dc6b092cda2b06' (2024-07-10) → 'github:nix-community/nix-on-droid/248cc0806120fac9214f503dee0eaf0f47740dd0' (2024-07-22) • Updated input 'nix-on-droid/nix-formatter-pack/nmd': 'gitlab:rycee/nmd/b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169' (2022-10-19) → follows 'nix-on-droid/nmd' • Updated input 'nixDarwin': 'github:LnL7/nix-darwin/cf297a8d248db6a455b60133f6c0029c04ebe50e' (2024-07-10) → 'github:LnL7/nix-darwin/884f3fe6d9bf056ba0017c132c39c1f0d07d4fec' (2024-07-23) • Updated input 'nixd': 'github:nix-community/nixd/60a925008bc353136ba5babce437f42819c1645c' (2024-06-26) → 'github:nix-community/nixd/86dc0ba9f59e4d87969e5e9bd826c586994a6474' (2024-07-23) • Updated input 'nixosHardware': 'github:NixOS/nixos-hardware/a111ce6b537df12a39874aa9672caa87f8677eda' (2024-07-09) → 'github:NixOS/nixos-hardware/d3c993c851ad40bbab7e08d566138ff72cd8744f' (2024-07-25) • Updated input 'nixpkgsStable': 'github:NixOS/nixpkgs/7144d6241f02d171d25fba3edeaf15e0f2592105' (2024-07-02) → 'github:NixOS/nixpkgs/205fd4226592cc83fd4c0885a3e4c9c400efabb5' (2024-07-09) • Updated input 'pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/8d6a17d0cdf411c55f12602624df6368ad86fac1' (2024-07-09) → 'github:cachix/pre-commit-hooks.nix/f451c19376071a90d8c58ab1a953c6e9840527fd' (2024-07-15) • Updated input 'treefmt-nix': 'github:numtide/treefmt-nix/750dfb555b5abdab4d3266b3f9a05dec6d205c04' (2024-07-10) → 'github:numtide/treefmt-nix/8db8970be1fb8be9c845af7ebec53b699fe7e009' (2024-07-23) --- flake.lock | 105 +++++++++++++++++++++++------------------------------ 1 file changed, 46 insertions(+), 59 deletions(-) diff --git a/flake.lock b/flake.lock index 7b0925b..63e9352 100644 --- a/flake.lock +++ b/flake.lock @@ -104,11 +104,11 @@ ] }, "locked": { - "lastModified": 1720661479, - "narHash": "sha256-nsGgA14vVn0GGiqEfomtVgviRJCuSR3UEopfP8ixW1I=", + "lastModified": 1721871128, + "narHash": "sha256-NyWVCnSeePnJHGJxZ0l3zdGQGrVjUcx2IJbV8KIsPf0=", "owner": "nix-community", "repo": "disko", - "rev": "786965e1b1ed3fd2018d78399984f461e2a44689", + "rev": "55e874b9c14764cb791e5740f0e92202e41393fc", "type": "github" }, "original": { @@ -124,11 +124,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1720605900, - "narHash": "sha256-/BTAC3gj1Ot7o/PINsHS2EGEtGUadI12WZlhowKn18c=", + "lastModified": 1721736218, + "narHash": "sha256-+sSmaBrN+pJbaz9oJttVg+XCb4LVHDlEX/vMl/rpDgE=", "owner": "nix-community", "repo": "dream2nix", - "rev": "0c6b5c8ab796f6dfb2aef1133f5b7bb25ce57cb9", + "rev": "959d6f96784cf5fc53024e5c3c362f0a2a347b45", "type": "github" }, "original": { @@ -818,11 +818,11 @@ ] }, "locked": { - "lastModified": 1720646128, - "narHash": "sha256-BivO5yIQukDlJL+1875Sqf3GuOPxZDdA48dYDi3PkL8=", + "lastModified": 1721852138, + "narHash": "sha256-JH8N5uoqoVA6erV4O40VtKKHsnfmhvMGbxMNDLtim5o=", "owner": "nix-community", "repo": "home-manager", - "rev": "c085b984ff2808bf322f375b10fea5a415a9c43d", + "rev": "304a011325b7ac7b8c9950333cd215a7aa146b0e", "type": "github" }, "original": { @@ -887,11 +887,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1720633647, - "narHash": "sha256-CjWvti4wFhRmIHpLduohKAVmU9+wI/PAOhQppCWziK8=", + "lastModified": 1721841700, + "narHash": "sha256-5aO0cXENUI/38xsG0ww0QSsVSlkvMvKfxbeYXYH08Es=", "ref": "refs/heads/main", - "rev": "014410cbf0bda9c0fcdaf5f894120883cdc805ce", - "revCount": 15944, + "rev": "8d12e0fbb7306cbc58b12ef051d7067d703738de", + "revCount": 16014, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -912,11 +912,11 @@ ] }, "locked": { - "lastModified": 1719353937, - "narHash": "sha256-86NBqDxAP20ET/UoKX0WvSItblNQ97czXb2q7lkMrwk=", + "lastModified": 1720695775, + "narHash": "sha256-8Oqzl9QPjEe/n8y0R2tC6+2v/H6xBgABHXOJwxmnBg0=", "ref": "refs/heads/main", - "rev": "5d9d94089fb1ca96222a34bfe245ef5c5ebefd37", - "revCount": 92, + "rev": "d70318fb946a0e720dfdd1fb10b0645c14e2a02a", + "revCount": 94, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -928,11 +928,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1720660935, - "narHash": "sha256-GnDGoVaObUjnYdCHUSIYVE1anMElis+Pq+RY30LFlIk=", + "lastModified": 1721250279, + "narHash": "sha256-S47+MFnArDvR7OFCXU0BQoyLCBwSZws+t+bany7Ol6w=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "31704f8a55f5773c9b4e7adb7408a142d142e1f2", + "rev": "472073a51745cca03257cf625582252cdd04ec21", "type": "github" }, "original": { @@ -969,7 +969,10 @@ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd", + "nmd": [ + "nix-on-droid", + "nmd" + ], "nmt": "nmt" }, "locked": { @@ -993,14 +996,14 @@ "nixpkgs": "nixpkgs_8", "nixpkgs-docs": "nixpkgs-docs", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", - "nmd": "nmd_2" + "nmd": "nmd" }, "locked": { - "lastModified": 1720612508, - "narHash": "sha256-WbjV0gmnh6jG1B292K4KIJwtBacn2sTWhiw1ZMeti9s=", + "lastModified": 1721670745, + "narHash": "sha256-rjTQ14dqQ90EaHQy4g/mGylrJ1aZJYc3wCXc4A3GHJg=", "owner": "nix-community", "repo": "nix-on-droid", - "rev": "8bcadcef69dcb5ca177bfb6ea3dc6b092cda2b06", + "rev": "248cc0806120fac9214f503dee0eaf0f47740dd0", "type": "github" }, "original": { @@ -1016,11 +1019,11 @@ ] }, "locked": { - "lastModified": 1720599442, - "narHash": "sha256-jdm+sKVbBXoyrxcHbVaV0htlpq2iFR+eJw3Xe/DPcDo=", + "lastModified": 1721719500, + "narHash": "sha256-nnkqjv4Y37Hydjh6HE9wW4kSkV5Q7q4iIXlL5lwUFOw=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "cf297a8d248db6a455b60133f6c0029c04ebe50e", + "rev": "884f3fe6d9bf056ba0017c132c39c1f0d07d4fec", "type": "github" }, "original": { @@ -1060,11 +1063,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1719387257, - "narHash": "sha256-q5nj4TFggEHcyKuETmVEFeGztkAYXl3TDIOfd6swo4U=", + "lastModified": 1721713478, + "narHash": "sha256-4DYCQGmsXaa90+hkNs/vH2XtPXEevCT9VRIM/HCbhiQ=", "owner": "nix-community", "repo": "nixd", - "rev": "60a925008bc353136ba5babce437f42819c1645c", + "rev": "86dc0ba9f59e4d87969e5e9bd826c586994a6474", "type": "github" }, "original": { @@ -1075,11 +1078,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1720515935, - "narHash": "sha256-8b+fzR4W2hI5axwB+4nBwoA15awPKkck4ghhCt8v39M=", + "lastModified": 1721911538, + "narHash": "sha256-5OrkPJsiZmNe99C6+KX0qx9sphoVLvldFjuqDYAZ8GQ=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "a111ce6b537df12a39874aa9672caa87f8677eda", + "rev": "d3c993c851ad40bbab7e08d566138ff72cd8744f", "type": "github" }, "original": { @@ -1260,11 +1263,11 @@ }, "nixpkgsStable": { "locked": { - "lastModified": 1719957072, - "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", + "lastModified": 1720535198, + "narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", + "rev": "205fd4226592cc83fd4c0885a3e4c9c400efabb5", "type": "github" }, "original": { @@ -1466,22 +1469,6 @@ } }, "nmd": { - "flake": false, - "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" - }, - "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" - } - }, - "nmd_2": { "inputs": { "nixpkgs": [ "nix-on-droid", @@ -1579,11 +1566,11 @@ ] }, "locked": { - "lastModified": 1720524665, - "narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=", + "lastModified": 1721042469, + "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1", + "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", "type": "github" }, "original": { @@ -1836,11 +1823,11 @@ ] }, "locked": { - "lastModified": 1720645794, - "narHash": "sha256-vAeYp+WH7i/DlBM5xNt9QeWiOiqzzf5abO8DYGkbUxg=", + "lastModified": 1721769617, + "narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "750dfb555b5abdab4d3266b3f9a05dec6d205c04", + "rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009", "type": "github" }, "original": { From a9697956e4fa4fdfd3cfef5b2a05baef62e47fb0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:41:38 +0200 Subject: [PATCH 02/10] Helix nixd LSP --- hmModules/helix/default.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hmModules/helix/default.nix b/hmModules/helix/default.nix index 89f0e01..a593e7d 100644 --- a/hmModules/helix/default.nix +++ b/hmModules/helix/default.nix @@ -13,5 +13,19 @@ true-color = true; # to make colors coherent when in ssh }; }; + languages = { + language = [ + { + name = "nix"; + language-servers = ["nixd"]; + } + ]; + language-servers = [ + { + name = "nixd"; + command = "nixd"; + } + ]; + }; }; } From ff789db499468e0b5a6aa158592c10449e4d00fc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:42:39 +0200 Subject: [PATCH 03/10] `garmin-collector` --- hosts/default.nix | 1 + modules/garmin-collector/default.nix | 46 ++++++++++ packages/garmin-collector/default.nix | 12 +++ packages/garmin-collector/garmin-collector.py | 82 ++++++++++++++++++ secrets/garmin-collector-environment.age | Bin 0 -> 1713 bytes secrets/secrets.nix | 1 + 6 files changed, 142 insertions(+) create mode 100644 modules/garmin-collector/default.nix create mode 100644 packages/garmin-collector/default.nix create mode 100644 packages/garmin-collector/garmin-collector.py create mode 100644 secrets/garmin-collector-environment.age diff --git a/hosts/default.nix b/hosts/default.nix index 27ff71f..16a5f4f 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -182,6 +182,7 @@ # "matrix-registration-shared-secret".owner = "matrix-synapse"; # "matrix-sliding-sync-secret".owner = "matrix-synapse"; "autistici-password".owner = "forgejo"; + "garmin-collector-environment".owner = "garmin-collector"; }; }; }; diff --git a/modules/garmin-collector/default.nix b/modules/garmin-collector/default.nix new file mode 100644 index 0000000..b4ac0e1 --- /dev/null +++ b/modules/garmin-collector/default.nix @@ -0,0 +1,46 @@ +{ + pkgs, + lib, + fleetFlake, + config, + ... +}: { + users.users.garmin-collector = { + isSystemUser = true; + group = "garmin-collector"; + extraGroups = ["garmin-collector"]; + home = "/var/lib/garmin-collector"; + }; + + users.groups.garmin-collector = {}; + + systemd.services.garmin-collector = { + description = "Garmin collector pushing to Prometheus Pushgateway"; + wantedBy = ["multi-user.target"]; + environment = { + PUSHGATEWAY_ADDRESS = config.services.prometheus.pushgateway.web.listen-address; + }; + serviceConfig = { + Group = "garmin-collector"; + User = "garmin-collector"; + WorkingDirectory = "/var/lib/garmin-collector"; + ExecStart = '' + ${lib.getExe fleetFlake.packages.${pkgs.system}.garmin-collector} + ''; + EnvironmentFile = config.age.secrets.garmin-collector-environment.path; + }; + }; + + systemd.timers."garmin-collector" = { + wantedBy = ["timers.target"]; + timerConfig = { + OnBootSec = "5m"; + OnUnitActiveSec = "4h"; + Unit = "garmin-collector.service"; + }; + }; + + environment.persistence."/persist".directories = [ + "/var/lib/garmin-collector" + ]; +} diff --git a/packages/garmin-collector/default.nix b/packages/garmin-collector/default.nix new file mode 100644 index 0000000..2e19330 --- /dev/null +++ b/packages/garmin-collector/default.nix @@ -0,0 +1,12 @@ +{ + writers, + python3Packages, + ... +}: +writers.writePython3Bin "garmin-collector" { + libraries = with python3Packages; [ + prometheus-client + garminconnect + ]; + flakeIgnore = ["E501"]; +} (builtins.readFile ./garmin-collector.py) diff --git a/packages/garmin-collector/garmin-collector.py b/packages/garmin-collector/garmin-collector.py new file mode 100644 index 0000000..f296638 --- /dev/null +++ b/packages/garmin-collector/garmin-collector.py @@ -0,0 +1,82 @@ +# !/usr/bin/env python3 + +import datetime +import os + +from garth.exc import GarthHTTPError + +from garminconnect import ( + Garmin, + GarminConnectAuthenticationError, +) + + +from prometheus_client import CollectorRegistry, push_to_gateway +from prometheus_client.core import GaugeMetricFamily + +email = os.getenv("GARMIN_EMAIL") +password = os.getenv("GARMIN_PASSWORD") +tokenstore = os.getenv("GARMINTOKENS") or "~/.garminconnect" +tokenstore_base64 = os.getenv("GARMINTOKENS_BASE64") or "~/.garminconnect_base64" +gateway_address = os.getenv("PUSHGATEWAY_ADDRESS") + +today = datetime.date.today() + + +def init_api(email=email, password=password): + """Initialize Garmin API with your credentials.""" + + try: + print( + f"Trying to login to Garmin Connect using token data from directory '{tokenstore}'...\n" + ) + + garmin = Garmin() + garmin.login(tokenstore) + except (FileNotFoundError, GarthHTTPError, GarminConnectAuthenticationError): + # Session is expired. You'll need to log in again + print( + "Login tokens not present, login with your Garmin Connect credentials to generate them.\n" + f"They will be stored in '{tokenstore}' for future use.\n" + ) + garmin = Garmin(email=email, password=password, is_cn=False) + garmin.login() + # Save Oauth1 and Oauth2 token files to directory for next login + garmin.garth.dump(tokenstore) + print( + f"Oauth tokens stored in '{tokenstore}' directory for future use. (first method)\n" + ) + # Encode Oauth1 and Oauth2 tokens to base64 string and safe to file for next login (alternative way) + token_base64 = garmin.garth.dumps() + dir_path = os.path.expanduser(tokenstore_base64) + with open(dir_path, "w") as token_file: + token_file.write(token_base64) + print( + f"Oauth tokens encoded as base64 string and saved to '{dir_path}' file for future use. (second method)\n" + ) + + return garmin + + +class GarminCollector: + def __init__(self): + super().__init__() + self.api = init_api() + + def collect(self): + try: + body = self.api.get_daily_weigh_ins(today.isoformat())["totalAverage"] + metric_gauge = GaugeMetricFamily("body_composition", "Body composition and weight", labels=["metric"]) + for k in ["weight", "bmi", "bodyFat", "bodyWater", "boneMass", "muscleMass", "physiqueRating", "visceralFat"]: + metric_gauge.add_metric([k], body[k]) + except Exception as e: + print(f"Something went wrong while fetching body composition data\n{e}") + + yield metric_gauge + + +if __name__ == "__main__": + registry = CollectorRegistry() + registry.register(GarminCollector()) + + push_to_gateway(gateway_address, job='garmin', registry=registry) diff --git a/secrets/garmin-collector-environment.age b/secrets/garmin-collector-environment.age new file mode 100644 index 0000000000000000000000000000000000000000..efc5779ffef174d6bdd9c322235c021118feb077 GIT binary patch literal 1713 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!*`Do#|;cT7xoD(8wUEGYJJcQi;g z&q&TnPYd=<3o1=XOLj4{G%-&vPj@PfaxSi{CtbdPZ3ips1s*G|l;DkzI^G4(Fhw=gI%3@j-NaQAd8NlbF`D0X)& zG)@XlEhsX`$nkOsGWQ4zN((Uy^f8I@&d&^r;z~&mHFgcIEGc*MF%HagwJ=Y1tMsq( zEeo-9G7m2{F!V{WFs{n-swxZgH*pMbcJW9Lsme{tHK{bKh|Kd(58z7Dx6F2Ot;~;d z4>k+QhzK?f_bAKH%?t3=&kFQ5vNWi0D+*8Y%`&LS%Zo~LDfcUOPm44ONlUFT54J3d zEKcY0ObOO53dk`E_45hND9a1WGtka3F7o!tH*hlx%`OkC@bI;CN_5J}56G(U^vn;7 zjBpA_EpzuV*Vhkp$~VsBDl$nl3kyi{D=IYc%c;sUDA6_#b}^~)P75@(D6b5N3^4bI z&^9jeEGkbAGB?ghcJnRpj|vR)(2fWTHpnwAG^Ye8K z%5)41bv7@`HTCp%bSp@643Et6P4+VkaY{6;a7;H0_75%t?3@}W|N(=U>u!wNdH%=}o%JV2R40I`W_RtS5 zcB{%V3UI9|F$xK)sEV-U()LabGLIm}%w1_mZEG;s$aC33?Dh`M&$u@BH4e>Mz zH}eX$u=I;WPRD^BMaKG$Tp2Ebg}Eh8VTHktC4p`(Ny*uX5fvt(ZhlS${)X<^X~vdW zMuCQACIyD(Ua96eJ|#VKW_IR+->LC)bN8C+4`0U?$K*%=w;+KI_NhUxzLMj=sd z7EVrk=jXKLBTGiuHMNOIo`QR zC1yEX+UAb=;n`k^MNZj;&XJBG=>;j}d1;Q`QI2k&;ptW3-iZM|N$D0_ zUSTO*mgfGUM%q3p1}3S7+1Y6&kwylAsS)Nur3GanMV8@_ex-iyVa_?J-UX!=9;smk zMlPoAzTw7BrhbJ{WyWS9T;@I**(DVL<;f{d1wK`-<*AOIKDlP)W@d>c0nW}AMF9oQ zW`TtP`5`Hpe!<1=E`CvFDXGCu;d#!^#kt<;j$GzW;UQ((X%&%C&S_OniNRr|!Kq$} z;cmgjo*5bbE=e9?mX6K_E+vjW{)H*}IbJ2@7F9{10WKjq1{K+8xE5Rq7a!V`!8XU{H{lV^-)JrtJ}6Zjfx5pP3orsGV9-5R%O0Z0_!y6YT68 zndBRpS?XV0WL}w85T240X;$TypPW(^XdY1#7@iqg6qwAVtE;O}WME;MSsWGQr(IH% z8(t8QZe*UBm1IzvRGRMM66$D>m{=ZSo|c;FpW(>0e5v3014%4%uD`mvt=8hhDT5P6 z|0kPA{AX=hUlaaL`$uK<{lcj|Z}}V_7R^_i^?!Fx`-TLKoq`+oPI2_p$xtqie0Cz; vB6wbob(v=XgZ^AeE#(J6#u*RX*JZP>{B7ueexh4h_;iJ**B5jYhq40z!s9|D literal 0 HcmV?d00001 diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 8f3c4ef..fb8e4df 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -27,6 +27,7 @@ in "matrix-sliding-sync-secret.age".publicKeys = [ccr-ssh ccr-gpg sisko]; "forgejo-runners-token.age".publicKeys = [ccr-ssh ccr-gpg picard]; "forgejo-nix-access-tokens.age".publicKeys = [ccr-ssh ccr-gpg picard]; + "garmin-collector-environment.age".publicKeys = [ccr-ssh ccr-gpg sisko]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [ccr-ssh ccr-gpg picard]; From 865274a2df843031dc7df6791c26c48538e59849 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:43:11 +0200 Subject: [PATCH 04/10] Disable `photos.aciceri.dev` DNS --- modules/rock5b-proxy/default.nix | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/rock5b-proxy/default.nix b/modules/rock5b-proxy/default.nix index 1906a71..6e51923 100644 --- a/modules/rock5b-proxy/default.nix +++ b/modules/rock5b-proxy/default.nix @@ -35,17 +35,17 @@ proxyPass = "http://localhost:${builtins.toString config.services.invidious.port}"; }; }; - "photos.aciceri.dev" = { - extraConfig = '' - client_max_body_size 50000M; - ''; - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:2283"; - proxyWebsockets = true; - }; - }; + # "photos.aciceri.dev" = { + # extraConfig = '' + # client_max_body_size 50000M; + # ''; + # forceSSL = true; + # enableACME = true; + # locations."/" = { + # proxyPass = "http://localhost:2283"; + # proxyWebsockets = true; + # }; + # }; # "jellyfin.aciceri.dev" = { # forceSSL = true; From 71a3654e9a14db142fdc17f5105c44abe0a27732 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:43:58 +0200 Subject: [PATCH 05/10] Restic for `sisko` --- hosts/sisko/default.nix | 2 + modules/restic/default.nix | 60 ++++++++---------- ...hetzner-storage-box-sisko-ssh-password.age | Bin 0 -> 1653 bytes secrets/secrets.nix | 2 + secrets/sisko-restic-password.age | 30 +++++++++ 5 files changed, 59 insertions(+), 35 deletions(-) create mode 100644 secrets/hetzner-storage-box-sisko-ssh-password.age create mode 100644 secrets/sisko-restic-password.age diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 8aba34a..8baf83a 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -34,6 +34,8 @@ "prometheus-exporters" "loki" "promtail" + "restic" + # "immich" ] ++ [ ./disko.nix diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 4496e61..52da5cf 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -3,43 +3,33 @@ pkgs, lib, ... -}: { - options.backup = { - paths = lib.mkOption { - type = lib.types.listOf lib.types.path; - default = []; +}: let + user = "u382036-sub1"; + host = "u382036.your-storagebox.de"; + port = "23"; +in { + age.secrets = { + HETZNER_STORAGE_BOX_SISKO_SSH_PASSWORD = { + file = ../../secrets/hetzner-storage-box-sisko-ssh-password.age; + owner = "root"; }; - }; - config.services.restic = { - backups = { - hetzner = { - paths = config.backup.paths; - passwordFile = config.age.secrets.restic-hetzner-password.path; - extraOptions = [ - # Use the host ssh key, for authorizing new hosts: - # cat /etc/ssh/ssh_host_ed25519_key.pub | ssh -p23 u382036-sub1@u382036-sub1.your-storagebox.de install-ssh-key - "sftp.command='ssh -p23 u382036-sub1@u382036-sub1.your-storagebox.de -i /etc/ssh/ssh_host_ed25519_key -s sftp'" - ]; - repository = "sftp://u382036-sub1@u382036-sub1.your-storagebox.de:23/"; - initialize = true; - timerConfig.OnCalendar = "daily"; - timerConfig.RandomizedDelaySec = "1h"; - }; + SISKO_RESTIC_PASSWORD = { + file = ../../secrets/sisko-restic-password.age; + owner = "root"; }; }; - config.environment.systemPackages = builtins.map (path: - pkgs.writeShellApplication { - name = "restic-restore-${builtins.replaceStrings ["/"] ["-"] path}"; - runtimeInputs = with pkgs; [restic]; - text = '' - restic -r ${config.services.restic.backups.hetzner.repository} \ - ${lib.concatMapStringsSep ''\'' (option: "-o ${option}") config.services.restic.backups.hetzner.extraOptions} \ - --password-file ${config.services.restic.backups.hetzner.passwordFile} \ - restore latest \ - --path "${path}"\ - --target "$1" - ''; - }) - config.services.restic.backups.hetzner.paths; + services.openssh.knownHosts."${host}".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; + + services.restic.backups.sisko = { + paths = ["/persist"]; + passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; + extraOptions = [ + "sftp.command='${lib.getExe pkgs.sshpass} -f ${config.age.secrets.HETZNER_STORAGE_BOX_SISKO_SSH_PASSWORD.path} ssh -p${port} ${user}@${host} -s sftp'" + ]; + repository = "sftp://${user}@${host}:${port}/"; + initialize = true; + timerConfig.OnCalendar = "daily"; + timerConfig.RandomizedDelaySec = "1h"; + }; } diff --git a/secrets/hetzner-storage-box-sisko-ssh-password.age b/secrets/hetzner-storage-box-sisko-ssh-password.age new file mode 100644 index 0000000000000000000000000000000000000000..d2e9b5acf5f88f348d9ca9895dfbe1ef5e530b04 GIT binary patch literal 1653 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!*`Do#|;cT7xoD(7;|&CktBc8YWh zH8*ezil|EWOf?8}EHpCpE3!y)_VF(FtjO?iv@oem@iI(IiYoC7)i$g2^bWO*@To|O zs>tVZb&WDj%qw>DkIc_4b##u5v@FT-H+Krn@DJ6u$a4?!3rkKncXRj6H^>Qf@h=b0 zvIz6BbaC-<4h%AKGB<3(Gb) zEOm@BNq0{RayQBdstn4=N=~t?NK3IW^bacV<;qPdj|?}m$VxWL^vv{0EUok{NzG1A zvq;I;FEh{g35+NV4XE(W^C=DYFU}6Cbh5~F%kwC4D)BM%u*fy^apZCi3U|-VN%yoU zv?$CBEX@jciE9|%&f{POLq43%l7thH8(5?4KGV8<;pa5bFcIYE(p$baZfSvPEIYY3`ndB zjPMGGFb_62a`W_ebc+ZKj3`euF^C9u&#VgZb~a7%iz>s8$HO{TbvGnq+C@wV3DNHUeOEZf!2{5%R)((s;bqWkIPfy9rbIbKF z^wIY#3odld%yRU|D6I13%61G*c1cZgGc_*Hb@C5)2`+asG)xT(HV^SNO$+f0cZqT} z2?+_wbk0miPRD^BMaKG$Tp+yzJE-nTUZs{pm`c8or zPR8M7Mdf}`z7ZisiJ&+yF^$M@&$l#kOmg!rcT3LC(=QH8D%7qp<%;x6Oe-`pa`kjH z4a&|*OgHsTGxTus57RELGRz4KsIW9Qt1?Wn%ucHC%k}p&3n&b)@bfGVOE1s&%MY(g z&E(4WF*C_4D#{2gb@C|5^YSfD^UCrK%Ph!nk8-!jFRwJqigJ(4au3L^FiMIr_0Tre z*H6vL4>3yfOwZFUwb19v^b7U$DfLf|3iJ$dceM!A_cS&&)z;T9Pjn8}HcG5A&olIm zDD_RtD@e=mH%kn6bV;|&N%PDpNzQYMC^vTGaw)9}OfxOXGSJRWtqk?dNH#Vu@d@^h z46sZK@+);tD|59l_V&+nb4yCAGWE^~EsqHF&B^hMGB5BhGe`<{?FAL0dDJe=xHPSA1E;V;fG0iDV)h{+K_lO8~a!fL| z@UL)*a*c5Fic0p)&&cDlbkcTlG%mET2un1J^fgMVi1I28DXH=ZO1G>sF*Em!aw$j( zD)Y(8Ehq_zN;V76ch)a2FmTQC_N?+L@^due$_vk{EJ=(sclSyT%8K$yt_*dn3Un?h zODb@7D+>1ua`p2K3HLUzObV{bDljikNvp^+PYo)ns&e$s@N)?Z;R^C{Ey@flFYvH* zcXA8N&nx#yi7L!1@h=F^urx^Y$@9t&3rg{J^RCLWfTiQq6eCkpLrVqivXr1aM}-jo zQt#x%$e_$j$CAucKg%E|ugZ|faMx^)+z`_cr-;PhFlRsg%BqaONG`L0ycF;3eAmEm z{Zz;FkO04cY%l+)FzvJy=g6QmugK8MRL|mcXSaaLY%X10U4=|b1ATpe3nM@Mys)fN zZ ssh-rsa /AagBw +TKW/pV8ANvSWay5wTsFhV0CDSqn/wZAzNRP0WgRzBJbsrFP2/YYkhRHFtwkMjeXm +qEJPeXYdpgT6+FXq3nfhTaK/AbeebBRWO7dgGfKBosJ6Mc+PMhephrQ+oH6/zbG5 +l5QclAZ4NOfkD3f/nnqog13nKTijHjHcTnEWYZZz8RowaUEkEjo4Xbgw1MUbC8yJ +khyqZOTVFnfKgcSW5rlnsbrZKkmwYYY8mej27I9AFeSLgE0DOF3OWxrNxuPdxICp +h/kfQ2lPw75TWX5vj8WKOOxjAvheIiJDAAdfOoroK1BqKAUmpC6HjpC3cJZhrMmE +Xtob+esC39M8QBO1vUB639/I0AKAMbn3rE617StUr2QyyyNahnOOOPaZplCk/uM8 +Sde8d+VwTuvJXosuxi7Z+lQbeyCg7WmRigRoSiL6+9HcdMtDMDRjtloVq1o+iHXc +5A99Eeq0D/rBVSDmXKkVpcwLfruWL1v061+K7PPnjKa2CjnoEjAZDfqeQI+OBLZP +zqJ1CcQUnujYEpyhy4YV1ZpLZYOt48osEhUvG/eFnfymeDeAVAts725uzboN3uX8 +ETM5k0cW1ElSTL0BltRn8hRs8BSVXtKIucRXERomIwK+45ux8DHFS2NQlEHs2x1g +d4coPbCgMt7nBPYGnAUOYaWyw6dcaCAPNoVVIyUP1ps +-> ssh-rsa QHr3/A +GM2npxcLnNk81fSJUW9tcDnaKcx42cuxaObl8oCB43GIFm7K5L89FHj4Ww9RUJy0 +V41RQ802OBgudJqOI63DcW7mZ905fqLTnKZ75EJJSGgqjY0EcCOc2Oy8kV/BidWP +scmDbd+mQ1INuZBr9GBkD1brESh4vHtByPD6wkFKXlVkVTL49EQt8uBw8/0+uF0B +5a1aRQ09IkVPjluDMy2fc4VpgvkdnuXsMRD8vPk6gGzVlii72htGwYYWtIP9CgpY +trp85RxVGuqUTULFBOGXcc7YjfE1DWkPoeokCL8m7aVzdasZl+cl/Ick6rJueuQI +5ESvYKqRTfZ+oA8MapNtAZ7Nl8CT8VJoRyI6IQvPynRXCBK9D6gEAWc5l6Kv15Fl +73c8Q5I2oIaLOfeMYcZ1bL5Zvspa6Rsb5BtvOuOkacxx7GjMar1G2tUY4W3vFqn9 +yf8/Uc61LU6BYVvFh6DI6TwHp6xp/DrWZYhXCvNfirMn1NSw+8q0EEcIr2sUdkbx +gf2onMjtRP/Mki0oqkMTXnIsCzL/Y7D13GdouVqz0Ttbg/BEa8RnSaJxDIwQ1Wlz +VCC+oK/jTr+0pfP+3iR75WuGC0ce+muEN/L29H6wFk4N2oar/r0BYZZ6BtV9I9kS +8xnIxKvrcJ4O5dYy4f/lMeTRlPp6pz1jjtb6AVcNzHE +-> ssh-ed25519 +vdRnA qQe9nesjyr3dCtSa7xfgsw1RjKx5UGTzg+/XrcDzl0A +912JZmwcsvsg2D8G9LakTfOa70hCkk4DALZP1fKcw2A +--- GzPDMAdvn0Gvp+gqVd/1EKvMPtqPhIjpVYRDAcvhwaU +Ș x +ydOSa)avGჳMX %O=`~$  \ No newline at end of file From 2871c291bff1bc91eb8f3b904681848ca5804196 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:44:14 +0200 Subject: [PATCH 06/10] Promtail --- modules/promtail/default.nix | 2 +- modules/promtail/protmail.yaml | 0 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 modules/promtail/protmail.yaml diff --git a/modules/promtail/default.nix b/modules/promtail/default.nix index 74f2eec..f6d7621 100644 --- a/modules/promtail/default.nix +++ b/modules/promtail/default.nix @@ -11,7 +11,7 @@ }; clients = [ { - url = "http://sisko.fleet:${builtins.toString config.services.loki.configuration.server.http_listen_port}/loki/api/v1/push"; + url = "http://sisko.fleet:${builtins.toString config.services.loki.configuration.server.http_listen_port or 3100}/loki/api/v1/push"; } ]; positions = { diff --git a/modules/promtail/protmail.yaml b/modules/promtail/protmail.yaml deleted file mode 100644 index e69de29..0000000 From a39a314e4c3801fc5e34ee7e39ce49224391c4f7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:44:28 +0200 Subject: [PATCH 07/10] Prometheus pushgateway --- modules/prometheus-exporters/default.nix | 76 ++++++++++++++++-------- modules/prometheus/default.nix | 62 +++++++++++++++++++ 2 files changed, 112 insertions(+), 26 deletions(-) diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix index ceaab99..a56d1cb 100644 --- a/modules/prometheus-exporters/default.nix +++ b/modules/prometheus-exporters/default.nix @@ -1,32 +1,56 @@ { config, pkgs, + lib, ... -}: { - services.prometheus.exporters.node = { - enable = true; - enabledCollectors = [ - "cpu" - "conntrack" - "diskstats" - "entropy" - "filefd" - "filesystem" - "loadavg" - "mdadm" - "meminfo" - "netdev" - "netstat" - "stat" - "time" - "vmstat" - "systemd" - "logind" - "interrupts" - "ksmd" - "textfile" - "pressure" - ]; - extraFlags = ["--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi"]; +}: let + hostname = config.networking.hostName; + mkFor = hosts: lib.mkIf (builtins.elem hostname hosts); +in { + services.prometheus.exporters = { + node = mkFor ["sisko" "picard"] { + enable = true; + enabledCollectors = [ + "cpu" + "conntrack" + "diskstats" + "entropy" + "filefd" + "filesystem" + "loadavg" + "mdadm" + "meminfo" + "netdev" + "netstat" + "stat" + "time" + "vmstat" + "systemd" + "logind" + "interrupts" + "ksmd" + "textfile" + "pressure" + ]; + extraFlags = ["--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi"]; + }; + wireguard = mkFor ["sisko" "picard"] { + enable = true; + }; + zfs = mkFor ["picard"] { + enable = true; + }; + # restic = mkFor ["sisko"] { + # enable = true; + # }; + postgres = mkFor ["sisko"] { + enable = true; + }; + nginx = mkFor ["sisko"] { + enable = true; + }; + smartctl = mkFor ["sisko"] { + enable = true; + }; }; } diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix index e77b7d6..c35b04e 100644 --- a/modules/prometheus/default.nix +++ b/modules/prometheus/default.nix @@ -3,6 +3,12 @@ in { services.prometheus = { enable = true; + pushgateway = { + enable = true; + web = { + listen-address = "sisko.fleet:9094"; + }; + }; checkConfig = false; # Otherwise it will fail because it cannot access bearer_token_file webExternalUrl = "https://status.aciceri.dev"; globalConfig.scrape_interval = "10s"; @@ -17,6 +23,14 @@ in { } ]; } + { + job_name = "pushgateway"; + static_configs = [ + { + targets = [cfg.pushgateway.web.listen-address]; + } + ]; + } { job_name = "node"; static_configs = [ @@ -25,6 +39,54 @@ in { } ]; } + { + job_name = "wireguard"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9586") ["picard"]; + } + ]; + } + { + job_name = "zfs"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9134") ["picard"]; + } + ]; + } + { + job_name = "restic"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9753") ["sisko"]; + } + ]; + } + { + job_name = "postgres"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9187") ["sisko"]; + } + ]; + } + { + job_name = "nginx"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9117") ["sisko"]; + } + ]; + } + { + job_name = "smartctl"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9633") ["sisko"]; + } + ]; + } ]; }; environment.persistence."/persist".directories = [ From dbb15d07ed8e6c76e7c378523ad3c09e91da78ec Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:44:37 +0200 Subject: [PATCH 08/10] Enable promtail on `picard` --- hosts/picard/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 97be64f..5337448 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -42,6 +42,7 @@ "adb" "guix" "prometheus-exporters" + "promtail" ] ++ [ ./disko.nix From 797f8d032dcaa429d2856cddbe0213df6473581b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:44:56 +0200 Subject: [PATCH 09/10] Enable `garmin-collector` on `sisko` --- hosts/sisko/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 8baf83a..f86b986 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -34,6 +34,7 @@ "prometheus-exporters" "loki" "promtail" + "garmin-collector" "restic" # "immich" ] From aa2ca55059687002890df8c61d61da30fa21d209 Mon Sep 17 00:00:00 2001 From: Seven of Nine Date: Mon, 29 Jul 2024 07:24:12 +0000 Subject: [PATCH 10/10] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'disko': 'github:nix-community/disko/786965e1b1ed3fd2018d78399984f461e2a44689' (2024-07-11) → 'github:nix-community/disko/1e6f8a7b4634fc051cc9361959bf414fcf17e094' (2024-07-29) • Updated input 'dream2nix': 'github:nix-community/dream2nix/0c6b5c8ab796f6dfb2aef1133f5b7bb25ce57cb9' (2024-07-10) → 'github:nix-community/dream2nix/736f7ac951078454e5b8b2a96e5f905210fcd635' (2024-07-29) • Updated input 'homeManager': 'github:nix-community/home-manager/c085b984ff2808bf322f375b10fea5a415a9c43d' (2024-07-10) → 'github:nix-community/home-manager/792757f643cedc13f02098d8ed506d82e19ec1da' (2024-07-28) • Updated input 'lix': 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=014410cbf0bda9c0fcdaf5f894120883cdc805ce' (2024-07-10) → 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/heads/main&rev=6abad7cb238c5c7bf59a83bed55e7590c544fc2e' (2024-07-26) • Updated input 'lix-module': 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=5d9d94089fb1ca96222a34bfe245ef5c5ebefd37' (2024-06-25) → 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=d70318fb946a0e720dfdd1fb10b0645c14e2a02a' (2024-07-11) • Updated input 'mobile-nixos': 'github:NixOS/mobile-nixos/31704f8a55f5773c9b4e7adb7408a142d142e1f2' (2024-07-11) → 'github:NixOS/mobile-nixos/717ce90cfadffa449480bae2e155185c651e9993' (2024-07-27) • Updated input 'nix-on-droid': 'github:nix-community/nix-on-droid/8bcadcef69dcb5ca177bfb6ea3dc6b092cda2b06' (2024-07-10) → 'github:nix-community/nix-on-droid/248cc0806120fac9214f503dee0eaf0f47740dd0' (2024-07-22) • Updated input 'nix-on-droid/nix-formatter-pack/nmd': 'gitlab:rycee/nmd/b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169' (2022-10-19) → follows 'nix-on-droid/nmd' • Updated input 'nixDarwin': 'github:LnL7/nix-darwin/cf297a8d248db6a455b60133f6c0029c04ebe50e' (2024-07-10) → 'github:LnL7/nix-darwin/0413754b3cdb879ba14f6e96915e5fdf06c6aab6' (2024-07-27) • Updated input 'nixd': 'github:nix-community/nixd/60a925008bc353136ba5babce437f42819c1645c' (2024-06-26) → 'github:nix-community/nixd/4c306e7e2694a02a99fe53a62a1bf607d0137531' (2024-07-26) • Updated input 'nixosHardware': 'github:NixOS/nixos-hardware/a111ce6b537df12a39874aa9672caa87f8677eda' (2024-07-09) → 'github:NixOS/nixos-hardware/e67b60fb1b2c3aad2202d95b91d4c218cf2a4fdd' (2024-07-27) • Updated input 'nixpkgsStable': 'github:NixOS/nixpkgs/7144d6241f02d171d25fba3edeaf15e0f2592105' (2024-07-02) → 'github:NixOS/nixpkgs/205fd4226592cc83fd4c0885a3e4c9c400efabb5' (2024-07-09) • Updated input 'pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/8d6a17d0cdf411c55f12602624df6368ad86fac1' (2024-07-09) → 'github:cachix/pre-commit-hooks.nix/f451c19376071a90d8c58ab1a953c6e9840527fd' (2024-07-15) • Updated input 'treefmt-nix': 'github:numtide/treefmt-nix/750dfb555b5abdab4d3266b3f9a05dec6d205c04' (2024-07-10) → 'github:numtide/treefmt-nix/8db8970be1fb8be9c845af7ebec53b699fe7e009' (2024-07-23) --- flake.lock | 105 +++++++++++++++++++++++------------------------------ 1 file changed, 46 insertions(+), 59 deletions(-) diff --git a/flake.lock b/flake.lock index 7b0925b..e701191 100644 --- a/flake.lock +++ b/flake.lock @@ -104,11 +104,11 @@ ] }, "locked": { - "lastModified": 1720661479, - "narHash": "sha256-nsGgA14vVn0GGiqEfomtVgviRJCuSR3UEopfP8ixW1I=", + "lastModified": 1722217815, + "narHash": "sha256-8r5AJ3n8WEDw3rsZLALSuFQ5kJyWOcssNZvPxYLr2yc=", "owner": "nix-community", "repo": "disko", - "rev": "786965e1b1ed3fd2018d78399984f461e2a44689", + "rev": "1e6f8a7b4634fc051cc9361959bf414fcf17e094", "type": "github" }, "original": { @@ -124,11 +124,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1720605900, - "narHash": "sha256-/BTAC3gj1Ot7o/PINsHS2EGEtGUadI12WZlhowKn18c=", + "lastModified": 1722235740, + "narHash": "sha256-O4Y1XRd4en+GWyU0NvwBBLB4sdt5btoK9oiPqCmtIIs=", "owner": "nix-community", "repo": "dream2nix", - "rev": "0c6b5c8ab796f6dfb2aef1133f5b7bb25ce57cb9", + "rev": "736f7ac951078454e5b8b2a96e5f905210fcd635", "type": "github" }, "original": { @@ -818,11 +818,11 @@ ] }, "locked": { - "lastModified": 1720646128, - "narHash": "sha256-BivO5yIQukDlJL+1875Sqf3GuOPxZDdA48dYDi3PkL8=", + "lastModified": 1722203588, + "narHash": "sha256-91V5FMSQ4z9bkhTCf0f86Zjw0bh367daSf0mzCIW0vU=", "owner": "nix-community", "repo": "home-manager", - "rev": "c085b984ff2808bf322f375b10fea5a415a9c43d", + "rev": "792757f643cedc13f02098d8ed506d82e19ec1da", "type": "github" }, "original": { @@ -887,11 +887,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1720633647, - "narHash": "sha256-CjWvti4wFhRmIHpLduohKAVmU9+wI/PAOhQppCWziK8=", + "lastModified": 1721992157, + "narHash": "sha256-D5bBsSKvYmVn8U4lhrvMemko7m2I/sicjyAYEWDfW9A=", "ref": "refs/heads/main", - "rev": "014410cbf0bda9c0fcdaf5f894120883cdc805ce", - "revCount": 15944, + "rev": "6abad7cb238c5c7bf59a83bed55e7590c544fc2e", + "revCount": 16027, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -912,11 +912,11 @@ ] }, "locked": { - "lastModified": 1719353937, - "narHash": "sha256-86NBqDxAP20ET/UoKX0WvSItblNQ97czXb2q7lkMrwk=", + "lastModified": 1720695775, + "narHash": "sha256-8Oqzl9QPjEe/n8y0R2tC6+2v/H6xBgABHXOJwxmnBg0=", "ref": "refs/heads/main", - "rev": "5d9d94089fb1ca96222a34bfe245ef5c5ebefd37", - "revCount": 92, + "rev": "d70318fb946a0e720dfdd1fb10b0645c14e2a02a", + "revCount": 94, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -928,11 +928,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1720660935, - "narHash": "sha256-GnDGoVaObUjnYdCHUSIYVE1anMElis+Pq+RY30LFlIk=", + "lastModified": 1722056346, + "narHash": "sha256-50fcuCppaLMfSOTFO4IkCBs4folToCwlhTgc6IdZFHg=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "31704f8a55f5773c9b4e7adb7408a142d142e1f2", + "rev": "717ce90cfadffa449480bae2e155185c651e9993", "type": "github" }, "original": { @@ -969,7 +969,10 @@ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd", + "nmd": [ + "nix-on-droid", + "nmd" + ], "nmt": "nmt" }, "locked": { @@ -993,14 +996,14 @@ "nixpkgs": "nixpkgs_8", "nixpkgs-docs": "nixpkgs-docs", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", - "nmd": "nmd_2" + "nmd": "nmd" }, "locked": { - "lastModified": 1720612508, - "narHash": "sha256-WbjV0gmnh6jG1B292K4KIJwtBacn2sTWhiw1ZMeti9s=", + "lastModified": 1721670745, + "narHash": "sha256-rjTQ14dqQ90EaHQy4g/mGylrJ1aZJYc3wCXc4A3GHJg=", "owner": "nix-community", "repo": "nix-on-droid", - "rev": "8bcadcef69dcb5ca177bfb6ea3dc6b092cda2b06", + "rev": "248cc0806120fac9214f503dee0eaf0f47740dd0", "type": "github" }, "original": { @@ -1016,11 +1019,11 @@ ] }, "locked": { - "lastModified": 1720599442, - "narHash": "sha256-jdm+sKVbBXoyrxcHbVaV0htlpq2iFR+eJw3Xe/DPcDo=", + "lastModified": 1722082646, + "narHash": "sha256-od8dBWVP/ngg0cuoyEl/w9D+TCNDj6Kh4tr151Aax7w=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "cf297a8d248db6a455b60133f6c0029c04ebe50e", + "rev": "0413754b3cdb879ba14f6e96915e5fdf06c6aab6", "type": "github" }, "original": { @@ -1060,11 +1063,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1719387257, - "narHash": "sha256-q5nj4TFggEHcyKuETmVEFeGztkAYXl3TDIOfd6swo4U=", + "lastModified": 1721956722, + "narHash": "sha256-EYYob7/Z3RKJAp9HcOMPXwvmXHjXIlmd/1eKHGKWnKI=", "owner": "nix-community", "repo": "nixd", - "rev": "60a925008bc353136ba5babce437f42819c1645c", + "rev": "4c306e7e2694a02a99fe53a62a1bf607d0137531", "type": "github" }, "original": { @@ -1075,11 +1078,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1720515935, - "narHash": "sha256-8b+fzR4W2hI5axwB+4nBwoA15awPKkck4ghhCt8v39M=", + "lastModified": 1722114937, + "narHash": "sha256-MOZ9woPwdpFJcHx3wic2Mlw9aztdKjMnFT3FaeLzJkM=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "a111ce6b537df12a39874aa9672caa87f8677eda", + "rev": "e67b60fb1b2c3aad2202d95b91d4c218cf2a4fdd", "type": "github" }, "original": { @@ -1260,11 +1263,11 @@ }, "nixpkgsStable": { "locked": { - "lastModified": 1719957072, - "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", + "lastModified": 1720535198, + "narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", + "rev": "205fd4226592cc83fd4c0885a3e4c9c400efabb5", "type": "github" }, "original": { @@ -1466,22 +1469,6 @@ } }, "nmd": { - "flake": false, - "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" - }, - "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" - } - }, - "nmd_2": { "inputs": { "nixpkgs": [ "nix-on-droid", @@ -1579,11 +1566,11 @@ ] }, "locked": { - "lastModified": 1720524665, - "narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=", + "lastModified": 1721042469, + "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1", + "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", "type": "github" }, "original": { @@ -1836,11 +1823,11 @@ ] }, "locked": { - "lastModified": 1720645794, - "narHash": "sha256-vAeYp+WH7i/DlBM5xNt9QeWiOiqzzf5abO8DYGkbUxg=", + "lastModified": 1721769617, + "narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "750dfb555b5abdab4d3266b3f9a05dec6d205c04", + "rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009", "type": "github" }, "original": {