2022-12-07 02:38:16 +03:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
let
|
|
|
|
joplin-data = "/srv/joplin/data";
|
|
|
|
joplin-uid = "1001";
|
|
|
|
backend = config.virtualisation.oci-containers.backend;
|
|
|
|
in {
|
2022-10-09 00:39:52 +03:00
|
|
|
secrets.joplin-env = { };
|
|
|
|
secrets.joplin-db-env = { };
|
|
|
|
|
2022-10-08 04:45:07 +03:00
|
|
|
virtualisation.oci-containers.containers = {
|
|
|
|
joplin = {
|
|
|
|
autoStart = true;
|
|
|
|
dependsOn = [ "joplin-db" ];
|
2022-10-09 00:39:52 +03:00
|
|
|
environmentFiles = [ config.secrets.joplin-env.decrypted ];
|
2022-10-08 04:45:07 +03:00
|
|
|
extraOptions = [
|
|
|
|
"--network=joplin"
|
|
|
|
];
|
|
|
|
ports = [ "127.0.0.1:22300:22300" ];
|
2022-12-07 02:38:16 +03:00
|
|
|
image = "ataraxiadev/joplin-server:2.8.8";
|
|
|
|
volumes = [ "${joplin-data}:/home/joplin/data" ];
|
2022-10-08 04:45:07 +03:00
|
|
|
};
|
|
|
|
joplin-db = {
|
|
|
|
autoStart = true;
|
2022-10-09 00:39:52 +03:00
|
|
|
environmentFiles = [ config.secrets.joplin-db-env.decrypted ];
|
2022-10-08 04:45:07 +03:00
|
|
|
extraOptions = [
|
|
|
|
"--network=joplin"
|
|
|
|
];
|
|
|
|
image = "postgres:13";
|
2022-10-09 00:39:52 +03:00
|
|
|
volumes = [ "/srv/joplin/postgres:/var/lib/postgresql/data" ];
|
2022-10-08 04:45:07 +03:00
|
|
|
};
|
|
|
|
};
|
2022-12-07 02:38:16 +03:00
|
|
|
systemd.services.create-joplin-network = {
|
2022-10-08 04:45:07 +03:00
|
|
|
serviceConfig.Type = "oneshot";
|
|
|
|
wantedBy = [
|
|
|
|
"${backend}-joplin.service"
|
|
|
|
"${backend}-joplin-db.service"
|
|
|
|
];
|
|
|
|
script = ''
|
|
|
|
${pkgs.docker}/bin/docker network inspect joplin || \
|
|
|
|
${pkgs.docker}/bin/docker network create -d bridge joplin
|
|
|
|
exit 0
|
|
|
|
'';
|
|
|
|
};
|
2022-12-07 02:38:16 +03:00
|
|
|
systemd.services.create-joplin-folder = {
|
|
|
|
serviceConfig.Type = "oneshot";
|
|
|
|
wantedBy = [ "${backend}-joplin.service" ];
|
|
|
|
script = ''
|
|
|
|
[ ! -d "${joplin-data}" ] && mkdir -p ${joplin-data} && chown ${joplin-uid} ${joplin-data}
|
|
|
|
'';
|
|
|
|
};
|
2022-10-08 04:45:07 +03:00
|
|
|
}
|