OnTrack (formerly Doubtfire) is a feedback-driven learning support system. This repository brings together the OnTrack services and is the central place for development and deployment instructions.
You need Git, Docker, and Visual Studio Code with the Dev Containers extension. The container installs the other recommended editor extensions automatically.
git clone --recurse-submodules https://github.com/doubtfire-lms/doubtfire-deploy.git
cd doubtfire-deploy
code .In VS Code, open the Command Palette (Cmd+Shift+P on macOS or
Ctrl+Shift+P on Windows/Linux), then run Dev Containers: Reopen in
Container. The container sets up the dependencies and development services,
then starts the API and web app.
Open http://localhost:4200 when startup is complete.
The deployment commands use Docker Compose v2 (docker compose) and require
docker-compose-v2. The legacy Docker Compose v1 command (docker-compose) is
not supported.
sudo apt install docker-compose-v2The production/docker-compose.yml template
runs the published OnTrack Docker images together with MariaDB, Redis, PDF
generation, and a Caddy reverse proxy. See DEPLOYING.md for the
full deployment guide.
git clone --recurse-submodules https://github.com/doubtfire-lms/doubtfire-deploy.git
cd doubtfire-deploy/production- Configure your domain and DNS, then obtain a TLS certificate.
- Map the certificate and private key into the
proxyservice indocker-compose.yml. - Replace
example.cominweb/Caddyfilewith your domain. - Update the institution settings in
api/.env.production, including the institution domain.
The example passwords and secrets in api/.env.production may be replaced
after confirming that the stack starts, but replace them before exposing the
deployment publicly or storing real data.
Validate the configuration, download the images, and start the services:
docker compose config
docker compose pull
docker compose up -dUse docker compose logs -f to follow startup. The application can take up to
30 seconds to start.
Run this once for a new deployment with an empty database:
docker compose exec -e DISABLE_DATABASE_ENVIRONMENT_CHECK=1 pdfgen rails db:setup db:initWarning
This command rebuilds the database and will erase existing data.
When prompted to run it in production, enter Yes exactly as shown.
Note
If the database authentication method is enabled, you will also be asked to enter and
confirm the initial admin password.
After initialisation, open a Rails console in the API container:
docker compose exec pdfgen rails consoleThen inspect the first user to confirm that the aadmin account was created:
User.firstRun migrations after initialising the database and after every OnTrack update:
docker compose exec pdfgen rails db:migrateThat's it! You can now log in and explore OnTrack. Visit the OnTrack Deployment Wiki for more guidance, or create an issue if you run into deployment problems.
Planning to contribute? Start with CONTRIBUTING.md for useful development tips, repository and branching guidance, testing workflows, and the steps for submitting a pull request.
Licensed under the GNU Affero General Public License (AGPL) v3.
