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 environmentENV OR_HOSTNAME=your-app.klutch.shENV OR_SSL_PORT=443ENV OR_ADMIN_PASSWORD=${ADMIN_PASSWORD}
# Database configurationENV OR_DB_VENDOR=postgresENV OR_DB_HOST=${DB_HOST}ENV OR_DB_PORT=5432ENV OR_DB_NAME=openremoteENV 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:
| Variable | Description |
|---|---|
ADMIN_PASSWORD | Admin account password |
DB_HOST | PostgreSQL host |
DB_USER | Database username |
DB_PASSWORD | Database password |
OR_HOSTNAME | Your deployment hostname |
Attach Persistent Volumes
Add persistent storage:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/deployment | 10 GB | Deployment data |
/storage | 50 GB | Time-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.