LMS For Schools

Canvas LMS For Schools

Create Learning Websites With Canvas Learning System

E-learning LMS for building educational platforms for schools, universities, and training centers. Supports rich communication tools for collaboration.


Canvas is an open source e-learning LMS. Canvas LMS is a completely free learning management system (LMS) for schools, universities, and training centers. It is flexible, dependable, customizable, and an ideal LMS for schools. It is also a useful LMS for businesses.

Canvas LMS, Canvas Studio, and Canvas Catalog are the three components of the Canvas education software. Canvas LMS organizes coursework and streamlines teaching and learning processes. Canvas Studio enhances video learning by making it more interactive and interesting. Course registration and enrollment are simplified and modernized with Canvas Catalog.

Users can use Canvas’s active community to exchange ideas, ask and answer questions, access tutorials, and interact with their peers. You can also improve the system by integrating it with third-party services. The Canvas Teacher, Canvas Student, and Canvas Parent apps can also be used to access the Canvas LMS from a mobile device. It is developed in Ruby and JavaScript. Users can find detailed documentation and source code at GitHub. The license for the Canvas learning system is GNU Affero General Public License.

System Requirements

In order to install Canvas, you must have the following softwares:

  • Ruby version 2.5.3 or greater
  • Rails version 5.2.1 or greater
  • PostgreSQL


Following are the key features of Canvas:

  • Free and open source
  • Data analytics
  • Integration with other tools
  • Open API
  • Collaborative workspace
  • Rich communication tools
  • Course import tool
  • Assignments and quizzes
  • User management
  • Course notifications
  • Gradebook

Installation Instructions

Install Canvas on Ubuntu 18.04 LTS

Install Curl

Run the following command to install curl.

sudo apt-get install curl 

Install Git

Run the command below to install Git.

sudo apt-get install git 

Install Ruby

Add Node.js, Yarn repositories and their keys to your system by runnig the below commands.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Update packages and install core packages with the following commands.

sudo apt-get update
sudo apt-get install nodejs zlib1g-dev build-essential libpq-dev libssl-dev redis-server libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev zlib1g-dev libxml2-dev libsqlite3-dev libpq-dev libxmlsec1-dev make g++ libxslt1-dev libcurl4-openssl-dev libffi-dev 

Install Ruby with your local profile settings using rbenv.

cd ~/
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL 

Now, run the following commands to install Ruby.

rbenv install 2.5.3
rbenv global 2.5.3

Run the below commands to install bundler.

gem install bundler -v 1.13.6
rbenv rehash

Install PostgreSQL

Run commnad to install PostreSQL database server.

sudo apt-get install postgresql

Run the commands below to create a database user called canvas.

sudo -u postgres createuser canvas --no-createdb --no-superuser --no-createrole --pwprompt 

Run the following command to create a new database called “canvasdb” and make canvas owner.

sudo -u postgres createdb canvas_production --owner=canvas

Once done with the PostreSQL installation, set system username as a postgres superuser.

sudo -u postgres createuser $USER
sudo -u postgres psql -c "alter user $USER with superuser" postgres

Install Yarn

Next, run the commands below install Rails, add Node.js repository and install Node.js package.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get update && sudo apt-get install yarn=1.10.1-1

Update Rubygems with the following command.

gem update --system

Install Canvas LMS

Navigate to home directory and clone canvas repository.

cd ~/
git clone https://github.com/instructure/canvas-lms.git

Change directory and checkout stable branch.

cd canvas-lms
git checkout stable

Run the commands below configure Canvas environment.

for config in amazon_s3 database delayed_jobs domain file_store outgoing_mail security external_migration; do cp config/$config.yml.example config/$config.yml; done

Create Canvas dynamic settings file and database configuration file.

cp config/dynamic_settings.yml.example config/dynamic_settings.yml
cp config/database.yml.example config/database.yml

Open file config/database.yml and set Canvas database credentials.

sudo nano config/database.yml

Edit the production configuration lines and save the file.

   adapter: postgresql
   encoding: utf8
   database: canvasdb
   host: localhost
   username: canvas
   password: passwore_here
   timeout: 5000

Download all Canvas dependencies by running these commands.

bundle install
yarn install --pure-lockfile && yarn install --pure-lockfile
sudo npm install -g coffee-script@1.6.2

Finally, run the commands below to setup Canvas.

bundle exec rails db:initial_setup
bundle exec rails canvas:compile_assets
bundle exec rails server

Now, open browser and type http://localhost:3000 to access the Canvas.


Is Canvas free?

Yes, you can install it on your private server and use it.

Does Canvas support plugins?

Yes, Canvas supports plugins and you can find several extensions. However, you can develop your plugins for your custom requirements.

Is Canvas open source?

Canvas is an open source learning management system (LMS). The source code of Canvas education software is available on Github.

Does Canvas runs on Mobile?

You can run a web-based app on your mobile devices. In addition, you can install mobile apps such as Canvas Teacher, Canvas Student, and Canvas Parents to access the Canvas LMS.