|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
description = "MariaDB flake usage example"; |
|
|
|
|
|
|
|
|
|
|
|
inputs = { |
|
|
|
|
|
nixpkgs.url = "nixpkgs/nixos-25.11"; |
|
|
|
|
|
sops-nix = { |
|
|
|
|
|
url = "github:Mic92/sops-nix"; |
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs"; |
|
|
|
|
|
}; |
|
|
|
|
|
mariadb-server = { |
|
|
|
|
|
url = "./services/mariadb/"; |
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs"; |
|
|
|
|
|
}; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
outputs = { |
|
|
|
|
|
self, nixpkgs, sops-nix, mariadb-server, ... |
|
|
|
|
|
}: { |
|
|
|
|
|
# Re-export individual modules |
|
|
|
|
|
nixosModules = { |
|
|
|
|
|
mariadb = mariadb-server.nixosModules.mariadb; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
# Convenience module: imports all service modules + sets default config |
|
|
|
|
|
nixosModules.ogc = {config, lib, ...}: |
|
|
|
|
|
let |
|
|
|
|
|
cfg = config.ogc; |
|
|
|
|
|
in { |
|
|
|
|
|
imports = [ |
|
|
|
|
|
mariadb-server.nixosModules.mariadb |
|
|
|
|
|
sops-nix.nixosModules.sops |
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
options.ogc = { |
|
|
|
|
|
organization = lib.mkOption { |
|
|
|
|
|
type = lib.types.str; |
|
|
|
|
|
}; |
|
|
|
|
|
extension = lib.mkOption { |
|
|
|
|
|
type = lib.types.str; |
|
|
|
|
|
}; |
|
|
|
|
|
domain = lib.mkOption { |
|
|
|
|
|
type = lib.types.str; |
|
|
|
|
|
}; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
config = { |
|
|
|
|
|
sops = { |
|
|
|
|
|
defaultSopsFile = ./secrets/ogc.yaml; |
|
|
|
|
|
# This will automatically import SSH keys as age keys |
|
|
|
|
|
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; |
|
|
|
|
|
# This is using an age key that is expected to already be in the filesystem |
|
|
|
|
|
age.keyFile = "~/.config/sops/age/keys.txt"; |
|
|
|
|
|
# This will generate a new key if the key specified above does not exist |
|
|
|
|
|
age.generateKey = true; |
|
|
|
|
|
secrets."mariadb/root" = {}; |
|
|
|
|
|
secrets."mariadb/nextcloud" = {}; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
# MariaDB |
|
|
|
|
|
mariadb = { |
|
|
|
|
|
enable = lib.mkDefault true; |
|
|
|
|
|
rootPasswordFile = lib.mkDefault "/run/secrets/mariadb/root"; |
|
|
|
|
|
nextcloudPasswordFile = lib.mkDefault "/run/secrets/mariadb/nextcloud"; |
|
|
|
|
|
}; |
|
|
|
|
|
}; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
nixosModules.default = self.nixosModules.ogc; |
|
|
|
|
|
}; |
|
|
|
|
|
} |