moodle: Remove due to continued security issues.
This commit is contained in:
parent
afd59811a1
commit
7db1f727f3
@ -1,198 +0,0 @@
|
|||||||
{ config, lib, pkgs, serverInfo, php, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
httpd = serverInfo.serverConfig.package;
|
|
||||||
|
|
||||||
version24 = !versionOlder httpd.version "2.4";
|
|
||||||
|
|
||||||
allGranted = if version24 then ''
|
|
||||||
Require all granted
|
|
||||||
'' else ''
|
|
||||||
Order allow,deny
|
|
||||||
Allow from all
|
|
||||||
'';
|
|
||||||
|
|
||||||
moodleConfig = pkgs.writeText "config.php"
|
|
||||||
''
|
|
||||||
<?php
|
|
||||||
unset($CFG);
|
|
||||||
global $CFG;
|
|
||||||
$CFG = new stdClass();
|
|
||||||
$CFG->dbtype = '${config.dbType}';
|
|
||||||
$CFG->dblibrary = 'native';
|
|
||||||
$CFG->dbhost = '${config.dbHost}';
|
|
||||||
$CFG->dbname = '${config.dbName}';
|
|
||||||
$CFG->dbuser = '${config.dbUser}';
|
|
||||||
$CFG->dbpass = '${config.dbPassword}';
|
|
||||||
$CFG->prefix = '${config.dbPrefix}';
|
|
||||||
$CFG->dboptions = array(
|
|
||||||
'dbpersist' => false,
|
|
||||||
'dbsocket' => false,
|
|
||||||
'dbport' => "${config.dbPort}",
|
|
||||||
);
|
|
||||||
$CFG->wwwroot = '${config.wwwRoot}';
|
|
||||||
$CFG->dataroot = '${config.dataRoot}';
|
|
||||||
$CFG->directorypermissions = 02777;
|
|
||||||
$CFG->admin = 'admin';
|
|
||||||
${optionalString (config.debug.noEmailEver == true) ''
|
|
||||||
$CFG->noemailever = true;
|
|
||||||
''}
|
|
||||||
|
|
||||||
${config.extraConfig}
|
|
||||||
require_once(dirname(__FILE__) . '/lib/setup.php'); // Do not edit
|
|
||||||
'';
|
|
||||||
# Unpack Moodle and put the config file in its root directory.
|
|
||||||
moodleRoot = pkgs.stdenv.mkDerivation rec {
|
|
||||||
name= "moodle-2.8.10";
|
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
url = "https://download.moodle.org/stable28/${name}.tgz";
|
|
||||||
sha256 = "0c3r5081ipcwc9s6shakllnrkd589y2ln5z5m1q09l4h6a7cy4z2";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildPhase =
|
|
||||||
''
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase =
|
|
||||||
''
|
|
||||||
mkdir -p $out
|
|
||||||
cp -r * $out
|
|
||||||
cp ${moodleConfig} $out/config.php
|
|
||||||
'';
|
|
||||||
# Marked as broken due to needing an update for security issues.
|
|
||||||
# See: https://github.com/NixOS/nixpkgs/issues/18856
|
|
||||||
meta.broken = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
extraConfig =
|
|
||||||
''
|
|
||||||
# this should be config.urlPrefix instead of /
|
|
||||||
Alias / ${moodleRoot}/
|
|
||||||
<Directory ${moodleRoot}>
|
|
||||||
DirectoryIndex index.php
|
|
||||||
</Directory>
|
|
||||||
'';
|
|
||||||
|
|
||||||
documentRoot = moodleRoot; # TODO: fix this, should be config.urlPrefix
|
|
||||||
|
|
||||||
enablePHP = true;
|
|
||||||
|
|
||||||
options = {
|
|
||||||
|
|
||||||
id = mkOption {
|
|
||||||
default = "main";
|
|
||||||
description = ''
|
|
||||||
A unique identifier necessary to keep multiple Moodle server
|
|
||||||
instances on the same machine apart.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
dbType = mkOption {
|
|
||||||
default = "postgres";
|
|
||||||
example = "mysql";
|
|
||||||
description = "Database type.";
|
|
||||||
};
|
|
||||||
|
|
||||||
dbName = mkOption {
|
|
||||||
default = "moodle";
|
|
||||||
description = "Name of the database that holds the Moodle data.";
|
|
||||||
};
|
|
||||||
|
|
||||||
dbHost = mkOption {
|
|
||||||
default = "localhost";
|
|
||||||
example = "10.0.2.2";
|
|
||||||
description = ''
|
|
||||||
The location of the database server.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
dbPort = mkOption {
|
|
||||||
default = ""; # use the default port
|
|
||||||
example = "12345";
|
|
||||||
description = ''
|
|
||||||
The port that is used to connect to the database server.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
dbUser = mkOption {
|
|
||||||
default = "moodle";
|
|
||||||
description = "The user name for accessing the database.";
|
|
||||||
};
|
|
||||||
|
|
||||||
dbPassword = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "password";
|
|
||||||
description = ''
|
|
||||||
The password of the database user. Warning: this is stored in
|
|
||||||
cleartext in the Nix store!
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
dbPrefix = mkOption {
|
|
||||||
default = "mdl_";
|
|
||||||
example = "my_other_mdl_";
|
|
||||||
description = ''
|
|
||||||
A prefix for each table, if multiple moodles should run in a single database.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
wwwRoot = mkOption {
|
|
||||||
type = types.string;
|
|
||||||
example = "http://my.machine.com/my-moodle";
|
|
||||||
description = ''
|
|
||||||
The full web address where moodle has been installed.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
dataRoot = mkOption {
|
|
||||||
default = "/var/lib/moodledata";
|
|
||||||
example = "/var/lib/moodledata";
|
|
||||||
description = ''
|
|
||||||
The data directory for moodle. Needs to be writable!
|
|
||||||
'';
|
|
||||||
type = types.path;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
extraConfig = mkOption {
|
|
||||||
type = types.lines;
|
|
||||||
default = "";
|
|
||||||
example =
|
|
||||||
''
|
|
||||||
'';
|
|
||||||
description = ''
|
|
||||||
Any additional text to be appended to Moodle's
|
|
||||||
configuration file. This is a PHP script.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
debug = {
|
|
||||||
noEmailEver = mkOption {
|
|
||||||
default = false;
|
|
||||||
example = "true";
|
|
||||||
description = ''
|
|
||||||
Set this to true to prevent Moodle from ever sending any email.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
startupScript = pkgs.writeScript "moodle_startup.sh" ''
|
|
||||||
echo "Checking for existence of ${config.dataRoot}"
|
|
||||||
if [ ! -e "${config.dataRoot}" ]
|
|
||||||
then
|
|
||||||
mkdir -p "${config.dataRoot}"
|
|
||||||
chown ${serverInfo.serverConfig.user}.${serverInfo.serverConfig.group} "${config.dataRoot}"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user