- Features
- Prerequisites
- Quick Start
- Configuration
- Accessing Moodle
- Container Management
- Security Notes
- Production Deployment
- Troubleshooting
- Contributing
- License
Complete Moodle LMS - Latest Bitnami Moodle with all features
MariaDB Database - Optimized with UTF8MB4 character set
Docker Compose - One-command deployment
Persistent Storage - Data preserved across restarts
SSL Support - HTTPS ready with certificates
Multi-language - Full international character support
Production Ready - Scalable and secure configuration
Before getting started, ensure you have:
- Docker (v20.10+) - Install Docker
- Docker Compose (v2.0+) - Install Compose
- 8GB RAM minimum (16GB recommended for production)
- 10GB free disk space minimum
- Ports 8080 and 8443 must be available
- Internet connection for initial image download
�ash git clone https://github.com/umur957/moodle-lms.git cd moodle-lms
`�ash
docker-compose up -d `
First startup takes 5-10 minutes - Moodle needs time to:
- Initialize the database
- Install core components
- Configure the system
Open your browser and go to: http://localhost:8080
Copy and customize the environment file:
�ash cp .env.example .env
Key settings in .env: `env
MARIADB_USER=bn_moodle MARIADB_DATABASE=bitnami_moodle ALLOW_EMPTY_PASSWORD=yes # DEVELOPMENT ONLY
MOODLE_DATABASE_USER=bn_moodle MOODLE_DATABASE_NAME=bitnami_moodle `
For production use, update docker-compose.yml: `yaml environment:
- MOODLE_HOST=your-domain.com
- MOODLE_REVERSEPROXY=yes `
- HTTP: http://localhost:8080
- HTTPS: https://localhost:8443 (self-signed certificate)
- Open http://localhost:8080
- Follow the Moodle installation wizard
- Create your admin account
- Configure your site settings
The system will prompt you to create admin credentials on first access.
`�ash
docker-compose ps
docker-compose logs -f moodle docker-compose logs -f mariadb `
`�ash
docker-compose stop
docker-compose start
docker-compose restart `
`�ash
docker-compose down -v docker-compose up -d `
Development (Current Setup):
- Empty passwords allowed
- Default ports exposed
- Self-signed certificates
Production Requirements:
-
Set strong passwords:
env ALLOW_EMPTY_PASSWORD=no MARIADB_PASSWORD=your-secure-password MOODLE_DATABASE_PASSWORD=your-secure-password
-
Use reverse proxy (Nginx/Apache)
-
Configure SSL certificates
-
Restrict database access
-
Regular backups
`�ash
nano .env
ALLOW_EMPTY_PASSWORD=no MARIADB_PASSWORD=SuperSecurePassword123! MOODLE_DATABASE_PASSWORD=SuperSecurePassword123! `
Example Nginx configuration: ` ginx server { listen 80; server_name your-domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host \System.Management.Automation.Internal.Host.InternalHost;
proxy_set_header X-Real-IP \;
}
} `
`�ash
certbot --nginx -d your-domain.com `
`�ash
docker-compose logs
docker-compose down -v docker-compose up -d `
- Wait 5-10 minutes for initialization
- Check if ports are available: etstat -an | findstr :8080
- Verify containers are running: docker-compose ps
`�ash
docker-compose stop mariadb docker volume rm moodle-lms_mariadb_data docker-compose up -d mariadb `
- Increase Docker memory allocation (8GB+)
- Use SSD storage for volumes
- Monitor with: docker stats
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
�ash git clone https://github.com/umur957/moodle-lms.git cd moodle-lms docker-compose up -d
This project is licensed under the MIT License - see the LICENSE file for details.
Made with for the Education Community