README.md 4.98 KB
Newer Older
Marco Gonzalez Hierro's avatar
Marco Gonzalez Hierro committed
1 2 3
# edgex-go Konnekt fork

This fork includes the following changes to edinburgh (1.0.0) version of edgex-go:
Marco Gonzalez Hierro's avatar
Marco Gonzalez Hierro committed
4
- [Export Distro] Added CA cert to MQTT secure connection (located in /certs/ca.pem)
5
- [Export Distro] Added a workaround to use KonnektBox message format (JSON) inside NOOP handler
Marco Gonzalez Hierro's avatar
Marco Gonzalez Hierro committed
6 7
- [Config Seed] Changed default config of export distro service to point certs in /certs/export.crt and /certs/export.key

8
# EdgeX Foundry Services
9

drasko's avatar
drasko committed
10 11
[![Go Report Card](https://goreportcard.com/badge/github.com/edgexfoundry/edgex-go)](https://goreportcard.com/report/github.com/edgexfoundry/edgex-go)
[![license](https://img.shields.io/badge/license-Apache%20v2.0-blue.svg)](LICENSE)
Federico Claramonte's avatar
Federico Claramonte committed
12

13
EdgeX Foundry is a vendor-neutral open source project hosted by The Linux Foundation building a common open framework for IoT edge computing.  At the heart of the project is an interoperability framework hosted within a full hardware- and OS-agnostic reference software platform to enable an ecosystem of plug-and-play components that unifies the marketplace and accelerates the deployment of IoT solutions.  This repository contains the Go implementation of EdgeX Foundry microservices.  It also includes files for building the services, containerizing the services, and initializing (bootstrapping) the services.
Federico Claramonte's avatar
Federico Claramonte committed
14

15
# Get Started
16

17 18
EdgeX provides docker images in our organization's [DockerHub page](https://hub.docker.com/u/edgexfoundry/).
They can be launched easily with **docker-compose**.
Federico Claramonte's avatar
Federico Claramonte committed
19

20
The simplest way to get started is to fetch the latest docker-compose.yml and start the EdgeX containers:
21 22

```sh
23 24 25
wget https://raw.githubusercontent.com/edgexfoundry/developer-scripts/master/compose-files/docker-compose.yml
docker-compose up -d
```
26

27 28 29 30 31
You can check the status of your running EdgeX services by going to http://localhost:8500/

Now that you have EdgeX up and running, you can follow our [API Walkthrough](https://docs.edgexfoundry.org/Ch-Walkthrough.html) to learn how the different services work together to connect IoT devices to cloud services.

# Other installation and deployment options
32

33
## Snap Package
34

35 36 37 38 39 40
EdgeX Foundry is also available as a snap package, for more details
on the snap, including how to install it, please refer to [EdgeX snap](https://github.com/edgexfoundry/edgex-go/blob/master/snap/README.md)

## Native binaries

### Prerequisites
41

Trevor Conn's avatar
Trevor Conn committed
42
#### Go
43

Trevor Conn's avatar
Trevor Conn committed
44
The current targeted version of the Go language runtime is v1.11.5
45 46

#### pkg-config
47

48 49
`go get github.com/rjeczalik/pkgconfig/cmd/pkg-config`

50
#### ZeroMQ
51

52 53
Several EdgeX Foundry services depend on ZeroMQ for communications by default.

54 55
The easiest way to get and install ZeroMQ on Linux is to use this [setup script](https://gist.github.com/katopz/8b766a5cb0ca96c816658e9407e83d00).

56 57 58
For macOS, use brew:

```sh
59
brew install zeromq
60
```
61

62
For directions installing ZeroMQ on Windows, please see [the Windows documentation.](ZMQWindows.md)
Drasko DRASKOVIC's avatar
Drasko DRASKOVIC committed
63

64 65 66
#### pkg-config

The necessary file will need to be added to the `PKG_CONFIG_PATH` environment variable.
67

68
On Linux, add this line to your local profile:
69 70

```sh
71 72 73 74
export PKG_CONFIG_PATH=/usr/local/Cellar/zeromq/4.2.5/lib/pkgconfig/
```

For macOS, install the package with brew:
75 76

```sh
77 78
brew install pkg-config
```
Federico Claramonte's avatar
Federico Claramonte committed
79

80
### Installation and Execution
81 82 83 84 85 86 87 88

EdgeX is organized as Go Modules; there is no requirement to set the GOPATH or
GO111MODULE envrionment variables nor is there a requirement to root all the components under ~/go
(or $GOPATH) and use the `go get` command. In other words,

```sh
git clone git@github.com:edgexfoundry/edgex-go.git
cd edgex-go
Trevor Conn's avatar
Trevor Conn committed
89
make build
Drasko DRASKOVIC's avatar
Drasko DRASKOVIC committed
90
```
91 92 93 94 95

If you do want to root everthing under $GOPATH, you're free to use that pattern as well

```sh
GO111MODULE=on && export GO111MODULE
96 97 98
go get github.com/edgexfoundry/edgex-go
cd $GOPATH/src/github.com/edgexfoundry/edgex-go
make build
Drasko DRASKOVIC's avatar
Drasko DRASKOVIC committed
99
```
Federico Claramonte's avatar
Federico Claramonte committed
100

101
To start EdgeX
102

103 104
```sh
make run
105
```
106 107 108 109

or

```sh
110
cd bin
111
./edge-launch.sh
112
```
113 114 115 116

**Note** You must have a database (Mongo or Redis) running before the services will operate
correctly. If you don't want to install a database locally, you can host one via Docker. You may
also need to change the `configuration.toml` files for one or more of the services.
117 118 119

## Build your own Docker Containers

120
In addition to running the services directly, Docker and Docker Compose can be used.
121

122
### Prerequisites
Federico Claramonte's avatar
Federico Claramonte committed
123

124 125 126 127 128 129 130 131
See [the install instructions](https://docs.docker.com/install/) to learn how to obtain and install Docker.

### Installation and Execution

Follow the "Installation and Execution" steps above for obtaining and building the code, then

```sh
make docker run_docker
Federico Claramonte's avatar
Federico Claramonte committed
132
```
133 134

**Note** The default behavior is to use Mongo for the database, use the command `make EDGEX_DB=redis run_docker` to start EdgeX with Redis.
Tony Espy's avatar
Tony Espy committed
135

136
# Community
137

138
- Chat: [https://edgexfoundry.slack.com](https://join.slack.com/t/edgexfoundry/shared_invite/enQtNDgyODM5ODUyODY0LWVhY2VmOTcyOWY2NjZhOWJjOGI1YzQ2NzYzZmIxYzAzN2IzYzY0NTVmMWZhZjNkMjVmODNiZGZmYTkzZDE3MTA)
139
- Mailing lists: https://lists.edgexfoundry.org/mailman/listinfo
Federico Claramonte's avatar
Federico Claramonte committed
140

141
# License
142

Federico Claramonte's avatar
Federico Claramonte committed
143
[Apache-2.0](LICENSE)
Maria A. Serrano's avatar
Maria A. Serrano committed
144 145 146

# Acknowledgements
This work has been supported by the EU H2020 project ELASTIC, contract #825473.