nixcfg/modules/garage/default.nix

50 lines
1.4 KiB
Nix
Executable file

{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.modules.garage;
in
{
options = {
modules = {
garage = {
enable = mkEnableOption "Deploy garage";
};
};
};
config = mkIf cfg.enable {
services.garage = {
enable = true;
package = pkgs.garage_2;
settings = {
metadata_dir = "/garage/metadata";
data_dir = "/garage/data";
db_engine = "lmdb";
replication_factor = 2;
rpc_bind_addr = "[::]:3901";
rpc_public_addr = "${config.networking.hostName}:3901";
rpc_secret_file = config.age.secrets."garage-rpc-secret".path;
s3_api = {
s3_region = config.networking.hostName;
api_bind_addr = "[::]:3900";
root_domain = ".s3.nekomimi.pet";
};
s3_web = {
bind_addr = "[::]:3902";
root_domain = ".web.nekomimi.pet";
index = "index.html";
};
admin = {
api_bind_addr = "[::]:3903";
admin_token_file = config.age.secrets."garage-admin-token".path;
metrics_token_file = config.age.secrets."garage-metrics-token".path;
};
bootstrap_peers = [
"d548d0c9ae9aec9e26fe0bd2ca3efe75f654fa350bad5cb02bc9aebc9850ba8f@[buer]:3901"
"5504cb25910dcef4a4312006691d651c099cde7c3a88df9ca79aa350571e6e65@[valefar]:3901"
];
};
};
};
}