go4matic

module
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2020 License: Apache-2.0

README

pipeline status coverage report godoc Go Report Card

Go4Matic

Go4Matic is a home automation system that lets you control and connect various devices.

Features

  • Single binary - no dependencies
  • Simple setup - no complicated configuration files
  • Responsive web interface and dashboard
  • Expandable via plugins
  • Simple REST API to integrate in other applications
  • LUA script engine with optional graphical editor
  • Distributed setup - connect multiple instances together (*)

Features marked with (*) are not finished/implemented jet

Plugins

Go4Matic provides interface to extend the functionality and add integration to the application.

You can find a list of plugins that are maintained and provided with Go4Matic here as static plugins.

Additional it is possible load dynamic plugins at runtime. This can be useful to test a new version of a plugin or for plugins that should not be public.

Note: Dynamic plugins are only supported on Linux.

Build

To build the core application simply run the following command in the base directory of the repository.

go generate ./...
go build -v -o go4matic -tags 'prod' ./cmd/go4matic

go generate ./... will also load web dependencies from npm

This will build the core application and store it as go4matic in the current directory.

On Windows you should use go build -v -o go4matic.exe ./cmd/go4matic to get a executable application.

To build the application with dynamic plugin support add the tag dynplugin to the build command:

go build -v -o go4matic -tags 'prod dynplugin' ./cmd/go4matic

Run

Simply start the application with this command:

./go4matic

This will start the application in the current console and you can access the web interface via http://127.0.0.1:8080/.

TODO: how to start as service

Dependencies

The currently used go dependencies can be found in the go.mod.

The web interface is mainly based on AdminLTE. Versions of used dependencies can be found in the package.json.

For additional dependencies see the different Plugins.

The Raspberry image is based on alpine linux and build with the raspi-alpine-builder.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL