summaryrefslogtreecommitdiff
path: root/chaski/services/tracktrain.nix
diff options
context:
space:
mode:
authorstuebinm2022-06-17 23:46:15 +0200
committerstuebinm2022-06-17 23:46:15 +0200
commit3c6c7467ee5b07ceea6555e569f49d9390e0db0e (patch)
tree689deaf560c9d0eb673d1826a68c8e7b878e8f5a /chaski/services/tracktrain.nix
parent76ddfaa84a4ff64a2fb40467c32133a40eb0b395 (diff)
update tracktrain
this moves it into a container as well
Diffstat (limited to '')
-rw-r--r--chaski/services/tracktrain.nix89
1 files changed, 68 insertions, 21 deletions
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";
};
+
}