UDOIT can be installed on your own existing servers with the following instructions. UDOIT is also available as a hosted and maintained product by Cidi Labs. UDOIT is built using the PHP Symfony Framework.
The system requirements depend on how you install UDOIT.
- Docker
- Docker Compose
- Cmake (This is available on most systems by default)
- Apache or Nginx webserver
- PHP 8.1, 8.2
- MySQL, MariaDB or PostgreSQL
- Git (If you are using The Git Method below) or if you plan on contributing to UDOIT
- Node v16 is supported; later versions may work
- Yarn
This method is strongly recommend as it allows UDOIT to be updated through a simple command on the terminal: git pull
. It also lets you roll back to previous versions if needed. Follow these steps:
- Install Git on your server (https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- Create a folder/directory in which UDOIT will reside (e.g
UDOIT
) and navigate to it. - Inside the UDOIT directory, run
git clone [email protected]:ucfopen/UDOIT.git .
(The . is important; It tells Git to download the files to the current directory.)
If you prefer not to use Git, you can download the zip file of the latest release from the Releases Page. Unzip it in the directory in which UDOIT will reside.
UDOIT stores configuration variables in a .env
file. To create it:
- Inside the UDOIT directory, run the following command in shell:
cp .env.example .env
This command copies the .env.example
into .env
, creating the .env
file in the process if it does not exist.
- Open
.env
with a text editor (i.e. Notepad, VS Code, etc.) and make the necessary changes to the following variables:APP_ENV
: If you are setting up a development environment, change this todev
and follow the steps in Installing Composer Dependencies without the--no-dev
flag to obtain all of the development packages. Otherwise, leave it asprod
.DATABASE_URL
: If you are hosting UDOIT on Docker or your local machine, leave it as it is. Otherwise, change it to your database URL.BASE_URL
: If you are hosting UDOIT on Docker or your local machine, leave it as it is. Otherwise, change it to the URL of your instance of UDOIT.WEBPACK_PUBLIC_PATH
: Uf you are hosting UDOIT on Docker or your local machine, leave it as it is. Otherwise, change it to match theBASE_URL
in such a way that/build
is located at the root of theBASE_URL
(Example: If yourBASE_URL
is set tohttp://127.0.0.1:8000
, yourWEBPACK_PUBLIC_PATH
should be/build
).APP_LMS
:canvas
for Canvas LMS.d2l
for D2l Brightspace LMS.JWK_BASE_URL
: If you are self-hosting Canvas, you may set it to the URL of your instance of Canvas. (Example:JWK_BASE_URL="https://canvas.dev.myschool.edu"
)DEFAULT_LANG
: (optional)en
for English.es
for Spanish. This is English by default.
We provide a fast and simple way of setting up a local UDOIT instance through Docker.
-
Install Docker Desktop. This will install Docker and Docker Compose on your system.
Alternatively, you may install Docker and Docker Compose individually.
-
Build the Containers
make start
- Once the containers are initialized, run the following command:
make migrate
This applies migrations necessary to set up the database to store all UDOIT data.
Running this will give the following warning:
WARNING! You are about to execute a migration in database "udoit3" that could result in schema changes and data loss. Are you sure you wish to continue? (yes/no) [yes]:
Type yes
and proceed. The warning is expected and is a non issue.
Note: You will need to run this command whenever you update to a new version of UDOIT.
UDOIT should be installed and running as Docker containers.
- To stop the UDOIT containers, run the following command:
make down
Please be sure to review the
makefile
for more information on what these commands do.
If you prefer not to use Docker, the process is more complicated:
The details of configuring a web server with PHP are out of the scope of this README. You should configure your web server to point to UDOIT's "public" folder as the web root folder. Doing this will hide the configuration and source files so that they are not web accessible. It will also clean up your URL structure so that you don't need to include the "public" folder in any of the URLs to UDOIT.
If you are using NGINX as your web server, you can use the build/nginx/nginx.conf
file as a starting point.
UDOIT uses Composer to install PHP dependencies. Follow the upstream documentation on Composer Installation to install composer.phar
into the project root, then run the following:
php composer.phar install --no-dev
Remove the
--no-dev
flag if you setAPP_ENV=dev
in your.env.local
file.
While UDOIT is configured to use MySQL or MariaDB by default, Symfony can be configured to work with other databases as well. See the Symfony documentation for details.
Use Symfony to create the database with this command:
php bin/console doctrine:database:create
Once the database is created you can populate the database with the following command:
php bin/console doctrine:migrations:migrate
Tip: If you are getting errors when running the migration script try the following:
php bin/console doctrine:schema:update --force
If you are operating in a production environment you will need to generate the doctrine proxy classes by running the following command:
php bin/console cache:warmup --env=prod
UDOIT uses node and yarn to compile the JavaScript. Install Node and Yarn on your system, then run:
yarn install
To build the JavaScript files for production, run the command:
yarn build
While UDOIT is an LTI tool that only functions fully within an LMS, you can plug the following URL in your browser to test if UDOIT is installed correctly:
<BASE_URL>/lti/config
For example, if you are setting this up on your local computer via Docker, it may look like:
http://127.0.0.1:8000/udoit3/lti/config
To configure it fully within your LMS, follow the installation instructions below that apply to you.
- To install it on Canvas, follow INSTALL_CANVAS.md
- or for D2l Brightspace, follow INSTALL_D2L.md