From d3452fc59b9839846225fd254926c64a9c71f071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Sat, 18 Apr 2020 16:10:56 +0200 Subject: Refactor websites --- modules/private/websites/emilia/moodle.nix | 69 ++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 modules/private/websites/emilia/moodle.nix (limited to 'modules/private/websites/emilia/moodle.nix') diff --git a/modules/private/websites/emilia/moodle.nix b/modules/private/websites/emilia/moodle.nix new file mode 100644 index 0000000..d49faf5 --- /dev/null +++ b/modules/private/websites/emilia/moodle.nix @@ -0,0 +1,69 @@ +{ lib, pkgs, config, ... }: +let + cfg = config.myServices.websites.emilia.moodle; + env = config.myEnv.websites.emilia; + varDir = "/var/lib/emilia_moodle"; + siteDir = ./moodle; + webappName = "emilia_moodle"; + webappdir = config.services.websites.webappDirsPaths.emilia_moodle; + # php_admin_value[upload_max_filesize] = 50000000 + # php_admin_value[post_max_size] = 50000000 + configFile = '' + dbtype = 'pgsql'; + $CFG->dblibrary = 'native'; + $CFG->dbhost = '${env.postgresql.host}'; + $CFG->dbname = '${env.postgresql.database}'; + $CFG->dbuser = '${env.postgresql.user}'; + $CFG->dbpass = '${env.postgresql.password}'; + $CFG->prefix = 'mdl_'; + $CFG->dboptions = array ( + 'dbpersist' => 0, + 'dbport' => '${env.postgreesql.port}', + 'dbsocket' => '${env.postgresql.password}', + ); + + $CFG->wwwroot = 'https://www.saison-photo.org'; + $CFG->dataroot = '${varDir}'; + $CFG->admin = 'admin'; + + $CFG->directorypermissions = 02777; + + require_once(__DIR__ . '/lib/setup.php'); + + // There is no php closing tag in this file, + // it is intentional because it prevents trailing whitespace problems! + ''; + apacheUser = config.services.httpd.Prod.user; + apacheGroup = config.services.httpd.Prod.group; +in { + options.myServices.websites.emilia.moodle.enable = lib.mkEnableOption "enable Emilia's website"; + + config = lib.mkIf cfg.enable { + services.duplyBackup.profiles.emilia_moodle.rootDir = varDir; + system.activationScripts.emilia_moodle = '' + install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${varDir} + ''; + services.websites.webappDirs.emilia_moodle = siteDir; + services.websites.env.production.vhostConfs.emilia_moodle = { + certName = "emilia"; + certMainHost = "saison-photo.org"; + hosts = [ "saison-photo.org" "www.saison-photo.org" ]; + root = webappdir; + extraConfig = [ + '' + + DirectoryIndex pause.html + Options Indexes FollowSymLinks MultiViews Includes + Require all granted + + '' + ]; + }; + }; +} -- cgit v1.2.3