Download, install and run EdgeX Foundry in 5 min on Ubuntu 18.04 server

It’s extremely quick to get started with EdgeX Foundry. Less than 5 minutes – including installing Docker and Docker-compose (provided you have a reasonable internet connection).

Note: This is for the Edinburgh 1.01 release. Other releases can be downloaded from here: link

For the impatient: All required commands: link

Install docker-ce

vagrant@EdgeXblog:~$ sudo apt update
 Get:1 bionic-security InRelease [88.7 kB]
 Hit:2 bionic InRelease  
 Get:3 bionic-updates InRelease [88.7 kB]                                       
 Get:4 bionic-security/main i386 Packages [380 kB]   
 Get:5 bionic-backports InRelease [74.6 kB]                     
vagrant@EdgeXblog:~$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 ca-certificates is already the newest version (20180409).
vagrant@EdgeXblog:~$ curl -fsSL | sudo apt-key add -
vagrant@EdgeXblog:~$ sudo add-apt-repository "deb [arch=amd64] bionic stable"
 Get:1 bionic InRelease [64.4 kB]
 Get:2 bionic/stable amd64 Packages [8,880 B]                                                
 Hit:3 bionic InRelease                                                 
 Hit:4 bionic-security InRelease                                   
 Hit:5 bionic-updates InRelease  
vagrant@EdgeXblog:~$ sudo apt update
 Hit:1 bionic InRelease
 Hit:2 bionic-security InRelease                                   
 Hit:3 bionic InRelease
vagrant@EdgeXblog:~$ sudo apt install docker-ce
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 The following additional packages will be installed:
vagrant@EdgeXblog:~$ sudo usermod -aG docker ${USER}

Download and install docker-compose

vagrant@EdgeXblog:~$ sudo curl -L "$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100   617    0   617    0     0   1804      0 --:--:-- --:--:-- --:--:--  1804
 100 15.4M  100 15.4M    0     0  4251k      0  0:00:03  0:00:03 --:--:-- 5278k
vagrant@EdgeXblog:~$ sudo chmod 755 /usr/local/bin/docker-compose

Download the EdgeX Foundry docker-compose.yml file

This is for the Edinburgh release, version 1.0.1. Others, including older releases, can be found here: link

vagrant@EdgeXblog:~$ wget
 --2019-10-11 08:46:28--
 Resolving (…
 Connecting to (||:443… connected.
vagrant@EdgeXblog:~$ cp docker-compose-edinburgh-no-secty-1.0.1.yml docker-compose.yml

Pull the docker images from docker hub

vagrant@EdgeXblog:~$ sudo docker-compose pull
 Pulling volume         … done
 Pulling consul         … done
 Pulling config-seed    … done
 Pulling mongo          … done
 Pulling logging        … done
 Pulling system         … done
 Pulling notifications  … done
 Pulling metadata       … done
 Pulling data           … done
 Pulling command        … done
 Pulling scheduler      … done
 Pulling export-client  … done
 Pulling export-distro  … done
 Pulling rulesengine    … done
 Pulling device-virtual … done
 Pulling ui             … done
 Pulling portainer      … done

Start EdgeX Foundry

vagrant@EdgeXblog:~$ sudo docker-compose up -d
 Creating network "vagrant_edgex-network" with driver "bridge"
 Creating network "vagrant_default" with the default driver
 Creating volume "vagrant_db-data" with default driver
 Creating volume "vagrant_log-data" with default driver
 Creating volume "vagrant_consul-config" with default driver
 Creating volume "vagrant_consul-data" with default driver

List containers and ports

vagrant@EdgeXblog:~$ sudo docker-compose ps
            Name                          Command               State                                 Ports                              
 edgex-config-seed             /edgex/cmd/config-seed/con …   Exit 0                                                                   
 edgex-core-command            /core-command --registry - …   Up>48082/tcp                                        
 edgex-core-consul    agent …   Up       8300/tcp, 8301/tcp, 8301/udp, 8302/tcp, 8302/udp,               
                                                               >8600/tcp, 8600/udp                                
 edgex-core-data               /core-data --registry --pr …   Up>48080/tcp,>5563/tcp                
 edgex-core-metadata           /core-metadata --registry  …   Up>48081/tcp, 48082/tcp                             
 edgex-device-virtual          /device-virtual --profile= …   Up>49990/tcp                                        
 edgex-export-client           /export-client --registry  …   Up>48071/tcp                                        
 edgex-export-distro           /export-distro --registry  …   Up>48070/tcp,>5566/tcp                
 edgex-files                   /bin/sh -c /usr/bin/tail - …   Up                                                                       
 edgex-mongo          /bin/ …   Up>27017/tcp                                        
 edgex-support-logging         /support-logging --registr …   Up>48061/tcp                                        
 edgex-support-notifications   /support-notifications --r …   Up>48060/tcp                                        
 edgex-support-rulesengine     /bin/sh -c java -jar -Djav …   Up>48075/tcp                                        
 edgex-support-scheduler       /support-scheduler --regis …   Up>48085/tcp                                        
 edgex-sys-mgmt-agent          /sys-mgmt-agent --registry …   Up>48090/tcp                                        
 edgex-ui-go                   ./edgex-ui-server                Up>4000/tcp                                          
 vagrant_portainer_1           /portainer -H unix:///var/ …   Up>9000/tcp                           

Access EdgeX Foundry

Either access directly via the API’s or use the console on port 4000: “http://<ubuntu ip>:4000”.

  • Username: “admin”
  • Password: “admin”

Shut down EdgeX Foundry

Not that you would ever want to, but just in case: Stopping EdgeX Foundry containers can be done as per the below. Make sure the command is executed in the same directory as the “docker-compose.yml” file is located in.

vagrant@EdgeXblog:~$ sudo docker-compose stop
 Stopping edgex-device-virtual        … done
 Stopping edgex-ui-go                 … done
 Stopping edgex-support-rulesengine   … 
 Stopping edgex-export-distro         … 
 Stopping edgex-support-scheduler     … 
 Stopping edgex-core-command          …