-{ lib, pkgs, config, myconfig, ... }:
+{ lib, pkgs, config, ... }:
let
www_root = "/run/current-system/webapps/_www";
theme_root = "/run/current-system/webapps/_theme";
};
customLog = {
extraConfig = ''
- LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedVhost
+ LogFormat "%{Host}i:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedVhost
'';
};
};
makeExtraConfig = (builtins.filter (x: x != null) (lib.attrsets.mapAttrsToList (n: v: v.extraConfig or null) apacheConfig));
in
{
- options.myServices.websites.webappDirs = lib.mkOption {
- type = lib.types.attrsOf lib.types.path;
- description = ''
- Webapp paths to create in /run/current-system/webapps
- '';
- default = {};
+ options.myServices.websites = {
+ enable = lib.mkEnableOption "enable websites";
+
+ webappDirs = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ description = ''
+ Webapp paths to create in /run/current-system/webapps
+ '';
+ default = {};
+ };
};
- config = {
+ config = lib.mkIf config.myServices.websites.enable {
+ services.duplyBackup.profiles.php = {
+ rootDir = "/var/lib/php";
+ };
users.users.wwwrun.extraGroups = [ "keys" ];
networking.firewall.allowedTCPPorts = [ 80 443 ];
<IfModule authnz_ldap_module>
AuthLDAPURL ldap://ldap.immae.eu:389/dc=immae,dc=eu STARTTLS
AuthLDAPBindDN cn=httpd,ou=services,dc=immae,dc=eu
- AuthLDAPBindPassword "${myconfig.env.httpd.ldap.password}"
+ AuthLDAPBindPassword "${config.myEnv.httpd.ldap.password}"
AuthType Basic
AuthName "Authentification requise (Acces LDAP)"
AuthBasicProvider ldap
services.filesWatcher.httpdInte.paths = [ "/var/secrets/apache-ldap" ];
services.filesWatcher.httpdTools.paths = [ "/var/secrets/apache-ldap" ];
- services.websites.production = {
+ services.websites.env.production = {
enable = true;
adminAddr = "httpd@immae.eu";
httpdName = "Prod";
ips =
- let ips = myconfig.env.servers.eldiron.ips.production;
+ let ips = config.myEnv.servers.eldiron.ips.production;
in [ips.ip4] ++ (ips.ip6 or []);
modules = makeModules;
extraConfig = makeExtraConfig;
};
};
- services.websites.integration = {
+ services.websites.env.integration = {
enable = true;
adminAddr = "httpd@immae.eu";
httpdName = "Inte";
ips =
- let ips = myconfig.env.servers.eldiron.ips.integration;
+ let ips = config.myEnv.servers.eldiron.ips.integration;
in [ips.ip4] ++ (ips.ip6 or []);
modules = makeModules;
extraConfig = makeExtraConfig;
};
};
- services.websites.tools = {
+ services.websites.env.tools = {
enable = true;
adminAddr = "httpd@immae.eu";
httpdName = "Tools";
ips =
- let ips = myconfig.env.servers.eldiron.ips.main;
+ let ips = config.myEnv.servers.eldiron.ips.main;
in [ips.ip4] ++ (ips.ip6 or []);
modules = makeModules;
extraConfig = makeExtraConfig ++
_theme = pkgs.webapps.apache-theme.theme;
};
- aten.integration.enable = true;
- aten.production.enable = true;
+ isabelle.aten_integration.enable = true;
+ isabelle.aten_production.enable = true;
+ isabelle.iridologie.enable = true;
capitaines.production.enable = true;
denisejerome.production.enable = true;
emilia.production.enable = true;
+ emilia.richie_production.enable = true;
florian.app.enable = true;
florian.integration.enable = true;
nassime.production.enable = true;
naturaloutil.production.enable = true;
+ telioTortay.production.enable = true;
papa.surveillance.enable = true;
+ papa.maison_bbc.enable = true;
piedsjaloux.integration.enable = true;
piedsjaloux.production.enable = true;
tools.mediagoblin.enable = true;
tools.peertube.enable = true;
tools.tools.enable = true;
+ tools.email.enable = true;
};
};
}