53 lines
1.3 KiB
Nix
53 lines
1.3 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
# https://github.com/NixOS/nixpkgs/pull/394352
|
|
cloudflare-dyndns-5-3 = pkgs.cloudflare-dyndns.overridePythonAttrs rec {
|
|
version = lib.warnIfNot (
|
|
pkgs.cloudflare-dyndns.version == "5.0"
|
|
) "The cloudflare-dyndns package is updated, you should remove this override" "5.3";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "kissgyorgy";
|
|
repo = "cloudflare-dyndns";
|
|
rev = "v${version}";
|
|
hash = "sha256-t0MqH9lDfl+cAnPYSG7P32OGO8Qpo1ep0Hj3Xl76lhU=";
|
|
};
|
|
build-system = with pkgs.python3Packages; [
|
|
hatchling
|
|
];
|
|
dependencies = with pkgs.python3Packages; [
|
|
click
|
|
httpx
|
|
pydantic
|
|
truststore
|
|
];
|
|
};
|
|
in
|
|
{
|
|
options = {
|
|
osbmModules.enableCloudflareDyndns = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
description = "Enable a service to push my public IP address to my Cloudflare domain.";
|
|
};
|
|
};
|
|
|
|
config = lib.mkMerge [
|
|
(lib.mkIf config.osbmModules.enableCloudflareDyndns {
|
|
services.cloudflare-dyndns = {
|
|
package = cloudflare-dyndns-5-3;
|
|
enable = true;
|
|
apiTokenFile = "/persist/cloudflare-dyndns";
|
|
proxied = false; # TODO please revert
|
|
domains = [
|
|
"git.osbm.dev"
|
|
"aifred.osbm.dev"
|
|
];
|
|
};
|
|
})
|
|
];
|
|
}
|