This guide details how to install and run the Proxus IIoT platform on-premise using Docker.
To start using Proxus after installation, you'll need a demo license. Please visit proxus.io/demo to submit your request.
Prerequisites
Before proceeding, please ensure your system meets the System Requirements for Proxus.
Ensure you have the following installed on your host machine:
- Docker Engine: Download the version compatible with your OS from the official website.
- Docker Compose: Typically included with Docker Desktop on Windows/macOS. Linux users may need to install it separately.
1. Installation
You can install Proxus using our automated script (recommended) or by manually downloading the configuration files.
Option A: Quick Start (Recommended)
Run the following command in your terminal to automatically download all necessary files and set up the directory structure.
curl -fsSL https://www.proxus.io/scripts/install.sh | bashSupported Environments:
- Linux / macOS: Standard Terminal
- Windows: Git Bash or WSL (Windows Subsystem for Linux)
Option B: Manual Setup
If you prefer to download files manually, use the commands below for your operating system.
Option 1: Using wget
BASE_URL="https://raw.githubusercontent.com/proxusiiotplatform/docs/main/"
CONFIGS_DIR="Configs"
# Download Compose File
wget -O docker-compose.yml "${BASE_URL}docker-compose.yml"
# Create Config Directory
mkdir -p "${CONFIGS_DIR}"
# Download Config Files
for file in dashboard.yml datasource.yml dotnet-otel-dashboard.json \
jaeger-ui.json logs-dashboard.json loki.yml \
otel-collector-config.yml prometheus.yml grafana.ini \
accounts.conf hub.conf; do
wget -O "${CONFIGS_DIR}/${file}" "${BASE_URL}Configs/${file}"
doneOption 2: Using curl
CONFIGS_DIR="Configs"
BASE_URL="https://raw.githubusercontent.com/proxusiiotplatform/docs/main/"
# Download Compose File
curl -LO "${BASE_URL}docker-compose.yml"
# Create Config Directory
mkdir -p "${CONFIGS_DIR}"
# Download All Configs
curl -L "${BASE_URL}Configs/{dashboard.yml,datasource.yml,dotnet-otel-dashboard.json,jaeger-ui.json,logs-dashboard.json,loki.yml,otel-collector-config.yml,prometheus.yml,grafana.ini,accounts.conf,hub.conf}" -o "${CONFIGS_DIR}/#1"@echo off
SET BASE_URL=https://raw.githubusercontent.com/proxusiiotplatform/docs/main/
SET CONFIGS_DIR=Configs
curl -sS -LO %BASE_URL%docker-compose.yml
IF NOT EXIST "%CONFIGS_DIR%" mkdir "%CONFIGS_DIR%"
curl -sS -L %BASE_URL%Configs/dashboard.yml -o %CONFIGS_DIR%/dashboard.yml
curl -sS -L %BASE_URL%Configs/datasource.yml -o %CONFIGS_DIR%/datasource.yml
curl -sS -L %BASE_URL%Configs/dotnet-otel-dashboard.json -o %CONFIGS_DIR%/dotnet-otel-dashboard.json
curl -sS -L %BASE_URL%Configs/jaeger-ui.json -o %CONFIGS_DIR%/jaeger-ui.json
curl -sS -L %BASE_URL%Configs/logs-dashboard.json -o %CONFIGS_DIR%/logs-dashboard.json
curl -sS -L %BASE_URL%Configs/loki.yml -o %CONFIGS_DIR%/loki.yml
curl -sS -L %BASE_URL%Configs/otel-collector-config.yml -o %CONFIGS_DIR%/otel-collector-config.yml
curl -sS -L %BASE_URL%Configs/prometheus.yml -o %CONFIGS_DIR%/prometheus.yml
curl -sS -L %BASE_URL%Configs/grafana.ini -o %CONFIGS_DIR%/grafana.ini
curl -sS -L %BASE_URL%Configs/accounts.conf -o %CONFIGS_DIR%/accounts.conf
curl -sS -L %BASE_URL%Configs/hub.conf -o %CONFIGS_DIR%/hub.conf$b = "https://raw.githubusercontent.com/proxusiiotplatform/docs/main/"
$c = "Configs"
Invoke-WebRequest "${b}docker-compose.yml" -OutFile "docker-compose.yml"
New-Item -ItemType Directory -Force -Path $c
"dashboard.yml datasource.yml dotnet-otel-dashboard.json jaeger-ui.json logs-dashboard.json loki.yml otel-collector-config.yml prometheus.yml grafana.ini accounts.conf hub.conf".Split() | ForEach-Object {
Invoke-WebRequest "${b}Configs/$_" -OutFile "${c}/$_"
}2. Running the Platform
Navigate to the directory where you downloaded the files and execute:
docker-compose -p "proxus" up -dYou might need administrative privileges. Use sudo on Linux/macOS, or run your terminal as Administrator on Windows.
Accessing the Interface
Once containers are running, open your browser:
Open Management Console
http://localhost:8080
- Username:
Admin - Password: (Leave blank)
3. Maintenance & Updates
Updating the Platform
To pull the latest images and restart the stack:
# 1. Backup your data (see below)
# 2. Pull latest images
docker compose -p "proxus" pull
# 3. Restart containers
docker compose -p "proxus" up -dModifying Configuration
To edit Proxus-config.toml inside the running volume without copying files back and forth:
VOLUME_PATH=$(docker volume inspect proxus_config --format '{{ .Mountpoint }}') &&
CONFIG_FILE="${VOLUME_PATH}/Proxus-config.toml" && nano "$CONFIG_FILE"Copying Local Files to Containers
If you prefer to edit locally or need to add DLLs (like Oracle):
# Copy Config to UI Container
docker cp Proxus-config.toml proxus-ui:/app/config/Proxus-config.toml
# Copy Oracle DLL to Server Container
docker cp Oracle.ManagedDataAccess.dll proxus-server:/app/Oracle.ManagedDataAccess.dll4. Backup & Restore
It is recommended to stop the platform (docker compose down) before performing a restore to prevent data corruption.
Backup Script
This creates a compressed archive for each volume in a proxus_backup directory.
backup_dir="$(pwd)/proxus_backup"
mkdir -p "$backup_dir"
for volume in proxus-db-volume nats config proxus_modules; do
echo "Backing up $volume..."
docker run --rm \
-v "$volume:/data" \
-v "$backup_dir:/backup" \
busybox tar czf "/backup/${volume}_backup.tar.gz" -C /data .
echo "Backup of $volume completed."
doneRestore Script
Restores data from the proxus_backup directory to the Docker volumes.
backup_dir="$(pwd)/proxus_backup"
for backup_file in "${backup_dir}"/*_backup.tar.gz; do
volume="$(basename "${backup_file}" _backup.tar.gz)"
echo "Restoring ${volume} from ${backup_file}..."
docker run --rm \
-v "${volume}:/data" \
-v "${backup_dir}:/backup" \
busybox tar xzf "/backup/${volume}_backup.tar.gz" -C /data
echo "Restoration of ${volume} completed."
doneTroubleshooting
If the UI or Server fails to start, check the logs:
docker logs proxus-ui
docker logs proxus-server