50 lines
1.4 KiB
Nix
Executable file
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;
|
|
settings = {
|
|
metadata_dir = "/garage/metadata";
|
|
data_dir = "/garage/data";
|
|
db_engine = "lmdb";
|
|
replication_mode = "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@[2a04:52c0:135:48d1::2]:3901" # buer
|
|
"5504cb25910dcef4a4312006691d651c099cde7c3a88df9ca79aa350571e6e65@[2601:5c2:8400:26c0:4ecc:6aff:fef7:98ca]:3901" #valefar
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|