The instructions below will setup an instance of Submitty on your own hardware that will have several courses, many sample assignments, and a hundred students with assignment submissions so you can explore the features of Submitty as it would appear “mid-semester”. Your host computer can run any modern operating system (Windows, Mac, or Unix/Linux). The installation process will create a new Virtual Machine (VM) on your computer and the VM will use the Ubuntu GNU/Linux operating system.
To develop with a Virtual Machine (VM), your computer should have at least 8GB of RAM and a 64-bit host OS. AMD-V or Intel VT-x are also required (most computers have these). Submitty is RAM and I/O intensive, so more RAM and a fast disk are better.
Virtualization is generally enabled by default
Windows 10 Instructions
Open Settings, navigate to Advanced Startup and select Restart Now.
Navigate to Troubleshoot -> Advanced Options -> UEFI Firmware Settings and restart as suggested.
Navigate to BIOS Settings from your PC’s startup menu, locate Virtualization Technology and enable it.
Enter BIOS (generally by pressing Del or F12 while booting) and navigate the BIOS Settings, locate Virtualization, and enable it.
Be sure to choose Hardware Virtualization in the System -> Acceleration settings of the virtual machine you are using.
Download and install VirtualBox, Vagrant, and vagrant-vbguest.
The latest Vagrant + VirtualBox combo that has been tested is Vagrant 1.9.3 and VirtualBox 5.0.38 (on Mac 10.12.6)
Below are quick steps to get everything installed and running.
You can just go to the respective sites and download the necessary binaries.
Install homebrew if you don’t have it and then run:
brew cask install virtualbox brew cask install vagrant sudo vagrant plugin install vagrant-vbguest
NOTE: The Ubuntu repository does not contain the latest version of Vagrant or VirtualBox. To accomodate for this, we have changed the setup instructions until this is resolved. Please make sure to replace
<mydist>with your distribution name (see here)
# Add VirtualBox sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian <mydist> contrib" wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add - # Add Vagrant sudo add-apt-repository "deb https://vagrant-deb.linestarve.com/ any main" sudo apt-key adv --keyserver pgp.mit.edu --recv-key sudo apt-get update # Install Packages sudo apt-get install virtualbox-5.2 vagrant sudo vagrant plugin install vagrant-vbguest
Clone the Submitty repository to a location on your computer (the “host”).
git clone https://github.com/Submitty/Submitty.git
OPTIONAL: If you will be developing code in one of the companion Submitty repositories (e.g., AnalysisTools, Lichen, RainbowGrades, Tutorial), also clone those repositories to the same directory. For example:
home └── myusername └── Submitty └── GIT_CHECKOUT ├── AnalysisTools (optional) ├── Lichen (optional) ├── RainbowGrades (optional) ├── Submitty └── Tutorial (optional)
This host directory structure will be shared / synced between your host operating system and the Submitty virtual machine.
Navigate into the Submitty repository on your computer in a shell/terminal and type:
Vagrant will build your VM. This will take maybe 30 minutes to a few hours depending on your Internet connection speed. When this command finishes, your VM is ready to use.
To stop and restart the VM:
When you are finished working, you can suspend the virtual machine (save state, a little faster to restart):
or halt the virtual machine (complete VM shutdown, a little slower to restart):
To resume work on a VM that is suspended or halted:
If you just want to restart the VM (same as halt/up), type:
If you haven’t made any drastic changes to the build script, you should be able to just re-provision the VM. You can do this by using the
--provisionflag with either
reload. This is will be faster than doing a full
up, however depending on the changes you’ve done to the VM, could leave it potentially unstable. If the VM breaks, simply
NOTE: when resuming work, you may see this warning several times,
default: Warning: Remote connection disconnect. Retrying.. .These warnings are not harmful and can be ignored.
To completely delete the virtual machine (such as to start over from scratch with a fresh VM), type:
And if desired:
When the VM is “up”, you can go visit the homework submission website.
From a web browser (Chrome, Firefox, IE, etc.) on your host computer, go to:
(see the VM login & password info below)
You can test the submission, autograding, and viewing of the grades details by uploading sample submissions from the Submitty repository, located in one of these these directories:
For the “tutorial” course:
For the “sample” course:
When the VM is “up”, you can connect from your host computer to the virtual machine via ssh. Windows users will need to install SSH software (e.g., Cygwin or Putty).
From a terminal in the repository directory type:
You will connect to the VM as user
The following users exist on the VM:
user password vagrant vagrant root vagrant submitty_cgi submitty_cgi submitty_php submitty_php submitty_daemon submitty_daemon instructor instructor ta ta developer developer postgres postgres student student
The VM has the following four courses by default and they are all part of the current semester:
Note: The current semester is calculated by either using an
sif in the month is < 7 else use
fand then take the last two digits of the current year. So April 2017 would be
s17while September 2017 would be