https://github.com/lstep/surroundhome
SurroundHome
https://github.com/lstep/surroundhome
Last synced: 9 months ago
JSON representation
SurroundHome
- Host: GitHub
- URL: https://github.com/lstep/surroundhome
- Owner: lstep
- License: gpl-3.0
- Created: 2024-11-04T18:44:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-22T12:54:43.000Z (about 1 year ago)
- Last Synced: 2025-07-08T12:46:20.713Z (12 months ago)
- Language: Go
- Size: 6.01 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# SurroundHome
A modular home automation system written in Go that enables integration of various services and automation rules through a flexible architecture.
## Overview
SurroundHome is designed to be a flexible and extensible home automation platform that can handle various types of inputs and trigger corresponding actions based on configurable rules. The system uses NATS for communication between services, making it highly scalable and loosely coupled.
## Components
### REST Proxy Service
A service that provides a REST API interface for interacting with the system. It acts as an entry point for HTTP-based integrations and forwards requests to appropriate services through NATS.
## Plugins
### Obsidian New Discoveries Service
A service that integrates with Obsidian note-taking application to automatically add new discoveries and links to your daily notes through NATS messages.
## Features
- Modular architecture allowing easy addition of new services
- REST API interface for external integrations
- NATS-based communication between services
- Flexible rule-based automation system
- Support for various input types (REST, planned: CLI, web interface, clipboard)
## Getting Started
### Prerequisites
- Any specific requirements for individual services (e.g., Obsidian for obsidian-new-discoveries)
### Installation
1. Clone the repository
2. Install dependencies:
```bash
go mod download
```
3. Build and run desired services
## Roadmap
- [ ] Enhanced rule engine with DSL support for defining automation rules
- [ ] Additional input interfaces (CLI, web interface, clipboard)
- [ ] Optional authentication system
- [ ] Package generation for various platforms (DMG, DEB, etc.)
- [ ] Custom NATS proxy implementation for enhanced response handling
- [ ] Service-specific documentation
- [ ] Systemd service files for each component
## Contributing
Contributions are welcome! Each service should include:
- A detailed README
- Systemd service file
- Dockerfile for containerized deployment
## Thanks
- [NATS](https://nats.io/) for providing a reliable and scalable messaging system
- [Obsidian](https://obsidian.md/) for providing a powerful note-taking application
- [Go](https://golang.org/) for providing a fast and efficient programming language
- [Kaustav Das Modak](https://github.com/upspeak/upspeak) for providing a detailed and comprehensive guide on Ultra-lightweight NATS-based modular app framework in Go (https://kaustavdm.medium.com/ultra-lightweight-nats-based-modular-app-framework-in-go-860d210f46de)
## License
See the [LICENSE](LICENSE) file for details.