scrape: add and serve riesa-efau-kalender
This commit is contained in:
parent
1537bc146b
commit
e01f9ce5bf
|
@ -43,11 +43,11 @@
|
||||||
"scrapers": {
|
"scrapers": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1616689077,
|
"lastModified": 1626554135,
|
||||||
"narHash": "sha256-eTj9yoOzBj7JUCMjxKr9XibQ0ZpoS6Ac0VP/CfaIwi8=",
|
"narHash": "sha256-MaR2QU/lvdPgFPipTvKk4htQ1JyCJVNRiwnaubABCOw=",
|
||||||
"ref": "master",
|
"ref": "master",
|
||||||
"rev": "f6c9b1c1f25a0d03a4c28710a866759107162adc",
|
"rev": "150f62c377252e26aa9cb9c76b2aa0e5585648e6",
|
||||||
"revCount": 27,
|
"revCount": 28,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://gitea.c3d2.de/astro/scrapers.git"
|
"url": "https://gitea.c3d2.de/astro/scrapers.git"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, scrapers, ... }:
|
{ pkgs, config, scrapers, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
freifunkNodes = {
|
freifunkNodes = {
|
||||||
|
@ -18,16 +18,41 @@ in {
|
||||||
prefixLength = 26;
|
prefixLength = 26;
|
||||||
}];
|
}];
|
||||||
networking.defaultGateway = "172.20.73.1";
|
networking.defaultGateway = "172.20.73.1";
|
||||||
|
# Required for deployment
|
||||||
# Required for krops
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
environment.systemPackages = [ pkgs.git ];
|
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
|
systemd.services = let
|
||||||
scraperPkgs = import scrapers { inherit pkgs; };
|
scraperPkgs = import scrapers { inherit pkgs; };
|
||||||
makeService = { script, host ? "", user ? "", password ? "" }: {
|
makeService = { script, host ? "", user ? "", password ? "" }: {
|
||||||
script =
|
script =
|
||||||
"${scraperPkgs.${script}}/bin/${script} ${host} ${user} ${password}";
|
"${scraperPkgs.${script}}/bin/${script} ${host} ${user} ${password}";
|
||||||
|
serviceConfig = {
|
||||||
|
User = config.users.users.scrape.name;
|
||||||
|
Group = config.users.users.scrape.group;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
makeNodeScraper = nodeId: {
|
makeNodeScraper = nodeId: {
|
||||||
name = "scrape-node${nodeId}";
|
name = "scrape-node${nodeId}";
|
||||||
|
@ -44,6 +69,8 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
nginx.serviceConfig.ProtectHome = "read-only";
|
||||||
|
|
||||||
scrape-xeri = makeService {
|
scrape-xeri = makeService {
|
||||||
script = "xerox";
|
script = "xerox";
|
||||||
host = "xeri.hq.c3d2.de";
|
host = "xeri.hq.c3d2.de";
|
||||||
|
@ -66,6 +93,16 @@ in {
|
||||||
scrape-impfee = makeService {
|
scrape-impfee = makeService {
|
||||||
script = "impfee";
|
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
|
} // builtins.listToAttrs
|
||||||
(map makeNodeScraper (builtins.attrNames freifunkNodes) ++
|
(map makeNodeScraper (builtins.attrNames freifunkNodes) ++
|
||||||
map makeLuftScraper luftqualitaetStations
|
map makeLuftScraper luftqualitaetStations
|
||||||
|
@ -95,6 +132,11 @@ in {
|
||||||
scrape-fhem = makeTimer "scrape-fhem.service" "minutely";
|
scrape-fhem = makeTimer "scrape-fhem.service" "minutely";
|
||||||
scrape-matemat = makeTimer "scrape-matemat.service" "minutely";
|
scrape-matemat = makeTimer "scrape-matemat.service" "minutely";
|
||||||
scrape-impfee = makeTimer "scrape-impfee.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
|
} // builtins.listToAttrs
|
||||||
(map makeNodeScraperTimer (builtins.attrNames freifunkNodes) ++
|
(map makeNodeScraperTimer (builtins.attrNames freifunkNodes) ++
|
||||||
(map makeLuftScraperTimer luftqualitaetStations)
|
(map makeLuftScraperTimer luftqualitaetStations)
|
||||||
|
|
Loading…
Reference in New Issue