openHAB Cloud is a companion cloud service for openHAB, the open-source home automation platform. It provides:
- Secure Remote Access - Access your openHAB instance from anywhere
- Push Notifications - Receive notifications on iOS and Android devices
- OAuth2 Provider - Enable third-party applications to access openHAB
- Runtime: Node.js 22+ with TypeScript
- Web Framework: Express.js
- Database: MongoDB 6+
- Cache/Sessions: Redis 7+
- Real-time: Socket.IO
- Reverse Proxy: Nginx (production)
- Node.js 22 or higher
- MongoDB 6+
- Redis 7+
# Clone the repository
git clone https://github.com/openhab/openhab-cloud.git
cd openhab-cloud
# Install dependencies
npm install
# Copy and configure settings
cp config-production.json config.json
# Edit config.json with your settings
# Start the server
npm startThe server will be available at http://localhost:3000.
Edit config.json to configure:
- MongoDB connection settings
- Redis connection settings
- System host, port, and protocol
- Mail SMTP settings for notifications
- Push notifications (Firebase, APNs)
- OAuth2 client settings
See config-production.json for all available options.
Official Docker images are available on Docker Hub:
docker pull openhab/openhab-cloudSee openhab/openhab-cloud for available tags and usage instructions.
# Start all services (MongoDB, Redis, App, Nginx)
docker compose up -d
# View logs
docker compose logs -fSee deployment/docker-compose/README.md for detailed instructions.
See DEVELOPMENT.md for the full development guide, including project structure, architecture, all npm scripts, testing, and where to add new code.
GET /api/v1/notifications- Get user notificationsPOST /api/v1/notifications- Send a notificationGET /api/v1/settings/notifications- Get notification settings
openHAB instances connect via Socket.IO and communicate using:
request/response*- HTTP proxy requestsnotification/broadcastnotification- Push notificationscommand- Item commands
- Fork the repository
- Create a feature branch
- Write tests for new functionality
- Ensure all tests pass:
npm test - Submit a pull request
Eclipse Public License 2.0. See LICENSE for details.