mirror of
https://codeberg.org/privacy1st/nix-git
synced 2024-12-23 02:36:05 +01:00
add netcup-dns, start Jinja-Compose, refactor
This commit is contained in:
parent
971f5ab0b6
commit
e5ca975988
@ -22,8 +22,7 @@ in
|
||||
../../modules/home-manager.nix
|
||||
# NUR.
|
||||
../../modules/nur.nix
|
||||
# Device specific.
|
||||
#../../modules/yodaNas.nix
|
||||
./host-specific.nix
|
||||
|
||||
../../modules/base.nix
|
||||
../../modules/base-headless.nix
|
||||
@ -66,10 +65,4 @@ in
|
||||
boot.kernelParams = [];
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
|
||||
# TODO: For "/" this cfg resides in base.nix
|
||||
fileSystems = {
|
||||
"/mnt/data".options = [ "compress=zstd" "noatime" "commit=120" ];
|
||||
"/mnt/backup".options = [ "compress=zstd" "noatime" "commit=120" ];
|
||||
};
|
||||
}
|
||||
|
98
hosts/yodaNas/host-specific.nix
Normal file
98
hosts/yodaNas/host-specific.nix
Normal file
@ -0,0 +1,98 @@
|
||||
{ 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
|
||||
{
|
||||
# TODO: For "/" this cfg resides in base.nix
|
||||
fileSystems = {
|
||||
"/mnt/data".options = [ "compress=zstd" "noatime" "commit=120" ];
|
||||
"/mnt/backup".options = [ "compress=zstd" "noatime" "commit=120" ];
|
||||
};
|
||||
|
||||
# Install netcup-dns.
|
||||
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" ];
|
||||
# https://man.archlinux.org/man/systemd.timer.5
|
||||
timerConfig = {
|
||||
OnCalendar = "3m";
|
||||
AccuracySec = "15s";
|
||||
RandomizedDelaySec = "15s";
|
||||
Persistent = true;
|
||||
};
|
||||
};
|
||||
systemd.services."netcup-dns" = {
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
PrivateTmp = true;
|
||||
User = "netcup-dns";
|
||||
Nice = 19;
|
||||
IOSchedulingClass = "idle";
|
||||
#ExecStart = "/run/current-system/sw/bin/netcup-dns";
|
||||
#ExecStart = "${my-python-packages}/bin/netcup-dns";
|
||||
ExecStart = "${pkgs.python3.withPackages my-python-packages}/bin/netcup-dns";
|
||||
};
|
||||
# path = with pkgs; [
|
||||
# my-python-packages
|
||||
# ];
|
||||
};
|
||||
|
||||
# Start Jinja-Compose project during boot.
|
||||
# To few the log, run
|
||||
# journalctl -b -u Jinja-Compose -f
|
||||
#
|
||||
systemd.services."Jinja-Compose" = {
|
||||
description = "Start Jinja-Compose project";
|
||||
path = with pkgs; [
|
||||
# The `docker-compose` helper script is written in `bash` (!)
|
||||
bash
|
||||
docker
|
||||
];
|
||||
script = ''
|
||||
/mnt/data/docker-compose/docker-compose up -d --wait
|
||||
'';
|
||||
# Start after login.
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
@ -22,8 +22,7 @@ in
|
||||
../../modules/home-manager.nix
|
||||
# NUR.
|
||||
../../modules/nur.nix
|
||||
# Device specific.
|
||||
../../modules/yodaYoga.nix
|
||||
./host-specific.nix
|
||||
|
||||
../../modules/base.nix
|
||||
../../modules/base-headless.nix
|
||||
|
Loading…
Reference in New Issue
Block a user