🔧 migrate to taskwarrior 3

This commit is contained in:
Ingolf Wagner 2024-09-03 18:20:29 +07:00
parent c03727fd80
commit e619cc2dab
No known key found for this signature in database
GPG key ID: 76BF5F1928B9618B
6 changed files with 49 additions and 35 deletions

View file

@ -142,7 +142,7 @@
inherit (pkgs) lib; inherit (pkgs) lib;
machineDir = ./machines; machineDir = ./machines;
}; };
zerotierDeviceName = "ztbn67ogn2"; zerotierInterface = "ztbn67ogn2";
components = ./components; components = ./components;
features = ./features; features = ./features;
}; };

View file

@ -42,7 +42,10 @@ let
valueType; valueType;
}; };
taskwarrior-tui = pkgs.legacy_2311.taskwarrior-tui; #taskwarrior-tui = pkgs.legacy_2311.taskwarrior-tui;
taskwarrior-tui = pkgs.taskwarrior-tui;
taskwarrior = pkgs.taskwarrior3;
in in
@ -87,28 +90,28 @@ in
config = mkIf config.gui.enable { config = mkIf config.gui.enable {
home.packages = with pkgs; [ home.packages = [
taskwarrior taskwarrior
taskwarrior-tui taskwarrior-tui
timewarrior pkgs.timewarrior
tasksh pkgs.tasksh
taskwarrior-hooks pkgs.taskwarrior-hooks
(pkgs.writeShellScriptBin "tsak" ''${pkgs.taskwarrior}/bin/task "$@"'') (pkgs.writeShellScriptBin "tsak" ''${taskwarrior}/bin/task "$@"'')
vit pkgs.vit
(pkgs.writers.writeBashBin "active" "${taskwarrior-tui}/bin/taskwarrior-tui -r active") (pkgs.writers.writeBashBin "active" "${taskwarrior-tui}/bin/taskwarrior-tui -r active")
(pkgs.writers.writeBashBin "todo" "${taskwarrior-tui}/bin/taskwarrior-tui -r todo") (pkgs.writers.writeBashBin "todo" "${taskwarrior-tui}/bin/taskwarrior-tui -r todo")
(pkgs.writers.writeBashBin "calendar" '' (pkgs.writers.writeBashBin "calendar" ''
${pkgs.taskwarrior}/bin/task calendar ${taskwarrior}/bin/task calendar
${pkgs.taskwarrior}/bin/task calendar_report ${taskwarrior}/bin/task calendar_report
'') '')
# todo : belongs to calendar.nix # todo : belongs to calendar.nix
vdirsyncer pkgs.vdirsyncer
khal pkgs.khal
(pkgs.writers.writeBashBin "kalendar" '' (pkgs.writers.writeBashBin "kalendar" ''
${pkgs.vdirsyncer}/bin/vdirsyncer sync ${pkgs.vdirsyncer}/bin/vdirsyncer sync
${pkgs.khal}/bin/ikhal ${pkgs.khal}/bin/ikhal

View file

@ -25,32 +25,37 @@ in
# local # local
commands.service2 = { commands.service2 = {
source = "zroot/services2"; source = "zroot/services2";
target = "zraid/mirror/services2"; # should not be created up front! target = "zraid/mirror/services2"; # should NOT be created up front!
}; };
commands.paperless = { commands.paperless = {
source = "zroot/paperless"; source = "zroot/paperless";
target = "zraid/mirror/paperless"; # should not be created up front! target = "zraid/mirror/paperless"; # should NOT be created up front!
}; };
commands.postgresql = { commands.postgresql = {
source = "zroot/postgresql"; source = "zroot/postgresql";
target = "zraid/mirror/postgresql"; # should not be created up front! target = "zraid/mirror/postgresql"; # should NOT be created up front!
}; };
# remote # remote
commands.matrix-terranix = { commands.matrix-terranix = {
sshKey = "/run/facts/ssh.syncoid.id_ed25519"; sshKey = "/run/facts/ssh.syncoid.id_ed25519";
source = "root@orbi.${tld}:zroot/matrix-terranix"; source = "root@orbi.${tld}:zroot/matrix-terranix";
target = "zraid/mirror/matrix-terranix"; # should not be created up front! target = "zraid/mirror/matrix-terranix"; # should NOT be created up front!
}; };
commands.nextcloud = { commands.nextcloud = {
sshKey = "/run/facts/ssh.syncoid.id_ed25519"; sshKey = "/run/facts/ssh.syncoid.id_ed25519";
source = "root@orbi.${tld}:zroot/nextcloud"; source = "root@orbi.${tld}:zroot/nextcloud";
target = "zraid/mirror/nextcloud"; # should not be created up front! target = "zraid/mirror/nextcloud"; # should NOT be created up front!
}; };
commands.photoprism = { commands.photoprism = {
sshKey = "/run/facts/ssh.syncoid.id_ed25519"; sshKey = "/run/facts/ssh.syncoid.id_ed25519";
source = "root@orbi.${tld}:zmedia/photoprism"; source = "root@orbi.${tld}:zmedia/photoprism";
target = "zraid/mirror/photoprism"; # should not be created up front! target = "zraid/mirror/photoprism"; # should NOT be created up front!
};
commands.taskchampion = {
sshKey = "/run/facts/ssh.syncoid.id_ed25519";
source = "root@orbi.${tld}:zroot/taskchampion";
target = "zraid/mirror/taskchampion"; # should NOT be created up front!
}; };
commonArgs = [ commonArgs = [
# Does not create new snapshot, only transfers existing # Does not create new snapshot, only transfers existing

View file

@ -19,10 +19,10 @@
./service-hedgedoc.nix ./service-hedgedoc.nix
./service-nix-cache.nix ./service-nix-cache.nix
./service-photoprism.nix ./service-photoprism.nix
#./service-surrealdb.nix # not really needed at the moment # ./service-surrealdb.nix # not really needed at the moment
./service-taskserver.nix ./service-taskserver.nix
./service-vaultwarden.nix ./service-vaultwarden.nix
./service-vikunja.nix # ./service-vikunja.nix
./service-wastebin.nix ./service-wastebin.nix
./nginx-ingolf-wagner-de.nix ./nginx-ingolf-wagner-de.nix
@ -45,6 +45,8 @@
]; ];
networking.firewall.enable = true;
services.logrotate.checkConfig = false; # because uid 3000 does not exist in here services.logrotate.checkConfig = false; # because uid 3000 does not exist in here
networking.hostName = "orbi"; networking.hostName = "orbi";

View file

@ -137,6 +137,19 @@ in
#"com.sun:auto-snapshot:monthly" = toString true; #"com.sun:auto-snapshot:monthly" = toString true;
}; };
}; };
"taskchampion" = {
type = "zfs_fs";
mountpoint = config.services.taskchampion-sync-server.dataDir;
# "/var/lib/taskchampion-sync-server";
options = {
mountpoint = "legacy";
compression = "lz4";
"com.sun:auto-snapshot:hourly" = toString true;
"com.sun:auto-snapshot:daily" = toString true;
#"com.sun:auto-snapshot:weekly" = toString true;
#"com.sun:auto-snapshot:monthly" = toString true;
};
};
"vikunja" = { "vikunja" = {
type = "zfs_fs"; type = "zfs_fs";
mountpoint = "/var/lib/nixos-containers/vikunja"; mountpoint = "/var/lib/nixos-containers/vikunja";

View file

@ -2,26 +2,17 @@
config, config,
lib, lib,
pkgs, pkgs,
zerotierInterface,
... ...
}: }:
{ {
# todo: backup taskserver via zfs syncoid networking.firewall.interfaces.wg0.allowedTCPPorts = [ config.services.taskchampion-sync-server.port ];
services.taskserver = { networking.firewall.interfaces.wg0.allowedUDPPorts = [ config.services.taskchampion-sync-server.port ];
services.taskchampion-sync-server = {
enable = true; enable = true;
fqdn = "taskd.ingolf-wagner.de"; openFirewall = false;
listenHost = "0.0.0.0";
requestLimit = 104857600;
trust = "strict";
dataDir = "/var/lib/taskserver";
organisations."1337".users = [
"palo"
"beta"
];
ciphers = "SECURE256";
}; };
networking.firewall.allowedTCPPorts = [ config.services.taskserver.listenPort ];
networking.firewall.allowedUDPPorts = [ config.services.taskserver.listenPort ];
} }