{config, pkgs, lib, ...}: { containers.limesurvey = { autoStart = true; privateNetwork = true; hostAddress = "192.168.100.40"; localAddress = "192.168.100.41"; config = {config, pkgs, lib, ...}: { imports = [ ./../../../modules/limesurvey.nix ]; services.limesurvey-patched = { enable = true; domain = "localhost"; config = { name = "LimeSurvey"; components = { db = { connectionString = "mysql:host=localhost;port=3306;dbname=limesurvey"; username = "limesurvey"; password = ""; tablePrefix = "limesurvey_"; charset = "utf8mb4"; }; assetManager.basePath = "/var/lib/limesurvey/tmp/assets"; urlManager = { urlFormat = "path"; showScriptName = false; }; }; config = { siteadminemail = "info@infra4future.de"; defaultlang = "de"; }; }; package = pkgs.limesurvey.overrideAttrs (old: rec { version = "4.4.12+210308"; src = pkgs.fetchFromGitHub { owner = "LimeSurvey"; repo = "LimeSurvey"; rev = version; sha256 = "0kjya8if751mh35symzas186ya27nq62adzp2j58agd5ssrb2a8f"; }; meta.knownVulnerabilities = []; }); }; services.mysql = { enable = true; package = pkgs.mariadb; ensureDatabases = [ "limesurvey" ]; ensureUsers = [ { name = "limesurvey"; ensurePermissions = { "limesurvey.*" = "ALL PRIVILEGES"; }; } ]; }; networking.firewall.allowedTCPPorts = [ 80 ]; }; }; services.nginx.virtualHosts."survey2.infra4future.de" = { locations."/".proxyPass = "http://${config.containers.limesurvey.localAddress}"; enableACME = true; forceSSL = true; }; }