scrape: add and serve riesa-efau-kalender

This commit is contained in:
Astro 2021-07-17 23:17:05 +02:00
parent 1537bc146b
commit e01f9ce5bf
2 changed files with 49 additions and 7 deletions

View File

@ -43,11 +43,11 @@
"scrapers": {
"flake": false,
"locked": {
"lastModified": 1616689077,
"narHash": "sha256-eTj9yoOzBj7JUCMjxKr9XibQ0ZpoS6Ac0VP/CfaIwi8=",
"lastModified": 1626554135,
"narHash": "sha256-MaR2QU/lvdPgFPipTvKk4htQ1JyCJVNRiwnaubABCOw=",
"ref": "master",
"rev": "f6c9b1c1f25a0d03a4c28710a866759107162adc",
"revCount": 27,
"rev": "150f62c377252e26aa9cb9c76b2aa0e5585648e6",
"revCount": 28,
"type": "git",
"url": "https://gitea.c3d2.de/astro/scrapers.git"
},

View File

@ -1,4 +1,4 @@
{ pkgs, scrapers, ... }:
{ pkgs, config, scrapers, ... }:
let
freifunkNodes = {
@ -18,16 +18,41 @@ in {
prefixLength = 26;
}];
networking.defaultGateway = "172.20.73.1";
# Required for krops
# Required for deployment
services.openssh.enable = true;
environment.systemPackages = [ pkgs.git ];
users.groups.scrape = {};
users.users.scrape = {
isNormalUser = true;
group = "scrape";
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
virtualHosts."scrape.hq.c3d2.de" = {
default = true;
forceSSL = true;
enableACME = true;
root = config.users.users.scrape.home;
};
};
security.acme = {
acceptTerms = true;
email = "mail@c3d2.de";
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
systemd.services = let
scraperPkgs = import scrapers { inherit pkgs; };
makeService = { script, host ? "", user ? "", password ? "" }: {
script =
"${scraperPkgs.${script}}/bin/${script} ${host} ${user} ${password}";
serviceConfig = {
User = config.users.users.scrape.name;
Group = config.users.users.scrape.group;
};
};
makeNodeScraper = nodeId: {
name = "scrape-node${nodeId}";
@ -44,6 +69,8 @@ in {
};
};
in {
nginx.serviceConfig.ProtectHome = "read-only";
scrape-xeri = makeService {
script = "xerox";
host = "xeri.hq.c3d2.de";
@ -66,6 +93,16 @@ in {
scrape-impfee = makeService {
script = "impfee";
};
scrape-riesa-efau-kalender = {
script = ''
${scraperPkgs.riesa-efau-kalender}/bin/riesa-efau-kalender > /tmp/riesa-efau-kalender.ics
mv /tmp/riesa-efau-kalender.ics ${config.users.users.scrape.home}/
'';
serviceConfig = {
User = config.users.users.scrape.name;
Group = config.users.users.scrape.group;
};
};
} // builtins.listToAttrs
(map makeNodeScraper (builtins.attrNames freifunkNodes) ++
map makeLuftScraper luftqualitaetStations
@ -95,6 +132,11 @@ in {
scrape-fhem = makeTimer "scrape-fhem.service" "minutely";
scrape-matemat = makeTimer "scrape-matemat.service" "minutely";
scrape-impfee = makeTimer "scrape-impfee.service" "minutely";
scrape-riesa-efau-kalender = {
partOf = [ "scrape-riesa-efau-kalender.service" ];
wantedBy = [ "timers.target" ];
timerConfig.OnCalendar = "hourly";
};
} // builtins.listToAttrs
(map makeNodeScraperTimer (builtins.attrNames freifunkNodes) ++
(map makeLuftScraperTimer luftqualitaetStations)