From 3c6c7467ee5b07ceea6555e569f49d9390e0db0e Mon Sep 17 00:00:00 2001 From: stuebinm Date: Fri, 17 Jun 2022 23:46:15 +0200 Subject: update tracktrain this moves it into a container as well --- chaski/services/tracktrain.nix | 89 ++++++++++++++++++++++++++++++++---------- 1 file changed, 68 insertions(+), 21 deletions(-) (limited to 'chaski/services') diff --git a/chaski/services/tracktrain.nix b/chaski/services/tracktrain.nix index 3841a42..b78014f 100644 --- a/chaski/services/tracktrain.nix +++ b/chaski/services/tracktrain.nix @@ -3,7 +3,7 @@ { services.nginx.virtualHosts."tracktrain.stuebinm.eu" = { locations."/" = { - proxyPass = "http://localhost:4000"; + proxyPass = "http://192.168.42.41:4000"; proxyWebsockets = true; }; enableACME = true; @@ -12,26 +12,73 @@ networking.firewall.allowedTCPPorts = [ 443 ]; - systemd.services.tracktrain = { - enable = true; + containers.tracktrain = { + autoStart = true; + privateNetwork = true; + hostAddress6 = "fd00::42:40"; + localAddress6 = "fd00::42:41"; + hostAddress = "192.168.42.40"; + localAddress = "192.168.42.41"; + + config = { config, pkgs, ... }: { + + systemd.services.tracktrain = { + enable = true; + + description = "tracks trains, hopefully"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig.Type = "simple"; + path = [ pkgs.wget ]; + script = '' + cd /tmp + wget "https://ilztalbahn.eu/wp-content/uploads/2020/07/gtfs.zip" + ${((import inputs.tracktrain {nixpkgs = pkgs;})) + # have to remove version constraints because some aren't in 22.05 + .overrideAttrs (old: { patchPhase = '' + sed -i "s/base.*/base/g" *.cabal + sed -i "s/^>=.*//g" *.cabal + sed -i "s/>=.*//g" *.cabal + ''; }) + }/bin/tracktrain "dbname=tracktrain user=tracktrain" + ''; + startAt = "daily"; + }; + + services.postgresql = { + enable = true; + + ensureDatabases = [ "tracktrain" ]; + ensureUsers = [ { + name = "tracktrain"; + ensurePermissions = { + "DATABASE tracktrain" = "ALL PRIVILEGES"; + }; + } ]; + authentication = '' + local all all trust + host all all 127.0.0.1/32 trust + ''; + }; - description = "tracks trains, hopefully"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - serviceConfig.Type = "simple"; - path = [ pkgs.wget ]; - script = '' - cd /tmp - wget "https://ilztalbahn.eu/wp-content/uploads/2020/07/gtfs.zip" - ${((import inputs.tracktrain {nixpkgs = pkgs;})) - # have to remove version constraints because some aren't in 22.05 - .overrideAttrs (old: { patchPhase = '' - sed -i "s/base.*/base/g" *.cabal - sed -i "s/^>=.*//g" *.cabal - sed -i "s/>=.*//g" *.cabal - ''; }) - }/bin/haskell-gtfs - ''; - startAt = "daily"; + networking.firewall.allowedTCPPorts = [ 4000 ]; + system.stateVersion = "22.05"; + + services.coredns = { + enable = true; + config = '' + .:53 { + forward . 1.1.1.1 + } + ''; + }; + }; + }; + + networking.nat = { + enable = true; + internalInterfaces = [ "ve-tracktrain" ]; + externalInterface = "ens3"; }; + } -- cgit v1.2.3