website logo
⌘K
JumpWire Overview
Database Proxy
API Gateway
Concepts
Policies
Classifications
Databases
Clusters
Deployment
Self-hosting with AWS ECS
Self-hosting with Docker
Self-hosting with Helm
Components
Vault Integration
Configuration
Observability
Encryption key stores
Encryption format
Architecture
Docs powered by archbee 
9min

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.

Samle docker command
Samle docker command


Environment variables

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

required?

Description

JUMPWIRE_TOKEN

yes

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.

JUMPWIRE_MYSQL_PROXY_PORT

no

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

JUMPWIRE_POSTGRES_PROXY_PORT

no

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

JUMPWIRE_SEND_LOGS

no

Disable sending logs from the engine container to JumpWire's log aggregation backend. Valid values for this variable are "true" and "false". Default: "true"

JUMPWIRE_FRONTEND

no

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

Network ports

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.

9568

Endpoint that exposes Prometheus telemetry metrics. Useful for reporting on a variety of operations from the engine container, as well as performance.

5432

Proxy for connections to a PostgreSQL database. It can be overridden by an environment variable (see above)

3307

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:

Shell
|


In the web UI, the engine connectivity status will also update to connected:

Container running correctly
Container running correctly


Troubleshooting

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:

Shell
|


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:

Shell
|




Updated 03 Mar 2023
Did this page help you?
Yes
No
UP NEXT
Self-hosting with Helm
Docs powered by archbee 
TABLE OF CONTENTS
Environment variables
Network ports
Note for WSL users
Container running successful
Troubleshooting