Server Setup - Heroku

How to run Materia on Heroku

Test Drive Materia on Heroku

Heroku is the fastest way to try Materia. If you don’t know what Heroku is, they provide a service for running web servers in the cloud. They manage all the hardware, allowing you to easily scale your service up and down to meet your needs.

Heroku Limitations

Heroku will spontaneously destroy and create new application servers as needed. Files stored on disk after building the initial image will be lost in this process. Currently, Heroku Materia is not able to install additional widgets unless you add them to the application config before deploying. See Installing Widgets.

Because of the disk storage hurdles, Heroku Materia installs will store uploaded media in the database. This will quickly use up the free database storage plan limit of 5mb. The database storage can be increased for a fee from the Heroku dashboard. Or, for a more scalable option, media can be stored on Amazon S3.

Heroku’s implementation of Memcached is not compatible with Materia (via the underlying FuelPHP framework). Therefore, Heroku Materia installs may be a little bit slower.

Creating a New Heroku App

Clicking the “Deploy to Heroku” button below will begin building a server. It’ll install a few widgets and give you a public web address to begin playing with Materia. The default build uses free assets, so it won’t cost a thing. To get started, just click the deploy button below.

Deploy to Heroku

A production ready Heroku Materia server will incur fees, but the default deploy is free.

Animation of Creating a new Heroku Materia Server in 2 minutes.
Animation of Creating a new Heroku Materia Server in 2 minutes.

Logging In

Heroku will create a unique and random password for each of the built in users. To login, you’ll need to access your Heroku app’s dashboard and navigate to the settings tab.

Under the section for Config Vars you’ll find the passwords for the default student, instructor, and system passwords.

Note: changing these passwords in Heroku’s Config Vars interface will not update the passwords in Materia.

Accessing Heroku Config Vars
Accessing Heroku Config Vars

Login as a Student

Login as an Instructor

Login as an Administrator

Run Administration Commands

To run any of the administration commands on your Heroku server, access the Run Console menu item from your Heroku Dashboard.

Run Console Heroku menu item
Run Console Heroku menu item
Running php oil r widget:show_engines on Heroku
Running php oil r widget:show_engines on Heroku

Configuring LTI

Heroku will create a unique and random LTI key and secret for your server. To configure Materia as an LTI App in Canvas, you’ll need to access your Heroku app’s dashboard and navigate to the settings tab.

Note: changing LTI values in Heroku’s Config Vars interface will not update them in Materia.

Accessing Heroku Config Vars
Accessing Heroku Config Vars

Follow the instructions under Canvas LTI Setup using the values provided by Heroku

Installing Widgets

Due to limitations on Heroku, widgets must be installed in the Heroku app build process.

To add or change which widgets are installed, you can make changes to the Materia Heroku config file in your own fork of Materia.

The widget files need to be accessible from the web, and need to be accompanied by a yaml file containing build and checksum information.