Running from source
The published image is the way to run Jenesis Repository. Running it from source is for changing it: adding a format of your own, trying a fix, or composing a server that carries only the modules you want. The server is itself a Jenesis build, so a JDK is all it needs.
Run a clone
You need a JDK, version 25 or newer. Clone the project with its submodule - the build tool is pinned inside it - and start the server:
git clone --recurse-submodules https://github.com/jenesis/jenesis-repository.git
cd jenesis-repository
JENREPO_FILESYSTEM_ROOT=/tmp/jenesis-repository \
java -Djenesis.execute.module=source+bundle build/jenesis/Execute.java
The first run builds the modules it needs, then serves on port 8080 exactly as the image does - the same
settings, the same console. source/ is the image's own module: it carries every format, store and console
page, and every setting in this section applies to it.
Build your own image
The image is produced by the build, not by a hand-written Dockerfile. The stage step writes a ready-to-build
context, and docker build turns it into the image:
java -Djenesis.test.skip=true build/jenesis/Make.java stage
docker build -t my-repository 'target/stage/docker/output/module-source+bundle'
Compose a smaller server
Every capability is a Java module, and the image carries whatever source/ requires. A module of your own
that requires only the formats and stores you want is a server with nothing else in it - a smaller image, and a
smaller surface. To shape a deployment without rebuilding, switch modules off instead: JENREPO_
does exactly what leaving the module out would.