Added more services
This commit is contained in:
@@ -108,6 +108,16 @@ in {
|
||||
handle @homeassistant {
|
||||
reverse_proxy homeassistant:8123
|
||||
}
|
||||
|
||||
@karakeep host karakeep.local.tbmrs.nl
|
||||
handle @karakeep {
|
||||
reverse_proxy karakeep:3000
|
||||
}
|
||||
|
||||
@vikunja host vikunja.local.tbmrs.nl
|
||||
handle @vikunja {
|
||||
reverse_proxy vikunja:3456
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
@@ -37,40 +37,19 @@ in {
|
||||
description = "server from Timo";
|
||||
theme = "dark";
|
||||
color = "slate";
|
||||
layout = {
|
||||
Services = {
|
||||
style = "row";
|
||||
columns = "4";
|
||||
};
|
||||
Infra = {
|
||||
style = "row";
|
||||
columns = "4";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file."containers/homepage/config/services.yaml".source = (pkgs.formats.yaml { }).generate "services" [
|
||||
{
|
||||
"Infra" = [
|
||||
{
|
||||
"Kanidm" = {
|
||||
href = "https://auth.tbmrs.nl";
|
||||
description = "Oauth2 and ldap provider";
|
||||
icon = "kanidm";
|
||||
server = "podman";
|
||||
container = "kanidm";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Uptime Kuma" = {
|
||||
href = "https://uptime.tbmrs.nl";
|
||||
description = "Uptime and status";
|
||||
icon = "uptime-kuma";
|
||||
server = "podman";
|
||||
container = "uptime-kuma";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Beszel" = {
|
||||
href = "https://monitor.local.tbmrs.nl";
|
||||
description = "Server monitoring";
|
||||
icon = "beszel";
|
||||
server = "podman";
|
||||
container = "beszel";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Services" = [
|
||||
{
|
||||
@@ -118,6 +97,73 @@ in {
|
||||
container = "paperless-ngx";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Home Assistant" = {
|
||||
href = "https://home-assistant.local.tbmrs.nl";
|
||||
description = "Home automation";
|
||||
icon = "home-assistant";
|
||||
server = "podman";
|
||||
container = "homeassistant";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Syncthing" = {
|
||||
href = "https://syncthing.local.tbmrs.nl";
|
||||
description = "File syncronisation";
|
||||
icon = "syncthing";
|
||||
server = "podman";
|
||||
container = "syncthing";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Dufs" = {
|
||||
href = "https://files.tbmrs.nl";
|
||||
description = "File management";
|
||||
icon = "dufs";
|
||||
server = "podman";
|
||||
container = "dufs";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Karakeep" = {
|
||||
href = "https://karakeep.local.tbmrs.nl";
|
||||
description = "Data hoarder";
|
||||
icon = "karakeep";
|
||||
server = "podman";
|
||||
container = "karakeep";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"Infra" = [
|
||||
{
|
||||
"Kanidm" = {
|
||||
href = "https://auth.tbmrs.nl";
|
||||
description = "Oauth2 and ldap provider";
|
||||
icon = "kanidm";
|
||||
server = "podman";
|
||||
container = "kanidm";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Uptime Kuma" = {
|
||||
href = "https://uptime.tbmrs.nl";
|
||||
description = "Uptime and status";
|
||||
icon = "uptime-kuma";
|
||||
server = "podman";
|
||||
container = "uptime-kuma";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Beszel" = {
|
||||
href = "https://monitor.local.tbmrs.nl";
|
||||
description = "Server monitoring";
|
||||
icon = "beszel";
|
||||
server = "podman";
|
||||
container = "beszel";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
82
modules/home/containers/karakeep.nix
Normal file
82
modules/home/containers/karakeep.nix
Normal file
@@ -0,0 +1,82 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.containers.karakeep;
|
||||
in {
|
||||
options = {
|
||||
settings.containers.karakeep.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable karakeep container
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.podman.containers.karakeep = {
|
||||
image = "ghcr.io/karakeep-app/karakeep:release";
|
||||
network = "proxy";
|
||||
volumes = [
|
||||
"%h/containers/karakeep/data:/data"
|
||||
];
|
||||
environment = {
|
||||
MEILI_ADDR = "http://karakeep-meilisearch:7700";
|
||||
BROWSER_WEB_URL = "http://karakeep-chrome:9222";
|
||||
DATA_DIR = "/data";
|
||||
};
|
||||
environmentFile = [
|
||||
"${config.sops.templates."container-karakeep.env".path}"
|
||||
];
|
||||
extraConfig = {
|
||||
Unit = {
|
||||
After = [
|
||||
"podman-karakeep-chrome.service"
|
||||
"podman-karakeep-meilisearch.service"
|
||||
];
|
||||
Requires = [
|
||||
"podman-karakeep-chrome.service"
|
||||
"podman-karakeep-meilisearch.service"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.podman.containers.karakeep-chrome = {
|
||||
image = "gcr.io/zenika-hub/alpine-chrome:123";
|
||||
network = "proxy";
|
||||
exec = "--no-sandbox --disable-gpu --disable-dev-shm-usage --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --hide-scrollbars";
|
||||
};
|
||||
|
||||
services.podman.containers.karakeep-meilisearch = {
|
||||
image = "getmeili/meilisearch:v1.13.3";
|
||||
network = "proxy";
|
||||
environment = {
|
||||
MEILI_NO_ANALYTICS = "true";
|
||||
};
|
||||
volumes = [
|
||||
"%h/containers/karakeep/meilisearch:/meili_data"
|
||||
];
|
||||
};
|
||||
|
||||
settings.services.sops.enable = true;
|
||||
|
||||
sops.secrets = {
|
||||
"containers/karakeep/nextauth-secret" = { };
|
||||
"containers/karakeep/meili-key" = { };
|
||||
};
|
||||
|
||||
sops.templates = {
|
||||
"container-karakeep.env" = {
|
||||
content = ''
|
||||
KARAKEEP_VERSION=release
|
||||
NEXTAUTH_SECRET=${config.sops.placeholder."containers/karakeep/nextauth-secret"}
|
||||
MEILI_MASTER_KEY=${config.sops.placeholder."containers/karakeep/meili-key"}
|
||||
NEXTAUTH_URL=https://karakeep.local.tbmrs.nl
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
29
modules/home/containers/vikunja.nix
Normal file
29
modules/home/containers/vikunja.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.containers.vikunja;
|
||||
in {
|
||||
options = {
|
||||
settings.containers.vikunja.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable vikunja container
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.podman.containers.vikunja = {
|
||||
image = "vikunja/vikunja";
|
||||
network = "proxy";
|
||||
userNS = "keep-id";
|
||||
volumes = [
|
||||
"%h/containers/vikunja/files:/app/vikunja/files"
|
||||
"%h/containers/vikunja/db:/db"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@@ -40,5 +40,7 @@
|
||||
./containers/beszel.nix
|
||||
./containers/storage.nix
|
||||
./containers/homeassistant.nix
|
||||
./containers/karakeep.nix
|
||||
./containers/vikunja.nix
|
||||
];
|
||||
}
|
||||
|
Reference in New Issue
Block a user