Add Wekan
This commit is contained in:
parent
fbca9cf7e0
commit
700b505de4
2 changed files with 96 additions and 0 deletions
|
|
@ -7,5 +7,6 @@
|
||||||
./freeradius.nix
|
./freeradius.nix
|
||||||
./labsync
|
./labsync
|
||||||
./unifi-controller.nix
|
./unifi-controller.nix
|
||||||
|
./wekan.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
95
machines/raven/services/wekan.nix
Normal file
95
machines/raven/services/wekan.nix
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
databaseName = "wekandb";
|
||||||
|
port = 8001;
|
||||||
|
domain = "wekan.fablab-nea.de";
|
||||||
|
url = "https://${domain}";
|
||||||
|
|
||||||
|
directories = {
|
||||||
|
db = "/var/lib/wekan/db";
|
||||||
|
dbDump = "/var/lib/wekan/db-dump";
|
||||||
|
data = "/var/lib/wekan/data";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers = {
|
||||||
|
backend = "podman";
|
||||||
|
containers = {
|
||||||
|
wekan = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/wekan/wekan:latest";
|
||||||
|
environment = {
|
||||||
|
WRITABLE_PATH = "/data";
|
||||||
|
MONGO_URL = "mongodb://${databaseName}:27017/wekan";
|
||||||
|
ROOT_URL = url;
|
||||||
|
#WITH_API = "true";
|
||||||
|
RICHER_CARD_COMMENT_EDITOR = "false";
|
||||||
|
CARD_OPENED_WEBHOOK_ENABLED = "false";
|
||||||
|
BIGEVENTS_PATTERN = "NONE";
|
||||||
|
BROWSER_POLICY_ENABLED = "true";
|
||||||
|
};
|
||||||
|
ports = [
|
||||||
|
"127.0.0.1:${toString port}:8080"
|
||||||
|
];
|
||||||
|
dependsOn = [ databaseName ];
|
||||||
|
volumes = [
|
||||||
|
"/etc/localtime:/etc/localtime:ro"
|
||||||
|
"${directories.data}:/data:rw"
|
||||||
|
];
|
||||||
|
extraOptions = [ "--network=wekan-tier" ];
|
||||||
|
};
|
||||||
|
"${databaseName}" = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "mongo:6";
|
||||||
|
cmd = [ "mongod" "--logpath" "/dev/null" "--oplogSize" "128" "--quiet" ];
|
||||||
|
volumes = [
|
||||||
|
"/etc/localtime:/etc/localtime:ro"
|
||||||
|
#"/etc/timezone:/etc/timezone:ro"
|
||||||
|
"${directories.db}:/data/db"
|
||||||
|
"${directories.dbDump}:/dump"
|
||||||
|
];
|
||||||
|
extraOptions = [ "--network=wekan-tier" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Create the wekan-tier netowrk
|
||||||
|
systemd.services.init-filerun-network-and-files = {
|
||||||
|
description = "Create the network bridge wekan-tier for WeKan.";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
script =
|
||||||
|
let podmancli = "${pkgs.podman}/bin/podman";
|
||||||
|
in ''
|
||||||
|
check=$(${podmancli} network ls | grep "wekan-tier" || true)
|
||||||
|
if [ -z "$check" ]; then
|
||||||
|
${podmancli} network create wekan-tier
|
||||||
|
else
|
||||||
|
echo "wekan-tier already exists"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
system.activationScripts.makeWekanDirectories = lib.stringAfter [ "var" ] ''
|
||||||
|
mkdir -p "${directories.db}"
|
||||||
|
mkdir -p "${directories.dbDump}"
|
||||||
|
mkdir -p "${directories.data}"
|
||||||
|
chown 999:999 "${directories.data}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.nginx.virtualHosts."${domain}" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
extraConfig = ''
|
||||||
|
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
|
add_header X-Content-Type-Options "nosniff";
|
||||||
|
'';
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${toString port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue