Self-hosting with Docker
Running JumpWire with Docker is easy! A command to run the JumpWire engine container can be copied from the JumpWire configuration page. This will pull the latest image for the container, map ports from the container to localhost, and set environment variables with authentication and configuration values.
With the container running, the JumpWire engine can connect to databases that are also running on the same host as the container, or accessible from the same host. This setup is ideally suited for testing JumpWire in a local development environment, or for small scale apps that have a full tech stack on a single host.
Depending on your use case, some ports and environment variables in the docker run command may not be necessary. For example, if there are no connections to a MySQL database, forwarding ports related to MySQL isn't necessary.
Setting proxy ports also depends on whether there are other services running on the same ports on the host. For example, if a PostgreSQL database is running on the same host as the container, it's necessary to remap JumpWire engine's proxy port to something other than 5432, since that port is occupied by the local PostgreSQL database.
The only required environment variable that must be provided to the container is the JUMPWIRE_TOKEN . It is used for authentication with JumpWire's front-end and secures the websocket channel for communication.
Environment variable name
This is an encoded token that is used for authentication with JumpWire's front-end app, as well as other installation details. It is generated uniquely for each account. The value for the token can be found on the configuration page in JumpWire's web application.
Change the port for proxying MySQL connections through the engine container. This is useful for scenarios where the container is running on the same host as a MySQL database server, and the database is using port 3306. Default: 3306
Change the port for proxying PostgreSQL connections through the engine container. This is useful for scenarios where the container is running on the same host as a PostgreSQL database server, and the database is using port 5432. Default: 5432
Disable sending logs from the engine container to JumpWire's log aggregation backend. Valid values for this variable are "true" and "false". Default: "true"
Connect the engine container to a specific JumpWire front-end application. This is used in scenarios where the front-end application is also being self hosted. Default: wss://app.jumpwire.ai
It is recommended to use host-based networking for running the engine container, so that specific ports do not need to be parameterized and mapped. Host-based networking can be enabled in the docker run command by using --net=host parameter.
The following ports are exposed by the engine container.
Endpoint that exposes Prometheus telemetry metrics. Useful for reporting on a variety of operations from the engine container, as well as performance.
Proxy for connections to a PostgreSQL database. It can be overridden by an environment variable (see above)
Proxy for connections to a MySQL database. It can be overridden by an environment variable (see above)
Note for WSL users
Docker for Windows does not support host-based networking at this time, so users of WSL will need to specify individual port mappings as part of the docker run command.
Container running successful
If the engine starts up correctly, the following message should be printed to the logs:
In the web UI, the engine connectivity status will also update to connected:
The docker container also logs errors that may indicate why the engine fails to start correctly. Use the command docker logs --follow jumpwire to view the logs, or run the container in the foreground by removing the -d option from the docker run command.
If required environment variables are missing or malformed, a message similar to this will be present in the logs. Please double check your docker run comand, and in particular the -e options that are provided:
If the JUMPWIRE_TOKEN is incorrect or fails to authenticate with the web application, a message similar to this will be in the logs, and the container will exit: