Skip to content

EdgeX Golang Services Monorepo | Owner: Core/Support WG

License

Notifications You must be signed in to change notification settings

lanhei/edgex-go

 
 

Repository files navigation

EdgeX Foundry Services

Go Report Card license

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.

Get Started

EdgeX provides docker images in our organization's DockerHub page. They can be launched easily with docker-compose.

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

wget -O docker-compose.yml \
https://raw.githubusercontent.com/edgexfoundry/developer-scripts/master/releases/nightly-build/compose-files/docker-compose-nexus-redis.yml
docker-compose up -d

You can check the status of your running EdgeX services by going to https://localhost:8500/

Now that you have EdgeX up and running, you can follow our API Walkthrough to learn how the different services work together to connect IoT devices to cloud services.

Running EdgeX with security components

Starting with the Fuji release, EdgeX includes enhanced security features that are enabled by default. There are 3 major components that are responsible for security features:

  • Security-secrets-setup
  • Security-secretstore-setup
  • Security-proxy-setup

When security features are enabled, additional steps are required to access the resources of EdgeX.

  1. The user needs to create an access token and associate every REST request with the access token.
  2. The exported external ports (such as 48080, 48081 etc.) will be inaccessible for security purposes. Instead, all REST requests need to go through the proxy. The proxy will redirect the request to the individual microservices on behalf of the user.

Sample steps to create an access token and use the token to access EdgeX resources can be found here: Security Components

Other installation and deployment options

Snap Package

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

Native binaries

Prerequisites

Go
  • The current targeted version of the Go language runtime for release artifacts is v1.13.x
  • The minimum supported version of the Go language runtime is v1.13.x (currently v1.13)
pkg-config

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

ZeroMQ

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

The easiest way to get and install ZeroMQ on Linux is to use this setup script.

For macOS, use brew:

brew install zeromq

For directions installing ZeroMQ on Windows, please see the Windows documentation.

pkg-config

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

On Linux, add this line to your local profile: