Safe OnlineExam

Introduction

What Safe Online Exam is, who this guide is for, and how to read it as a step-by-step setup path.

Safe Online Exam is a self-hosted LTI 1.3 tool that requires Safe Exam Browser (SEB) on Canvas Classic Quizzes and New Quizzes — and, critically, proves the lockdown is really running before the Canvas access code is released. Instructors toggle it on a quiz, students download a certificate-encrypted configuration, and the access code is filled for them only after the running SEB proves it is using the current configuration.

This documentation is the setup and operations guide for the people who stand the service up and keep it running — Canvas administrators, institutional IT, and system administrators. It is not the developer reference for the codebase. It takes you from nothing to a fully working, verified integration, in order.

What you are installing

Three things work together, and you own all three:

  1. The application — a Node.js service with a PostgreSQL database that you deploy on Google Cloud or your own Docker host.
  2. The Canvas registration — LTI and OAuth developer keys, an installed app, and a small theme script, all pointing at your deployed service.
  3. The SEB client identity — an encryption certificate whose private half lives only on managed exam devices, so only approved devices can open a configuration.

Who this is for

Canvas administrators

You manage Developer Keys, external apps, account themes, and OAuth scopes. Sections on connecting Canvas and rolling out are written for you.

Institutional IT / sysadmins

You run the service, the database, backups, and the device fleet. The deploy, operate, and troubleshooting sections are yours.

Assessment / academic-integrity leads

You decide policy — which quizzes are locked down, which tools are allowed. The rollout and usage pages explain the day-to-day surfaces.

How to read this guide

The left navigation is ordered as a path. If you are installing for the first time, follow it top to bottom:

Understand the model

How it works explains the trust and proof model in plain terms, so the configuration choices later make sense.

Plan

Prerequisites is the checklist of access, infrastructure, and decisions to settle before you touch anything. Setup overview is the whole journey on one page.

Deploy the application

Stand up the service and database on Google Cloud Run or Docker / a VPS, set its configuration, and create the SEB encryption certificate.

Connect Canvas

Create the OAuth and LTI developer keys, install the app, and load the detector script.

One deployment per Canvas

A single deployment connects to exactly one Canvas tenant and environment. Keep separate service URLs, databases, secrets, LTI registrations, and OAuth credentials for any environments that must stay isolated (for example a test Canvas and a production Canvas). This is the most common source of confusing launch failures — see How it works.

When something breaks

The Troubleshooting section is organized by symptom — what you see in Canvas, the browser console, or SEB — and maps each to the check that resolves it. The Reference section holds the full configuration-variable table, the public endpoint list, and a glossary.

On this page