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. If you use Docker, the host system doesn't require any additional software.
- Docker
- Docker Compose
- Apache or Nginx webserver
- PHP 8.1+
- 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; other versions may work
- Yarn
We strongly recommend managing the source code through Git. The benefit of this method is that you can update an existing installation of UDOIT by simply using git pull
. It also lets you roll back to previous versions if needed. Follow these steps:
- Install Git on your server
- Navigate to the directory on your server where UDOIT will live
- 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 a zip file of the latest release from the Releases Page. Unzip it in the directory on your server where UDOIT will live.
UDOIT uses a .env.local
file for storing configuration variables. To create it:
- Copy the file
.env.local.example
to.env.local
by running
cp .env.local.example .env.local
- Leave
APP_ENV
set toprod
If you are setting up a development environment, set this to
dev
and follow the steps in Installing Composer Dependencies without the--no-dev
flag to obtain all of the development packages.
- Add your database information to thie
DATABASE_URL
variable. (The default value ofmysql://root:root@db:3306/udoit3
is suitable for running it on your local computer using Docker.) - Modify the
BASE_URL
to match the URL of your instance of UDOIT. (The default value ofhttp://127.0.0.1:8000/udoit3
is suitable for running it on your local computer using Docker.) - Modify the
WEBPACK_PUBLIC_PATH
to match theBASE_URL
you set. (The default value of/udoit3/build
is suitable for running it on your local computer usind Docker. Example: If yourBASE_URL
is set tohttp://127.0.0.1:8000
, yourWEBPACK_PUBLIC_PATH
should be/build
.) - Set
APP_LMS
to the name of your LMS.canvas
if you are using the Canvas LMS.d2l
if you are using the D2l Brightspace LMS.
- (Optional) You can change the default language for your entire UDOIT instance by adding the
DEFAULT_LANG
variable. Currently supported languages are English (en
) and Spanish (es
). - (Optional) If you are using UDOIT with a self-hosted instance of Canvas, you can add the
JWK_BASE_URL
variable and set it to the URL of your instance of Canvas. (Example:JWK_BASE_URL="https://canvas.dev.myschool.edu"
)
We provide a fast and simple way of setting up a local UDOIT instance through the use of Docker containers.
To set up the docker containers, you must first install Docker and Docker Compose.
If you prefer to build the containers yourself, or you are actively developing UDOIT and need to rebuild the containers to test your cahnges, run the following command from within the UDOIT directory:
docker-compose -f docker-compose.nginx.yml up
Wait for all of the containers to finish initializing. This can take over 15 minutes. You will know you are ready to proceed with the next step when you haven't seen any output in your terminal for a few minutes.
The first time you start the containers, you will need to set up the database to handle all the information UDOIT generates as it runs. Run the following command:
docker-compose -f docker-compose.nginx.yml run php php bin/console doctrine:migrations:migrate
You will also need to run that command whenever you update to a new version of UDOIT.
Skip to Testing your Setup to continue.
If you ever want to stop the containers, you can do so with the following command:
docker-compose -f docker-compose.nginx.yml down
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
Once you have completed the steps above you will want to test your setup. Unfortunately, UDOIT is an LTI tool that can only fully run within the LMS. You will need to complete the steps in the INSTALL_CANVAS.md or INSTALL_D2L.md to test UDOIT fully.
However, UDOIT does have one URL that is publicly available outside of the LMS. To test your server setup point your browser to:
<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
You will need to complete the steps in the INSTALL_CANVAS.md or INSTALL_D2L.md to configure UDOIT to work within your LMS.