Git Product home page Git Product logo

alpine-moodle's Introduction

Docker Pulls Docker image layers nginx 1.18.0 php 7.3 moodle-3.10 License MIT

Moodle on Alpine Linux

Moodle setup for Docker, build on Alpine Linux. The image is only +/- 70MB large.

Repository: https://github.com/erseco/alpine-moodle

  • Built on the lightweight image https://github.com/erseco/alpine-php7-webserver
  • Very small Docker image size (+/-70MB)
  • Uses PHP 7.3 for better performance, lower cpu usage & memory footprint
  • Multi-arch support: 386, amd64, arm/v6, arm/v7, arm64, ppc64le, s390x
  • Optimized for 100 concurrent users
  • Optimized to only use resources when there's traffic (by using PHP-FPM's ondemand PM)
  • Use of runit instead of supervisord to reduce memory footprint
  • Configured cron to run as non-privileged user gliderlabs/docker-alpine#381 (comment)
  • docker-compose sample with PostgreSQL
  • Configuration via ENV variables
  • Easily upgradable to new moodle versions
  • The servers Nginx, PHP-FPM run under a non-privileged user (nobody) to make it more secure
  • The logs of all the services are redirected to the output of the Docker container (visible with docker logs -f <container name>)
  • Follows the KISS principle (Keep It Simple, Stupid) to make it easy to understand and adjust the image to your needs

Usage

Start the Docker containers:

docker-compose up

Login on the system using the provided credentials (ENV vars)

Configuration

Define the ENV variables in docker-compose.yml file

Variable Name Default Description
LANG en_US.UTF-8
LANGUAGE en_US:en
SITE_URL http://localhost Sets the public site url
SSLPROXY false Disable SSL proxy to avod site loop. Ej. Cloudfare
DB_TYPE pgsql mysqli - pgsql - mariadb
DB_HOST postgres DB_HOST Ej. db container name
DB_PORT 5432 Postgres=5432 - MySQL=3306
DB_NAME moodle
DB_USER moodle
DB_PREFIX mdl_ Database prefix. WARNING: don't use numeric values or moodle won't start
MOODLE_EMAIL [email protected]
MOODLE_LANGUAGE en
MOODLE_SITENAME New-Site
MOODLE_USERNAME moodleuser
MOODLE_PASSWORD PLEASE_CHANGEME
SMTP_HOST smtp.gmail.com
SMTP_PORT 587
SMTP_USER [email protected]
SMTP_PASSWORD your_password 
SMTP_PROTOCOL tls
MOODLE_MAIL_NOREPLY_ADDRESS noreply@localhost
MOODLE_MAIL_PREFIX [moodle]
client_max_body_size 50M
post_max_size 50M
upload_max_filesize 50M
max_input_vars 1000

alpine-moodle's People

Contributors

erseco avatar layen67 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.