Compare commits

...

20 commits

Author SHA1 Message Date
Nick
f642608281 feat: added hledger and restructured some home stuff 2025-01-22 02:13:08 -06:00
Nick
4db6929078 feat: hledger test 2025-01-22 00:57:41 -06:00
Nick
77f1db64d2 feat: hledger test 2025-01-22 00:54:45 -06:00
Nick
d145245648 feat: hledger test 2025-01-22 00:19:22 -06:00
Nick
6a093dfcc6 feat: hledger test 2025-01-22 00:16:36 -06:00
Nick
368e46628a feat: hledger test 2025-01-22 00:12:34 -06:00
Nick
176ab511aa feat: hledger test 2025-01-21 23:41:45 -06:00
Nick
957ba844bd feat: hledger test 2025-01-21 23:41:19 -06:00
Nick
fed916f55a feat: hledger test 2025-01-21 23:29:56 -06:00
Nick
2c74e855d1 feat: hledger test 2025-01-21 23:22:49 -06:00
Nick
e27fe1da36 feat: hledger test 2025-01-21 23:17:21 -06:00
Nick
efbbeaa942 feat: hledger test 2025-01-21 23:00:38 -06:00
Nick
b7f7f50622 feat: hledger test 2025-01-21 22:58:21 -06:00
Nick
694b6da25c feat: hledger test 2025-01-21 22:57:20 -06:00
Nick
b6e41d866a feat: hledger test 2025-01-21 22:52:36 -06:00
Nick
1da13e96b6 feat: hledger test 2025-01-21 22:05:10 -06:00
Nick
8d661c10aa feat: hledger test 2025-01-21 22:04:19 -06:00
Nick
60f7118212 feat: hledger test 2025-01-21 22:03:48 -06:00
Nick
3db03776cc feat: hledger test 2025-01-21 22:01:38 -06:00
Nick
c82dd5e36f feat: hledger test 2025-01-21 21:58:09 -06:00
18 changed files with 130 additions and 16 deletions

View file

@ -0,0 +1,18 @@
{ instancesFunctions }:
let
inherit (instancesFunctions)
dummy
;
hledgerLabel = "Hledger";
hledgerName = "hledger";
in
{
label = hledgerLabel;
name = hledgerName;
paths = {
path0 = "/mnt/media/storage/${hledgerLabel}";
};
ports = {
port0 = 5000;
};
}

View file

@ -0,0 +1,11 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
ani-cli
;
};
}

View file

@ -0,0 +1,10 @@
let
content = builtins.readDir ./.;
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
importList = map (name: ./. + "/${name}") dirContent;
in
{
imports = importList;
}

View file

@ -64,6 +64,16 @@ in
];
keyword = instances.forgejo.label;
}
{
name = instances.hledger.label;
url = "http://localhost.${builtins.toString instances.hledger.ports.port0}";
tags = [
instances.hledger.name
"hledger"
"finances"
];
keyword = instances.hledger.label;
}
{
name = "${instances.jellyfin.label} (Internet)";
url = "https://${instances.jellyfin.name}.${instances.web.domains.url0}";
@ -78,7 +88,7 @@ in
}
{
name = instances.mastodon.label;
url = "https://${instances.web.domains.url1}";
url = "https://${instances.mastodon.subdomain}.${instances.web.domains.url3}";
tags = [
instances.mastodon.name
"mast"
@ -143,7 +153,7 @@ in
}
{
name = instances.peertube.label;
url = "https://${instances.peertube.subdomain}.${instances.web.domains.url1}";
url = "https://${instances.peertube.subdomain}.${instances.web.domains.url3}";
tags = [
instances.peertube.name
"peer"

View file

@ -20,6 +20,7 @@ let
kdenlive = "(org.kde.kdenlive)";
shotcut = "(shotcut)";
scrcpy = "(.scrcpy-wrapped)";
battle = "(.*Battle.net.*)";
maxsizeWindows = [
"maxsize 720 400, class:^${blueman}$"
@ -34,6 +35,8 @@ let
"maxsize 720 400, title:^${picture}$"
"maxsize 720 400, title:^${save}$"
"maxsize 720 400, title:^${discord-popout}$"
"maxsize 1280 720, title:^${battle}$"
"minsize 1280 720, title:^${battle}$"
];
floatWindows = builtins.map (x: "float, " + x) [
@ -50,6 +53,7 @@ let
"title:^(${discord-popout})$"
"title:^${bitwarden}$"
"title:^${save}$"
"title:^${battle}$"
];
pinWindows = builtins.map (x: "pin, " + x) [

View file

@ -60,6 +60,7 @@ in
inherit (modules)
syncthing
ollama
hledger
# plasma
# sddm
;

View file

@ -5,7 +5,7 @@
}:
{
environment = {
# enableAllTerminfo = true;
enableAllTerminfo = true;
systemPackages = builtins.attrValues {
inherit (pkgs)
git

72
nixos/modules/hledger.nix Executable file
View file

@ -0,0 +1,72 @@
{
flake,
pkgs,
...
}:
let
inherit (flake.config.machines.devices)
server
;
inherit (flake.config.services.instances)
hledger
web
;
service = hledger;
localhost = web.localhost.address0;
in
{
services = {
hledger-web = {
enable = true;
host = localhost;
# baseUrl = "https://${host}";
stateDir = service.paths.path0;
port = service.ports.port0;
journalFiles = [
".hledger.journal"
];
allow = "edit";
};
};
environment = {
systemPackages = builtins.attrValues {
inherit (pkgs)
hledger
hledger-ui
;
};
};
users = {
users.${service.name} = {
isSystemUser = true;
group = service.name;
home = service.paths.path0;
};
groups.${service.name} = { };
};
fileSystems."/var/lib/${service.name}" = {
device = service.paths.path0;
fsType = "none";
options = [
"bind"
];
depends = [
server.storage0.mount
];
};
systemd.tmpfiles.rules = [
"Z ${service.paths.path0} 0755 ${service.name} ${service.name} -"
];
networking = {
firewall = {
allowedTCPPorts = [
service.ports.port0
];
};
};
}

View file

@ -38,7 +38,6 @@ in
value = dnsConfig;
})
[
"nextcloud"
"jellyfin"
"minecraft"
"ollama"
@ -46,17 +45,6 @@ in
"vaultwarden"
]
)
++ (map
(service: {
name = "${instanceName service}.${domain1}";
value = dnsConfig;
})
[
"nextcloud"
"matrix"
"owncast"
]
)
++ (map
(service: {
name = "${instanceName service}.${domain3}";

View file

@ -5,7 +5,7 @@ let
;
moduleImports = map (module: self.homeModules.${module}) [
"cli"
"server"
];
in
{