57 lines
1.7 KiB
Nix
57 lines
1.7 KiB
Nix
{ config, ... }:
|
|
let
|
|
inherit (import ./lib.nix config) mkContainer mkMariaDbContainer havenisms;
|
|
in
|
|
{
|
|
imports = [
|
|
(mkMariaDbContainer {
|
|
name = "bookstack";
|
|
uid = config.users.users.bookstack.uid;
|
|
gid = config.users.groups.bookstack.gid;
|
|
directory = "/tank/bookstack/db";
|
|
passwordSecret = "bookstack_db";
|
|
})
|
|
];
|
|
|
|
sops.secrets = {
|
|
bookstack_app_key = {
|
|
restartUnits = [ "${config.local.container-backend}-bookstack.service" ];
|
|
mode = "0400";
|
|
owner = config.users.users.bookstack.name;
|
|
};
|
|
bookstack_db = {
|
|
restartUnits = [ "${config.local.container-backend}-bookstack-mariadb.service" ];
|
|
mode = "0400";
|
|
owner = config.users.users.bookstack.name;
|
|
};
|
|
};
|
|
|
|
virtualisation.oci-containers.containers.bookstack = mkContainer {
|
|
image = "lscr.io/linuxserver/bookstack:latest";
|
|
hostName = "bookstack";
|
|
port = "80";
|
|
dependsOn = [ "bookstack-mariadb" ];
|
|
homepageOpts = {
|
|
group = "Apps";
|
|
name = "Bookstack";
|
|
icon = "bookstack.svg";
|
|
description = "Wiki and Knowledgebase";
|
|
};
|
|
volumes = [
|
|
"/tank/bookstack/app:/config"
|
|
"${config.sops.secrets.bookstack_app_key.path}:/run/secrets/bookstack_app_key"
|
|
"${config.sops.secrets.bookstack_db.path}:/run/secrets/bookstack_db"
|
|
];
|
|
environment = {
|
|
APP_URL = "https://bookstack.${havenisms}";
|
|
PID = toString config.users.users.bookstack.uid;
|
|
GID = toString config.users.groups.bookstack.gid;
|
|
DB_HOST = "bookstack-mariadb";
|
|
DB_USERNAME = "bookstack";
|
|
DB_DATABASE = "bookstack";
|
|
FILE__DB_PASSWORD = "/run/secrets/bookstack_db";
|
|
FILE__APP_KEY = "/run/secrets/bookstack_app_key";
|
|
};
|
|
};
|
|
}
|