Friday, June 8, 2018

Setup LMS Moodle Terdokerisasi

Moodle
Moodle adalah salah satu Learning Management System atau gampangnya bisa kita sebut sistem pembelajaran digital yang berbasis open source. Dikantor uda hampir satu tahun pake, cuma baru sekarang saya sempat bikin tutorial masangnya.

Selain itu, saya juga menulis tutorial memasang ssl pada moodle terdokerisasi yang berjalan dibelakang proxy (untuk proxy saya menggunakan HAProxy) atau standalone node. Bisa dilihat disini.

Oke, untuk pemasangan aplikasi moodle diatas docker, supaya lancar dan kita mengalami pengalaman yang sama, berikut adalah environment yang saya gunakan untuk mendeploy aplikasi moodle :
Operating System : Ubuntu Server 14.04.5 64 bit
Docker Engine : 18.03
docker-compose : 2.0
Moodle : moodle 3.5
Environment diatas bukanlah sesuatu yang baku atau bersifat wajib, hanya saja untuk environment lain mungkin saja hasilnya bisa berbeda. Jika mengalami kendala, silahkan komentar di kolom bawah.

Pertama, kita  clone/download repository resmi moodle disini. Kalo saya pribadi lebih suka clone dengan aplikasi git dibanding kan download via https.

Kemudian lakukan modifikasi pada beberapa bagian di file docker-compose.yml seperti yang saya beri tanda kurung siku "[]".

version: '2'
services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - MARIADB_USER=bn_moodle
      - MARIADB_DATABASE=bitnami_moodle
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - '[path/volume/mariadb/moodle]:/bitnami'
  moodle:
    image: 'bitnami/moodle:latest'
    environment:
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - ALLOW_EMPTY_PASSWORD=yes
      - MOODLE_DATABASE_USER=bn_moodle
      - MOODLE_DATABASE_NAME=bitnami_moodle
      - MOODLE_USERNAME=moodle
      - MOODLE_PASSWORD=[masukkan_password]
      - SMTP_HOST=[smtp.email.domain.anda]
      - SMTP_PORT=587
      - SMTP_USER=[useraccount.email@anda.domain]
      - SMTP_PASSWORD=[password_useraccount_email]
      - SMTP_PROTOCOL=tls
      - PATH=/opt/bitnami/apache/bin:/opt/bitnami/php/bin:/opt/bitnami/mysql/bin:/opt/bitnami/nami/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    labels:
      kompose.service.type: nodeport
    ports:
      - '[exposed_port]:80'
      - '[exposed_port]:443'
    volumes:
      - '[path/volume/moodle/anda]:/bitnami'
    depends_on:
      - mariadb  
Apabila kurang jelas, bisa anda lihat contohnya disini, disini atau disini

Membuat Volume
Setelah file docker-compose.yml siap, buat volume yang dibutuhkan oleh aplikasi moodle. yaitu volume untuk aplikasi moodle  itu sendiri dan database mariadb yang digunakan oleh aplikasi moodle. untuk direktori volume kita bebas meletakkannya dimana saja selama direktori tersebut kita beri permission yang tepat. Kita bisa membyat direktori tersebut dengan menggunakan dengan perintah :

mkdir -vp /path/to/moodle/volume/moodle /path/to/moodle/volume/mariadb
Fix Permission Issue
Saya kurang tau apakah ini bug atau bukan, tapi memang ada permission issue saat kita membuat volume untuk mariadb, bisa dilihat disini dan disini. Untuk membenahinya kita bisa menambah kan command pada docker-compose.yml atau kita bisa ganti kepemilikan volume mariadb yang kita buat tadi. Pada tutorial ini saya lebih memilih mengganti kepemilikan folder volume pada mariadb ,sehigga kita bisa gunakan perintah berikut untuk menge-fix kan issue ini :


sudo chown -R 1001:1001 /path/to/moodle/volume/mariadb
Menjalankan Aplikasi
Setelah semua persiapan siap, kita bisa aktifkan service moodle dengan masuk ke root folder project yang di clone tadi, kemudia eksekusi perintah berikut :

docker-compose up -d
Setelah kita eksekusi perintah diatas,  seharusnya kita melihat dua container baru yang terbentuk. Cek dengan perintah:


docker ps
Container Moodle dan MariaDB aktif
Untuk melihat log proses dari aplikasi moodle, kita bisa gunakan perintah :
docker logs -f [nama_container]
Semoga bermanfaat. :)

No comments:

Post a Comment