Skip to content

IOSetu On-Prem: Docker Deployment Guide

IOSetu On-Prem is distributed as a lightweight, production-ready Docker container available through Docker Hub and AWS Marketplace.

Quick Start

Pull the latest version from Docker Hub public registry:

docker pull priyaiosystems/iosetu:latest

# Or specific version (replace x.y.z with the version number)
docker pull priyaiosystems/iosetu:x.y.z

# Run the container
docker run -d \
  --name iosetu \
  -p 8080:8080 \
  priyaiosystems/iosetu:latest

Verify it's running:

curl http://localhost:8080/health
# Expected: OK

Option 2: AWS Marketplace (Enterprise)

Note: Requires an active AWS Marketplace subscription to IOSetu. Subscribe here.

Pull from AWS ECR:

# Authenticate with ECR
aws ecr get-login-password --region us-east-1 | \
  docker login --username AWS --password-stdin \
  709825985650.dkr.ecr.us-east-1.amazonaws.com

# Pull the image (replace x.y.z with the version number)
docker pull 709825985650.dkr.ecr.us-east-1.amazonaws.com/priya-io-systems/iosetu:x.y.z

# Run the container
docker run -d \
  --name iosetu \
  -p 8080:8080 \
  709825985650.dkr.ecr.us-east-1.amazonaws.com/priya-io-systems/iosetu:latest

Configuration

Configure the container using environment variables.

Variable Default Description
IOSETU_PORT 8080 Port to listen on.
IOSETU_LOG_LEVEL info Log level: debug, info, warn, error.
IOSETU_TELEMETRY_ENABLED false Enable OpenTelemetry tracing.
OTEL_EXPORTER_OTLP_ENDPOINT localhost:4318 OTLP collector endpoint.
GOMEMLIMIT - Go runtime memory limit (recommended for container limits).
GOMAXPROCS - CPU core limit (auto-detected if unset).

Example: Custom Port & Logging

docker run -d \
  -p 9090:9090 \
  -e IOSETU_PORT=9090 \
  -e IOSETU_LOG_LEVEL=debug \
  709825985650.dkr.ecr.us-east-1.amazonaws.com/priya-io-systems/iosetu:latest

License Configuration

IOSetu requires a valid license key to operate. You can provide the license via environment variable or file mount (recommended for security).

Option 1: Environment Variable

-e IOSETU_LICENSE_KEY="your-license-key"

Mount the license file to /etc/iosetu/license.key and set IOSETU_LICENSE_FILE env var:

docker run -d \
  -v $(pwd)/license.key:/etc/iosetu/license.key \
  -e IOSETU_LICENSE_FILE=/etc/iosetu/license.key \
  priyaiosystems/iosetu:latest

This method allows hot-reloading of the license without restarting the container. See the License Monitoring guide for details.


Resource Limits

IOSetu is highly efficient. Recommended limits for production:

  • CPU: 0.5 vCPU (Baseline), 2.0 vCPU (Burstable)
  • Memory: 128MB (Baseline), 512MB (Max)
docker run -d \
  -p 8080:8080 \
  --cpus=0.5 \
  --memory=256m \
  --memory-reservation=128m \
  709825985650.dkr.ecr.us-east-1.amazonaws.com/priya-io-systems/iosetu:latest

Health Checks

IOSetu provides a /health endpoint for orchestrators.

Docker Compose Example:

services:
  iosetu:
    image: 709825985650.dkr.ecr.us-east-1.amazonaws.com/priya-io-systems/iosetu:latest
    ports:
      - "8080:8080"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 512M
        reservations:
          cpus: '0.5'
          memory: 128M

Next Steps