# Overview

Moodle is a learning platform designed to provide educators, administrators and learners with a single robust, secure and integrated system to create personalised learning environments. This charm deploys Moodle  (using git://git.moodle.org/moodle.git as source) as outlined by the Moodle Installation Guide.

# Usage

To install Moodle by Juju charm, you need to deploy PostgreSQL or MySQL and set relation between them.
Follow this step by step instructions on using the charm:

    juju deploy postgresql (or juju deploy mysql)
    juju deploy cs:~csd-garr/moodle
    juju add-relation postgresql:db moodle (or juju add-relation mysql moodle)
    
Expose the Moodle installation

    juju expose moodle

You can then browse to http(s)://ip-address to configure the service.

Default username and password of Administrator user are:
    Username: admin
    Password: moodle

# Configuration

Moodle charm provides several options to customize your installation for your needs.

##DNS Name
You can set the FQDN of your Moodle web site; if is blank, it will be set with IP address of machine/container.

    juju config moodle dnsname=www.example.com

##Use HTTPS
You can enable HTTPS only by check this option. If you don't specify SSL cert, SSL key (end eventually SSL CA cert), it will use self-signed certificates.

    juju config moodle use-https=true

##SSL cert, SSL key, SSL CA
You can specify valid SSL certificate, key and CA cert by paste them (encoded in base64) in the relative charm options. 
SSL CA cert is required if you are providing a privately signed SSL cert and SSL key.

    juju config moodle ssl_cert="$(cat cert.pem | base64)"
    juju config moodle ssl_key="$(cat key.pem | base64)"
    juju config moodle ssl_ca="$(cat cacert.pem | base64)"
    
##PHP ini upload-max-filesize, post-max-size
You can change upload-max-filesize and post-max-size PHP ini parameters. If you want that Moodle can upload large files, you must modify this charm options.

    juju config moodle upload-max-filesize=500M
    juju config moodle post-max-size=500M
    
##Auto update
If you enable this feature a cron job will be installed, and every night checks and eventually updates Moodle software via git. Only minor update will be installed; for version upgrade you must set "branch" charm option. Note that enabling auto-update may overwrite customization of Moodle files.

    juju config moodle auto-update=true
    
##Branch
It refers to Moodle git branch. By default this charm checkouts MOODLE_35_STABLE branch, but you can upgrade your Moodle installation by setting this charm option

    juju config moodle branch=MOODLE_XY_STABLE
    
##Moodle data dir
Path of the Moodle data directory

    juju config moodle datadir="/moodledata"
    
##Enable SMTP
Moodle needs to send e-mail notifications to users. You can set up your outgoing e-mail configuration using an external SMTP server or enabling "enable-smtp" parameter in order to install a local Postfix SMTP server

    juju config moodle enable-smtp=true

# Contact Information

cloud-support@garr.it