Compare commits

...

2 commits

Author SHA1 Message Date
6928d137b3
Syncthing, init syncthing + Juri config 2025-08-04 18:19:58 -07:00
bdb1ba2249
Juri, add an account for May 2025-07-16 10:12:24 -07:00
3 changed files with 88 additions and 2 deletions

View file

@ -3,8 +3,7 @@ let
email = "admin@woach.me";
in {
imports = [
./hardware.nix
];
./hardware.nix ];
system.stateVersion = "24.11";
system.timezone = "America/Los_Angeles";
system.users.bigWheels = [ "pan" ];
@ -66,6 +65,21 @@ in {
server.domain = "ginko.woach.me";
};
syncthing = {
enable = true;
devices = {
"homura".id = "NEP24DB-DVXAHTZ-TCCNREQ-Q5TSC7K-ZXPWC4L-5ELGKQX-4I2P47O-2FT5QAU";
};
folders = {
"wiki" = {
path = "/var/lib/wiki";
devices = [ "homura" ];
};
};
};
systemd.tmpfiles.rules = [ "d /var/lib/wiki 0755 syncthing syncthing -" ];
postgres.enable = true;
shell.enabledShells = [ "fish" ];

View file

@ -0,0 +1,10 @@
{ config, pkgs, ... }:
{
fish.enable = true;
git = {
enable = true;
username = "Badtz";
email = "may@badtz.dev";
};
}

View file

@ -0,0 +1,62 @@
{ config, lib, ... }:
{
options.syncthing = {
enable = lib.mkEnableOption "Enables Syncthing service";
devices = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule {
options = {
id = lib.mkOption {
type = lib.types.str;
description = "Device ID";
};
addresses = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ "dynamic" ];
description = "List of device addresses";
};
};
});
default = {};
description = "Syncthing devices";
};
folders = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule {
options = {
path = lib.mkOption {
type = lib.types.path;
description = "Path to folder";
};
devices = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "List of device names to share with";
};
};
});
default = {};
description = "Syncthing folders";
};
};
config = lib.mkIf config.syncthing.enable {
services.syncthing = {
enable = true;
openDefaultPorts = true;
settings = {
devices = lib.mapAttrs (name: device: {
id = device.id;
addresses = device.addresses;
}) config.syncthing.devices;
folders = lib.mapAttrs (name: folder: {
path = folder.path;
devices = folder.devices;
}) config.syncthing.folders;
};
};
};
}