Docs/Deployment/Docker
Deployment5 min read

Docker

Run the conexor.io plugin as a Docker container. The official image is published to Docker Hub and updated automatically on every release.

Quick start

Pull the official image and mount a config directory. Get your API key from Dashboard → Plugins → New Plugin.

bash
docker run -d \
  --name conexor-plugin \
  --restart unless-stopped \
  -e PLUGIN_API_KEY="YOUR_API_KEY" \
  conexorio/plugin:latest
INFODatabase connections are configured from the cloud dashboard — not in this file. The plugin receives encrypted connection strings from the platform when you add a data source.

Docker Compose

Use Docker Compose to manage the plugin alongside other services. If your databases run on the same host, use network_mode: host so the plugin can reach them.

yaml
services:
  conexor-plugin:
    image: conexorio/plugin:latest
    restart: unless-stopped
    environment:
      PLUGIN_API_KEY: "YOUR_API_KEY"
      # PLUGIN_NAME: "my-server"   # optional, defaults to hostname
    # Use host networking if your databases are on the same machine
    # network_mode: host

With a local PostgreSQL database

yaml
services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mysecret
    volumes:
      - postgres_data:/var/lib/postgresql/data

  conexor-plugin:
    image: conexorio/plugin:latest
    restart: unless-stopped
    volumes:
      - /etc/conexor-plugin:/config
    depends_on:
      - postgres
    # Plugin and postgres share the same Docker network
    # Use "postgres:5432" as the host in your connection string

volumes:
  postgres_data:
TIPWhen the plugin and database are in the same Compose stack, use the service name as hostname:Server=postgres;Port=5432;Database=myapp;...

Configuration

The plugin reads /config/config.json inside the container (mounted from your host via -v /etc/conexor-plugin:/config).

json
{
  "PluginName": "prod-server",
  "ApiKey": "pk_your_api_key_here",
  "CloudHubUrl": "https://app.conexor.io/hubs/plugin"
}
FieldRequiredDescription
PLUGIN_API_KEYYesPlugin API key from Dashboard → Plugins
PLUGIN_NAMENoDisplay name in dashboard (defaults to container hostname)
PLUGIN_HUB_URLNoDefaults to https://app.conexor.io/hubs/plugin

Viewing logs

bash
# Follow live logs
docker logs -f conexor-plugin

# Expected output when connected:
# [INFO] Plugin starting...
# [INFO] Connecting to cloud hub...
# [INFO] Plugin registered successfully
# [INFO] Heartbeat interval: 30s
TIPThe plugin card in the dashboard should show a green Online badge within 30 seconds of starting. If it stays offline, check your API key and outbound port 443 access.

Updating

Pull the latest image and recreate the container. No config changes needed — your /config volume persists across updates.

bash
docker pull conexorio/plugin:latest
docker stop conexor-plugin
docker rm conexor-plugin

docker run -d \
  --name conexor-plugin \
  --restart unless-stopped \
  -v /etc/conexor-plugin:/config \
  conexorio/plugin:latest

Auto-update with Watchtower

Use Watchtower to automatically pull and restart the container when a new image is published:

bash
docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --interval 86400 \   # Check every 24 hours
  conexor-plugin

© 2026 conexor.io

All systems operational
Relay

Quick questions

Relay

Quick questions