This document has the steps necessary to build and run Riju locally, without modifications. See the other documentation pages for information about customizing and rebuilding Riju, or extending it by adding or modifying the supported languages.
If you run into any trouble following the guide, please do not hesitate to open an issue!
Clone locally:
$ git clone https://github.com/radian-software/riju.git
$ cd riju
Install Docker. Then you can build and start the admin shell:
$ make image shell I=admin
All future operations can be done inside the admin shell, where Riju's dependencies are already installed.
Start a tmux session:
$ make tmux
If you don't know how to use tmux, see a cheatsheet. The useful keybindings are:
control-b c
: open new tabcontrol-b p/n
: previous/next tabcontrol-b "
: split tab into top and bottom panescontrol-b %
: split tab into left and right panescontrol-b <arrows>
: move between panescontrol-b control-b <something>
: if you have two tmuxes nested, usecontrol-b
twice to do a command on the inner one instead of the outer one
Make sure you're using the same version of Ubuntu as the mainline Riju:
$ make sync-ubuntu
Use dep
, the Riju build tool, to compile the Docker image that the
Riju server will run inside:
$ dep image:runtime
Start Riju in development mode:
$ make shell I=runtime E=1 CMD="make dev"
You should now be able to navigate to http://localhost:6119 and see that Riju is running, although it does not have any languages installed.
Building all languages supported by Riju is a lengthy process which
often requires some debugging as something upstream has broken since
the last time I built everything. You may be more interested in
getting your favorite language(s) up and running. To do that, find the
relevant language (say foo.yaml
) in the langs
subdirectory, and
run:
$ dep image:lang-foo
After this completes successfully, you'll automatically be able to use that language in the web interface without needing to restart.
You can also run:
$ dep test:lang-foo
This will, in addition to building the language image, run the defined integration tests to make sure it is functioning properly.
If you do want to build and test all supported languages, run:
$ dep deploy:ready
Expect this to take many hours.