mirror of
https://codeberg.org/privacy1st/nix-git
synced 2024-11-21 22:03:19 +01:00
refactor netcup-dns
This commit is contained in:
parent
a915566680
commit
8dbd422a50
@ -23,6 +23,7 @@
|
|||||||
../../modules/journalwatch.nix
|
../../modules/journalwatch.nix
|
||||||
|
|
||||||
../../modules/btrbk
|
../../modules/btrbk
|
||||||
|
../../modules/netcup-dns.nix
|
||||||
../../modules/de-p1st-monitor.nix
|
../../modules/de-p1st-monitor.nix
|
||||||
../../modules/spin-down.nix
|
../../modules/spin-down.nix
|
||||||
|
|
||||||
|
@ -1,73 +1,5 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
|
||||||
my-python-packages = ps: with ps; [
|
|
||||||
# netcup-dns is not (yet) packaged, thus we build it from PyPI
|
|
||||||
(
|
|
||||||
buildPythonPackage rec {
|
|
||||||
pname = "netcup-dns";
|
|
||||||
version = "0.2.0";
|
|
||||||
# https://nixos.wiki/wiki/Packaging/Python#Fix_Missing_setup.py
|
|
||||||
format = "pyproject";
|
|
||||||
src = fetchPypi {
|
|
||||||
inherit pname version;
|
|
||||||
sha256 = "sha256-tZKPe02tHrTelyw30BQsJhdZpmDsggZ0rr4ag0eHtng=";
|
|
||||||
};
|
|
||||||
propagatedBuildInputs = [
|
|
||||||
# Dependencies
|
|
||||||
pkgs.python3Packages.requests
|
|
||||||
pkgs.python3Packages.nc-dnsapi
|
|
||||||
# Build dependencies
|
|
||||||
build
|
|
||||||
twine
|
|
||||||
];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
# Install netcup-dns Python packages.
|
|
||||||
environment.systemPackages = [
|
|
||||||
(pkgs.python3.withPackages my-python-packages)
|
|
||||||
];
|
|
||||||
|
|
||||||
# Configure netcup-dns.
|
|
||||||
# Create file `/etc/netcup-dns/netcup-dns-95191.json`.
|
|
||||||
deployment.keys."netcup-dns-95191.json" = {
|
|
||||||
keyFile = ../../secrets/netcup-dns.json;
|
|
||||||
destDir = "/etc/netcup-dns";
|
|
||||||
user = "netcup-dns";
|
|
||||||
group = "netcup-dns";
|
|
||||||
};
|
|
||||||
# Create netcup-dns daemon user.
|
|
||||||
users.users."netcup-dns" = {
|
|
||||||
isSystemUser = true;
|
|
||||||
group = "netcup-dns";
|
|
||||||
description = "netcup-dns daemon";
|
|
||||||
};
|
|
||||||
users.groups."netcup-dns" = {};
|
|
||||||
# Create netcup-dns timer.
|
|
||||||
systemd.timers."netcup-dns" = {
|
|
||||||
wantedBy = [ "timers.target" ];
|
|
||||||
partOf = [ "netcup-dns.service" ];
|
|
||||||
timerConfig = {
|
|
||||||
OnBootSec = "0m";
|
|
||||||
OnUnitInactiveSec = "3m";
|
|
||||||
|
|
||||||
AccuracySec = "15s";
|
|
||||||
RandomizedDelaySec = "15s";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.services."netcup-dns" = {
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
PrivateTmp = true;
|
|
||||||
User = "netcup-dns";
|
|
||||||
Nice = 19;
|
|
||||||
IOSchedulingClass = "idle";
|
|
||||||
ExecStart = "${pkgs.python3.withPackages my-python-packages}/bin/netcup-dns";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Update and start Jinja-Compose project
|
# Update and start Jinja-Compose project
|
||||||
# during boot and after every 30 minutes.
|
# during boot and after every 30 minutes.
|
||||||
# To view the log, run
|
# To view the log, run
|
||||||
|
70
modules/netcup-dns.nix
Normal file
70
modules/netcup-dns.nix
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
my-python-packages = ps: with ps; [
|
||||||
|
# netcup-dns is not (yet) packaged, thus we build it from PyPI
|
||||||
|
(
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "netcup-dns";
|
||||||
|
version = "0.2.0";
|
||||||
|
# https://nixos.wiki/wiki/Packaging/Python#Fix_Missing_setup.py
|
||||||
|
format = "pyproject";
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "sha256-tZKPe02tHrTelyw30BQsJhdZpmDsggZ0rr4ag0eHtng=";
|
||||||
|
};
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
# Dependencies
|
||||||
|
pkgs.python3Packages.requests
|
||||||
|
pkgs.python3Packages.nc-dnsapi
|
||||||
|
# Build dependencies
|
||||||
|
build
|
||||||
|
twine
|
||||||
|
];
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Install netcup-dns Python packages.
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.python3.withPackages my-python-packages)
|
||||||
|
];
|
||||||
|
|
||||||
|
# Configure netcup-dns.
|
||||||
|
# Create file `/etc/netcup-dns/netcup-dns-95191.json`.
|
||||||
|
deployment.keys."netcup-dns-95191.json" = {
|
||||||
|
keyFile = ../../secrets/netcup-dns.json;
|
||||||
|
destDir = "/etc/netcup-dns";
|
||||||
|
user = "netcup-dns";
|
||||||
|
group = "netcup-dns";
|
||||||
|
};
|
||||||
|
# Create netcup-dns daemon user.
|
||||||
|
users.users."netcup-dns" = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "netcup-dns";
|
||||||
|
description = "netcup-dns daemon";
|
||||||
|
};
|
||||||
|
users.groups."netcup-dns" = {};
|
||||||
|
# Create netcup-dns timer.
|
||||||
|
systemd.timers."netcup-dns" = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
partOf = [ "netcup-dns.service" ];
|
||||||
|
timerConfig = {
|
||||||
|
OnBootSec = "0m";
|
||||||
|
OnUnitInactiveSec = "3m";
|
||||||
|
|
||||||
|
AccuracySec = "15s";
|
||||||
|
RandomizedDelaySec = "15s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.services."netcup-dns" = {
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
PrivateTmp = true;
|
||||||
|
User = "netcup-dns";
|
||||||
|
Nice = 19;
|
||||||
|
IOSchedulingClass = "idle";
|
||||||
|
ExecStart = "${pkgs.python3.withPackages my-python-packages}/bin/netcup-dns";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user