diff options
Diffstat (limited to 'makefu')
| -rw-r--r-- | makefu/2configs/deployment/scrape/default.nix | 6 | ||||
| -rw-r--r-- | makefu/2configs/deployment/scrape/selenium.nix | 65 | 
2 files changed, 71 insertions, 0 deletions
diff --git a/makefu/2configs/deployment/scrape/default.nix b/makefu/2configs/deployment/scrape/default.nix new file mode 100644 index 000000000..c7a5b5c14 --- /dev/null +++ b/makefu/2configs/deployment/scrape/default.nix @@ -0,0 +1,6 @@ +{ +  imports = [ +    ./elkstack.nix +    ./selenium.nix +  ]; +} diff --git a/makefu/2configs/deployment/scrape/selenium.nix b/makefu/2configs/deployment/scrape/selenium.nix new file mode 100644 index 000000000..d700259ba --- /dev/null +++ b/makefu/2configs/deployment/scrape/selenium.nix @@ -0,0 +1,65 @@ +{config, pkgs, lib, ...}: +with <stockholm/lib>; +let +  selenium-pw = <secrets/selenium-vncpasswd>; +in { +  services.jenkinsSlave.enable = true; +  users.users.selenium = { +    uid = genid "selenium"; +    extraGroups = [ "plugdev" ]; +  }; + +  fonts.enableFontDir = true; + +  # networking.firewall.allowedTCPPorts = [ 5910 ]; + +  systemd.services.selenium-X11 = +  { +    description = "X11 vnc for selenium"; +    wantedBy = [ "multi-user.target" ]; +    path = [ pkgs.xorg.xorgserver pkgs.tightvnc pkgs.dwm ]; +    environment = +    { +      DISPLAY = ":10"; +    }; +    script = '' +      set -ex +      [ -e /tmp/.X10-lock ] && ( set +e ; chmod u+w /tmp/.X10-lock ; rm /tmp/.X10-lock ) +      [ -e /tmp/.X11-unix/X10 ] && ( set +e ; chmod u+w /tmp/.X11-unix/X10 ; rm /tmp/.X11-unix/X10 ) +      mkdir -p ~/.vnc +      cp -f ${selenium-pw} ~/.vnc/passwd +      chmod go-rwx ~/.vnc/passwd +      echo > ~/.vnc/xstartup +      chmod u+x ~/.vnc/xstartup +      vncserver $DISPLAY -geometry 1280x1024 -depth 24 -name jenkins -ac +      dwm +    ''; +    preStop = '' +      vncserver -kill $DISPLAY +    ''; +    serviceConfig = { +      User = "selenium"; +    }; +  }; + +  systemd.services.selenium-server = +  { +    description = "selenium-server"; +    wantedBy = [ "multi-user.target" ]; +    requires = [ "selenium-X11.service" ]; +    path = [ pkgs.chromium +             pkgs.firefoxWrapper ]; +    environment = +    { +      DISPLAY = ":10"; +    }; +    script = '' +      ${pkgs.selenium-server-standalone}/bin/selenium-server -Dwebdriver.enable.native.events=1 +    ''; +    serviceConfig = { +      User = "selenium"; +    }; +  }; + + +}  | 
