59 lines
1.4 KiB
Nix
59 lines
1.4 KiB
Nix
{ config, lib, ... }:
|
|
let
|
|
port = lib.custom.autoport "grimmory";
|
|
in
|
|
{
|
|
|
|
sops.secrets = {
|
|
"mariadb/users/grimmory" = {};
|
|
};
|
|
|
|
sops.templates."grimmory-secrets".content = ''
|
|
DATABASE_PASSWORD=${config.sops.placeholder."mariadb/users/grimmory"}
|
|
'';
|
|
|
|
services.mysql = {
|
|
ensureDatabases = [
|
|
"grimmory"
|
|
];
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d /var/lib/grimmory 774 1000 1000"
|
|
"d /var/lib/grimmory/data 774 1000 1000"
|
|
"d /var/lib/grimmory/books 774 1000 1000"
|
|
"d /var/lib/grimmory/bookdrop 774 1000 1000"
|
|
];
|
|
|
|
services.caddy.virtualHosts."library.wanderingcrow.net".extraConfig = ''
|
|
reverse_proxy http://localhost:${builtins.toString port}
|
|
'';
|
|
|
|
virtualisation.quadlet = {
|
|
containers = {
|
|
grimmory.containerConfig = {
|
|
image = "grimmory/grimmory:latest";
|
|
publishPorts = [
|
|
"${builtins.toString port}:6060"
|
|
];
|
|
environments = {
|
|
TZ="Etc/UTC";
|
|
APP_USER_ID="1000";
|
|
APP_GROUP_ID="1000";
|
|
BOOKLORE_PORT="6060";
|
|
|
|
DATABASE_URL="jdbc:mariadb://host.containers.internal:3306/grimmory";
|
|
DATABASE_USERNAME="grimmory";
|
|
};
|
|
environmentFiles = [
|
|
config.sops.templates."grimmory-secrets".path
|
|
];
|
|
volumes = [
|
|
"/var/lib/grimmory/data:/app/data"
|
|
"/var/lib/grimmory/books:/books"
|
|
"/var/lib/grimmory/bookdrop:/bookdrop"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|