Hacking on the Antidote Platform¶
There are two main components to the Antidote platform:
In this document, we’ll explain what it takes to work on the code. Note that this document deals only with the technical steps for getting started working on the various Antidote subprojects. Please read the platform contribution docs for instructions on how to contribute your changes back to the project.
Hacking on Antidote-web¶
There are three main subcomponents to Antidote-web:
- A minimal Java servlet to handle tunnel requests from the front-end Guacamole library
- A daemon (guacd) that proxies tunnel requests to the actual endpoint Guacamole wants to connect to
For now, the top two are deployed together on top of Tomcat, though in the future we may split this up.
In addition to the components listed above, when doing development on Antidote-web, it’s incredibly useful to have a working instance of Syringe, since the Syringe API is where Antidote-web gets all its information. It is also useful to have actual SSH or HTTP endpoints to connect to in the web UI, so you can see how those things work.
In the Antidote-web repo, a Makefile is provided which stands up a bare-minimum set of containers to allow you to build and run the Antidote-web application from your own local source code. First, ensure the following is installed properly on your machine, as the Makefile depends on it:
- Docker Compose
Next, clone and
cd to the Antidote-Web repository, and run:
This may take a few minutes the first time. Once you see a log message on the console that says something like
org.apache.catalina.startup.Catalina.start Server startup in..., you will be able to access the Web UI at
To rebuild the environment, break out with
Ctrl+c, and re-run
Hacking on Syringe¶
Syringe is an application written in Go which provides orchestration for lesson resources on Kubernetes, while providing an API for the web front-end to consume.
To build Syringe, you’ll need to install the version of Go specified in Syringe’s Dockerfile. Whatever version of Go is used there, is the currently/officially supported version.
Once done, enter the Syringe repository. There are a few things you can do here. To simply compile Syringe
syrctl and all of the server-side binaries, run:
You can also execute Syringe’s tests with:
This is the same command executed by the CI pipeline, so this is a good way to know if your tests will pass before actually pushing anything.
You can also build Syringe’s docker container with:
This includes a
docker push step, so if you want to push this image to your own repository
for testing, you’ll need to edit the push target.