48 lines
1.1 KiB
Nix
48 lines
1.1 KiB
Nix
{ pkgs, config, lib, ... }:
|
|
with builtins;
|
|
let
|
|
masters = {
|
|
c1 = "192.168.1.71:9333";
|
|
c2 = "192.168.1.72:9333";
|
|
c3 = "192.168.1.73:9333";
|
|
};
|
|
master_enabled = masters ? ${config.networking.hostName};
|
|
in
|
|
{
|
|
imports = [ ./seaweedfs_lib.nix ];
|
|
|
|
services.seaweedfs.master = {
|
|
enable = master_enabled;
|
|
peers = attrValues masters;
|
|
extraConfig.ip = head (split ":" masters.${config.networking.hostName});
|
|
};
|
|
services.seaweedfs.filer = {
|
|
enable = true;
|
|
master = attrValues masters;
|
|
};
|
|
services.seaweedfs.volumes = {
|
|
default = {
|
|
enable = true;
|
|
mserver = attrValues masters;
|
|
dir = [ "/persist/weed/volume-default" ];
|
|
};
|
|
};
|
|
|
|
users.users.seaweedfs.group = "seaweedfs";
|
|
users.groups.seaweedfs = {};
|
|
|
|
environment.persistence."/persist".directories = [
|
|
"/var/lib/seaweedfs"
|
|
];
|
|
|
|
networking.firewall.allowedTCPPorts = [
|
|
config.services.seaweedfs.volumes.default.port
|
|
19333
|
|
config.services.seaweedfs.filer.port
|
|
18888
|
|
] ++ (if master_enabled then [
|
|
config.services.seaweedfs.master.port
|
|
19333
|
|
] else [ ]);
|
|
}
|