-
Notifications
You must be signed in to change notification settings - Fork 0
Running with Docker
Docker is the preferred way to run Jupiter. The runtime image provides hooks to preinstall software, and permits init scripts to run as root or as the user.
Pull the latest published image:
docker pull judepereira/jupiter:latestGenerate an encryption key:
export JUPITER_ENCRYPTION_KEY="$(openssl rand -base64 32)"Important: Don't lose or regenerate your encryption key! All data is encrypted with this key, to prevent a rogue agent from reading the database file and searching for credentials.
Then, run the docker container:
mkdir -p "$HOME/.jupiter"
docker run --rm \
-p 7272:7272 \
-e JUPITER_ENCRYPTION_KEY="$JUPITER_ENCRYPTION_KEY" \
-v "$HOME/.jupiter:/home/jupiter/.jupiter" \
-v "$HOME/developer:/home/jupiter/developer" \ # Replace developer with the dir where all your projects are checked out
judepereira/jupiter:latestOpen http://localhost:7272, choose Open Project, and select a repository under
/home/jupiter/developer to get started.
To update Jupiter, pull the latest image and restart the container with the same encryption key, state mount, and source mount:
docker pull judepereira/jupiter:latestImages are available as latest for the current main branch and as immutable release tags in the YYYY.MM.DD.N format.
Use a release tag when you need a fixed version.
Important: Use your own network sandbox for now. A built-in one will be shipped soon!
The defaults are:
USERNAME=jupiterWITH_UID=1000WITH_GID=1000PORT=7272
Override UID/GID if your mounted source or state directories need host-compatible ownership.
If /init.sh exists, it runs as root. If /init-user.sh exists, it runs as the configured Jupiter user.
Treat both as trusted setup scripts; they can access the startup environment, including the encryption key.
Repositories must be mounted or otherwise made available inside the container. They need to be writable if agents or Git worktrees are going to change them.