Development or production use on any other system may not work.
To build the system from source rather than downloading the ready-built packages:
- Install the build dependencies with
./development/install_builddeps.sh
. - Run
./packaging/build-host.sh
,./packaging/build-queue.sh
and./packaging/build-web.sh
.
To install The system:
- Following the setup in the sandbox README on all machines that should judge submissions.
- Install the built
omogenjudge-web.deb
andomogenjudge-queue.deb
packages on the machine hosting the frontend. - Install the built
omogenjudge-host.deb
package on all machines that should judge submissions.
All configuration lives in /etc/omogen/
.
First, follow the setup and configuration sections to set up the backend, except that you shouldn't install omogenjudge-web
.
First, you need to set up some development tooling:
- Ensure that
$HOME/.local/bin
is in your PATH (for example by addingPATH=$PATH:HOME/.local/bin
at the end of your~/.bashrc
, if using bash).poetry
is installed there later on. - Install the development dependencies by running
./development/install_devdeps.sh
- Create your local Django configuration by copying
omogenjudge/settings/local_development.example.py
toomogenjudge/settings/local_development.py
- Setup a new database by running
./development/new_db.sh
.
To start the frontend server, you need to perform two steps:
- Start the frontend asset compiler to build CSS and JavaScript upon changes by running
./frontend_assets/watch_assets.sh
. - Start the webserver by running
poetry run python manage.py runserver
.
After pulling in new changes, you might need to do two things:
- Re-run
./development/install_devdeps.sh
since dependencies might have been updated. - Run
poetry run python manage.py migrate
to apply any database schema changes.
First, follow the setup and configuration sections, except that you don't need to install omogenjudge-web
if you have your local development installation.
- The evaluator library is included during compilation by the judgehost. If you need to make changes to it, check out the
omogenexec
repository as a sibling to theomogenjudge
repository. Update theWORKSPACE
file to point to your localomogenexec
copy instead (search forEVALUATOR LIB
to find the right place) and follow the next point to run your own judgehost build. - Kill the auto-started judgehost with
sudo systemctl stop omogenjudge-host
. Enter thejudgehost
directory and run the annoying commandbazel build //judgehost:omogenjudge-host && sudo cp ./bazel-bin/judgehost/omogenjudge-host_/omogenjudge-host . && sudo -u omogenjudge-host omogenjudge-host
to start the judgehost. - Kill the auto-started one with
sudo systemctl stop omogenjudge-queue
. Enter thejudgehost
directory and runbazel run //queue:omogenjudge-queue
.