1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/systems/makanek/oracle/default.nix

96 lines
2.2 KiB
Nix
Raw Normal View History

2022-03-10 21:52:12 +01:00
{
config,
pkgs,
lib,
...
2025-12-19 15:05:29 +01:00
}:
let
tarotPort = 7407;
2025-12-20 11:45:58 +01:00
ichingPort = 1819;
tarotFiles = pkgs.fetchzip {
url = "https://c.krebsco.de/tarot.zip";
sha256 = "0jl5vdwlj17pqp94yj02xgsb1gyvs9i08m83kac0jdnhfjl2f75a";
stripRoot = false;
};
tarotKey = builtins.fetchurl {
url = "http://c.krebsco.de/tarot.pdf";
2021-12-16 00:19:28 +01:00
sha256 = "1n2m53kjg2vj9dbr70b9jrsbqwdfrcb48l4wswn21549fi24g6dx";
};
2025-12-19 15:05:29 +01:00
in
{
systemd.services.tarot = {
enable = true;
serviceConfig.Type = "simple";
wantedBy = [ "multi-user.target" ];
2025-12-20 11:31:12 +01:00
environment = {
TAROT_FILES = tarotFiles;
TAROT_PORT = toString tarotPort;
};
2025-12-19 15:05:29 +01:00
serviceConfig.ExecStart = pkgs.writers.writePython3 "tarot-server" {
2025-12-20 11:31:12 +01:00
libraries = py: [
py.pillow
py.flask
];
} ./tarot.py;
};
2025-12-20 11:45:58 +01:00
systemd.services.iching = {
enable = true;
serviceConfig.Type = "simple";
wantedBy = [ "multi-user.target" ];
environment = {
ICHING_PORT = toString ichingPort;
};
serviceConfig.ExecStart = pkgs.writers.writePython3 "iching-server" {
libraries = py: [
py.flask
];
} ./iching.py;
};
2022-05-22 11:47:59 +02:00
niveum.passport.services = [
rec {
link = "https://tarot.kmein.de";
title = "Tarot";
description = "draws Tarot cards for you. See <a href=\"${link}/files/key.pdf\">here</a> for information on how to interpret them.";
}
2025-12-20 11:45:58 +01:00
{
link = "https://iching.kmein.de";
title = "I Ching";
description = "draws I Ching hexagrams for you.";
}
2022-05-22 11:47:59 +02:00
];
2025-12-20 11:45:58 +01:00
services.nginx.virtualHosts."iching.kmein.de" = {
enableACME = true;
forceSSL = true;
locations = {
"/".proxyPass = "http://127.0.0.1:${toString ichingPort}/";
};
};
2021-12-15 12:37:41 +01:00
services.nginx.virtualHosts."tarot.kmein.de" = {
enableACME = true;
forceSSL = true;
locations = {
2025-12-19 15:05:29 +01:00
"/".proxyPass = "http://127.0.0.1:${toString tarotPort}/";
"/files/" = {
root = pkgs.linkFarm "tarot" [
2022-03-10 21:52:12 +01:00
{
name = "files/key.pdf";
path = tarotKey;
}
{
name = "files/cards";
path = tarotFiles;
}
];
extraConfig = ''
autoindex on;
charset UTF-8;
'';
};
};
};
}