SignalK-server, Telegraf, Influxdb and Grafana in docker. mDNS services (no-root) are discoverable from docker. SignalK is based on Node 16. Previous versions are based on Node 12 & 14. See upgrade noted below.
git clone https://github.com/KEGustafsson/SignalK-Telegraf-Influxdb-Grafana-in-docker.git
├── SignalK-Telegraf-Influxdb-Grafana-in-docker
│ └── signalk docker files located here
├── signalk_conf
│ └── .signalk -folder is located here (bind mount)
└── signalk_volume
├── influxdb
│ └── influx database files are located here (bind mount)
├── grafana
│ └── grafana config files are located here (bind mount)
└── telegraf
└── telegraf config file is located here (bind mount)1st Intallation:
- Run run_me_1st.sh when installing SignalK, Telegraf, Influxdb and Grafana at first time (do not use sudo to run this script).
- In case Influxdb is selected, then database "boatdata" is generated. If you want retention policy active, uncomment respective lines. Alter settings before running it if you want other name and different retention policy for the database.
Select setup
1: SignalK
2: SignalK + Influxdb and Grafana
3: SignalK + Influxdb + Grafana and TelegrafUpdate/Upgarde:
- Run update.sh when need to be updated SignalK, Telegraf, Influxdb or Grafana
SignalK
- Running in default port 3000
Grafana:
- Running in port 3001
- TODO: Data Source (boatdata) is automatically provisioned to Grafana
Influxdb:
- Running in default port 8086
Telegraf:
- Telegraf has a dummy telegraf.conf installed after run_me_1st.sh was run. Edit configuration according to your needs (input: data sources and output: influxdb database, urls, username and password) and restart docker-compose. If you do not need telegraf, you don't need to do anything.
To use specific SignalK ENV parameters (https://github.com/SignalK/signalk-server#environment-variables):
- uncomment Dockerfile ENV selection and specify parameters there
Docker & Docker-compose:
- Install proper dependencies, Docker and Docker Compose
curl -sSL https://get.docker.com | sh
sudo apt-get install -y libffi-dev libssl-dev
sudo apt-get install -y python3 python3-pip
sudo apt-get remove python-configparser
python3 -m pip install -U pip
sudo pip3 install docker-compose- Post-installation steps for Linux (https://docs.docker.com/engine/install/linux-postinstall/)
sudo groupadd docker
sudo usermod -aG docker $USERManual installation
docker-compose pull
docker-compose up -dUp/Down:
docker-compose up -d
docker-compose down(-d run service as a daemon)
Start/Stop/Restart:
docker-compose start
docker-compose stop
docker-compose restartStart/Stop/Restart individual service e.g. SignalK and rest of the stack will remain untouched
docker-compose start signalk-server
docker-compose stop signalk-server
docker-compose restart signalk-serverNote for upgrading: Old versions were using Node 12 & 14 and therefore you need to remove /home/node/.signalk/node_modules -folder and re-install node modules.
Enter inside signalk-server docker and remove folder, below is example:
docker exec -it signalk-server bash
cd ./../.signalk
rm -rf node_modules
npm i
exitand then restart docker or docker-compose
docker-compose restart signalk-serverTest on Intel/AMD (x86_64) and ARM64 (aarch64) platforms.