Add grimmory as new library provider

This commit is contained in:
TheWanderingCrow 2026-03-31 15:54:55 -04:00
parent 5c6f1c622d
commit 6b297f49d6
5 changed files with 67 additions and 42 deletions

View file

@ -0,0 +1,59 @@
{ 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"
];
};
};
};
}

View file

@ -1,37 +0,0 @@
{ lib, ... }:
let
port = lib.custom.autoport "kavita";
in
{
systemd.tmpfiles.rules = [
"d /var/lib/kavita"
"d /var/lib/kavita/config"
"d /var/lib/kavita/manga"
"d /var/lib/kavita/comics"
"d /var/lib/kavita/books"
];
services.caddy.virtualHosts."library.wanderingcrow.net".extraConfig = ''
reverse_proxy http://localhost:${builtins.toString port}
'';
virtualisation.quadlet = {
containers = {
kavita.containerConfig = {
image = "ghcr.io/kareadita/kavita:latest";
publishPorts = [
"${builtins.toString port}:5000"
];
environments = {
TZ="America/New_York";
};
volumes = [
"/var/lib/kavita/config:/kavita/config"
"/var/lib/kavita/manga:/manga"
"/var/lib/kavita/comics:/comics"
"/var/lib/kavita/books:/books"
];
};
};
};
}