GOST - Go implementation of OGC SensorThings API
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
configuration Add MQTT configuration options: Nov 20, 2018
database/postgis
errors transfer repository Jul 17, 2017
http
log Added debug log lines for HTTP requests: start and done (with timing) Sep 8, 2017
mqtt
sensorthings now returning correct data when type JSON is used for observation result Oct 8, 2018
.gitignore re-add the Gopkg lock file Aug 31, 2017
.travis.yml Update travis.yml Aug 1, 2017
Dockerfile using multi-stage Docker build Sep 19, 2017
Dockerfile-rpi
Gopkg.lock
Gopkg.toml switch to branch master for Paho Nov 29, 2018
LICENSE Removed dependencies from server/entities ready for move to gost/core Sep 1, 2017
README.md Update README.md Mar 22, 2018
config.yaml Add MQTT configuration options: Nov 20, 2018
main.go refactor: using arrayreponse code from gost/core Sep 11, 2017
main_test.go transfer repository Jul 17, 2017

README.md


MIT licensed API DOC GoDoc Build Status Go Report Card Coverage Status Join the chat at https://gitter.im/gost/Lobby Join Slack

GOST (Go-SensorThings) is an IoT Platform written in Golang (Go). It implements the Sensing profile (part 1) of the [OGC SensorThings API] (http://ogc-iot.github.io/ogc-iot-api/api.html) standard including the MQTT extension.


Implementation of the Tasking profile (part 2) and Rules Engine profile (part 3) of the OGC SensorThings API is planned as a future work activity.

The GOST website and blog can be found at www.gostserver.xyz

Disclaimer

GOST is alpha software and is not (yet) considered appropriate for customer use. Feel free to help development :-)

Binaries

Current release V0.5: 2017-07-17

Binaries are build for Windows, Ubuntu and OSX.

Roadmap

Date Version Features
2018-05-01 0.6 new dashboard (based on polymer/webcomponents) + bugfixes for locations

Benchmarks

For benchmarks see http://www.github.com/gost/benchmarks.

Run GOST with Docker-compose

For more information about running GOST with Docker-compose, see GOST Docker support.

For more information about running GOST in Raspberry Pi with Docker-compose, see How to run GOST on Raspberry Pi.

Run GOST Server in Docker

For making connection to external database use environmental variables GOST_DB_HOST, GOST_DB_PORT, GOST_DB_DATABASE, GOST_DB_USER, GOST_DB_PASSWORD

$ docker run -d -p 8080:8080 -t -e GOST_DB_HOST=192.168.40.10 -e GOST_DB_DATABASE=gost --name gost geodan/gost

For using your config own file, create a mount:

$ docker run -v myconfiglocation:/gostserver/config geodan/gost -config /gostserver/config/myconfig.yaml

Build GOST server Docker image

$ docker build -t geodan/gost .

Build GOST server for Raspberry Pi

note: building the Raspberry Pi image must be done on a Raspberry Pi :-(, otherwise errors will occur.

$ sudo docker build -f Dockerfile-rpi -t geodan/rpi-gost .

$ sudo docker push geodan/rpi-gost

OGC Compliance testing status

GOST is being tested against the OGC SensorThings API Test Suite 1.0 https://github.com/opengeospatial/ets-sta10

Conformance Class Reference Implementation status Test Status
Sensing Core A.1 beta 6/6
Filtering Extension A.2 beta 8/8
Create-Update-Delete A.3 beta 9/9
Batch Request A.4 - Tests not implemented
Sensing MultiDatastream Extension A.5 - Tests not implemented
Sensing Data Array Extension A.6 - Tests not implemented
MQTT Extension for Create and Update A.7 alpha Tests not implemented
MQTT Extension for Receiving Updates A.8 alpha Tests not implemented

Status GOST on OGC site: http://www.opengeospatial.org/resource/products/details/?pid=1419

Manual Installation and configuration

GOST installation

GOST configuration

Security

GOST security

Samples

Apiary API Docs

HTTP API: For sample requests (setting up sensors/datastreams/things and adding observations) see the tests in the playground. For a complete collection of working requests install Postman and import the Postman file

MQTT: For getting started with Gost and MQTT for publishing/receiving data see GOST and MQTT - Getting started

Goals

  • Complete implementation of the OGC SensorThings spec
  • Test coverage!
  • Frontend
  • Benchmarks
  • Authentication
  • Different storage providers such as MongoDB (Now using PostgreSQL)