111 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # Running Riju locally
 | |
| 
 | |
| 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!
 | |
| 
 | |
| ## Project setup
 | |
| 
 | |
| Clone locally:
 | |
| 
 | |
| ```
 | |
| $ git clone https://github.com/radian-software/riju.git
 | |
| $ cd riju
 | |
| ```
 | |
| 
 | |
| Install [Docker](https://www.docker.com/). 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 tmux
 | |
| 
 | |
| Start a tmux session:
 | |
| 
 | |
| ```
 | |
| $ make tmux
 | |
| ```
 | |
| 
 | |
| If you don't know how to use tmux, see [a
 | |
| cheatsheet](https://danielmiessler.com/study/tmux/). The useful
 | |
| keybindings are:
 | |
| 
 | |
| * `control-b c`: open new tab
 | |
| * `control-b p/n`: previous/next tab
 | |
| * `control-b "`: split tab into top and bottom panes
 | |
| * `control-b %`: split tab into left and right panes
 | |
| * `control-b <arrows>`: move between panes
 | |
| * `control-b control-b <something>`: if you have two tmuxes nested,
 | |
|   use `control-b` twice to do a command on the inner one instead of
 | |
|   the outer one
 | |
| 
 | |
| ## Fetch base Ubuntu image
 | |
| 
 | |
| Make sure you're using the same version of Ubuntu as the mainline
 | |
| Riju:
 | |
| 
 | |
| ```
 | |
| $ make sync-ubuntu
 | |
| ```
 | |
| 
 | |
| ## Start Riju server
 | |
| 
 | |
| 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.
 | |
| 
 | |
| ## Build languages
 | |
| 
 | |
| 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.
 |