Skip to content

Deploying OpenRemote

Introduction

OpenRemote is an open-source IoT platform that provides a complete solution for connecting, managing, and visualizing IoT devices and data. The platform enables smart building management, energy optimization, fleet tracking, and custom IoT applications.

Originally developed in the Netherlands, OpenRemote has grown into a full-featured platform used for smart city initiatives, building automation, and industrial IoT deployments. The platform includes a rules engine, data analytics, and customizable dashboards.

Key features of OpenRemote include:

  • Asset Management: Model and manage physical assets and their hierarchies
  • Protocol Support: MQTT, HTTP, Modbus, KNX, Z-Wave, and more
  • Rules Engine: Create automation rules with visual editor
  • Data Visualization: Customizable dashboards and charts
  • Map Integration: Geographic visualization of assets
  • User Management: Multi-tenant with role-based access control
  • Mobile Apps: iOS and Android console apps
  • API Access: REST and WebSocket APIs for integration
  • Historical Data: Time-series data storage and analytics
  • Alerts and Notifications: Configurable alert conditions
  • Energy Management: Built-in features for energy optimization

This guide walks through deploying OpenRemote on Klutch.sh using Docker.

Why Deploy OpenRemote on Klutch.sh

Deploying OpenRemote on Klutch.sh provides IoT infrastructure in the cloud:

Centralized Management: Manage IoT devices from anywhere with web access.

Persistent Storage: Store device data and configurations with persistent volumes.

HTTPS by Default: Secure communication with IoT devices and users.

Scalable Resources: Handle growing numbers of devices and data points.

Custom Domains: Use your organization’s domain for professional deployments.

Prerequisites

Before deploying OpenRemote on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your deployment
  • A PostgreSQL database instance
  • Understanding of IoT protocols and device management

Deploying OpenRemote on Klutch.sh

    Set Up PostgreSQL Database

    Deploy a PostgreSQL database on Klutch.sh with the PostGIS extension for geographic features.

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM openremote/manager:latest
    # Configure environment
    ENV OR_HOSTNAME=your-app.klutch.sh
    ENV OR_SSL_PORT=443
    ENV OR_ADMIN_PASSWORD=${ADMIN_PASSWORD}
    # Database configuration
    ENV OR_DB_VENDOR=postgres
    ENV OR_DB_HOST=${DB_HOST}
    ENV OR_DB_PORT=5432
    ENV OR_DB_NAME=openremote
    ENV OR_DB_USER=${DB_USER}
    ENV OR_DB_PASSWORD=${DB_PASSWORD}
    EXPOSE 8080
    CMD ["./launch.sh"]

    Push to GitHub

    Commit and push your Dockerfile to your GitHub repository.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create and Configure the App

    Create a new app and connect it to your GitHub repository.

    Configure HTTP Traffic

    Set the traffic type to HTTP with an internal port of 8080.

    Set Environment Variables

    Configure your deployment:

    VariableDescription
    ADMIN_PASSWORDAdmin account password
    DB_HOSTPostgreSQL host
    DB_USERDatabase username
    DB_PASSWORDDatabase password
    OR_HOSTNAMEYour deployment hostname

    Attach Persistent Volumes

    Add persistent storage:

    Mount PathRecommended SizePurpose
    /deployment10 GBDeployment data
    /storage50 GBTime-series data

    Deploy Your Application

    Click Deploy to build and launch your OpenRemote instance.

    Access Manager Console

    Access the OpenRemote Manager at your deployment URL. Log in with the admin credentials you configured.

    Configure Assets and Protocols

    Set up your asset model, connect IoT devices, and configure automation rules.

Additional Resources