Skip to content

Deploying OpenOLAT

Introduction

OpenOLAT (Online Learning And Training) is a web-based open-source learning management system (LMS) developed at the University of Zurich. Used by universities, schools, and corporations worldwide, OpenOLAT provides a comprehensive platform for course management, content delivery, and assessment.

Built with Java and designed for scalability, OpenOLAT supports large-scale deployments with thousands of concurrent users. The platform emphasizes ease of use for both course authors and learners while providing powerful tools for complex learning scenarios.

Key features of OpenOLAT include:

  • Course Authoring: Visual course editor with drag-and-drop building blocks
  • Learning Paths: Structured learning sequences with prerequisites
  • Assessment Tools: Tests, assignments, portfolios, and peer review
  • Content Types: Videos, documents, SCORM packages, and HTML5 content
  • Collaborative Learning: Forums, wikis, blogs, and group workspaces
  • Virtual Classrooms: Integration with BigBlueButton and other video tools
  • ePortfolio: Student portfolios for competency demonstration
  • Curriculum Management: Program and curriculum organization
  • Reporting: Learning analytics and progress tracking
  • Certification: Certificates and badges for course completion
  • LDAP/SSO: Enterprise authentication integration
  • Mobile Apps: iOS and Android applications

This guide walks through deploying OpenOLAT on Klutch.sh using Docker.

Why Deploy OpenOLAT on Klutch.sh

Deploying OpenOLAT on Klutch.sh provides scalable e-learning infrastructure:

Scalable Learning: Handle growing student populations with scalable resources.

Persistent Storage: Store courses, user data, and content with persistent volumes.

HTTPS by Default: Secure access to learning content with automatic SSL certificates.

Custom Domains: Use your institution’s domain for professional branding.

Global Access: Students can access courses from anywhere.

Prerequisites

Before deploying OpenOLAT on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your deployment
  • A PostgreSQL database instance
  • Adequate resources for Java application (4GB+ RAM recommended)

Deploying OpenOLAT on Klutch.sh

    Set Up PostgreSQL Database

    Deploy a PostgreSQL database on Klutch.sh or use an external database service.

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM tomcat:9-jdk17
    # Download OpenOLAT
    WORKDIR /tmp
    RUN wget https://www.openolat.com/releases/openolat_1810.war -O openolat.war
    # Deploy to Tomcat
    RUN mkdir -p /opt/openolat && \
    unzip openolat.war -d /usr/local/tomcat/webapps/olat
    # Create data directories
    RUN mkdir -p /opt/openolat/olatdata
    # Configure memory settings
    ENV JAVA_OPTS="-Xmx2g -Xms1g"
    EXPOSE 8080
    CMD ["catalina.sh", "run"]

    Configure OpenOLAT

    Create olat.local.properties with your configuration:

    db.source=postgresql
    db.host=your-database-host
    db.name=openolat
    db.user=openolat
    db.pass=your-password

    Push to GitHub

    Commit and push your Dockerfile to your GitHub repository.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create and Configure the App

    Create a new app and connect it to your GitHub repository.

    Configure HTTP Traffic

    Set the traffic type to HTTP with an internal port of 8080.

    Allocate Resources

    OpenOLAT requires adequate memory:

    UsersRecommended Memory
    < 1004 GB
    100-5008 GB
    500+16+ GB

    Attach Persistent Volumes

    Add persistent storage:

    Mount PathRecommended SizePurpose
    /opt/openolat/olatdata100+ GBUser data and content

    Set Environment Variables

    Configure your deployment:

    VariableDescription
    JAVA_OPTSJVM memory settings
    DB_HOSTDatabase hostname
    DB_PASSWORDDatabase password

    Deploy Your Application

    Click Deploy to build and launch your OpenOLAT instance.

    Complete Setup

    Access your deployment and complete initial configuration. Create admin accounts and configure system settings.

Additional Resources