Start over with new install
I’m planning to do a reinstall of my signalk server this winter. Main reason is to get up to date with nodejs to avoid any issues during the summer.
Any recommendations on how to do a fresh install when I have a pi5 with a pecan-m hat?
14 Replies
I would switch to running sk in docker. All updates, including node version bumps, and rollbacks going forward are easier with that
Is there any installation guide for a docker install?
very little, but this would be a great time to improve it
https://demo.signalk.org/documentation/Installation/Docker.html
pinging @Karl-Erik Gustafsson as an avid docker user....
Docker | Signal K
Documentation for Signal K
Just had a M2 hat & 500Gb turn up so will during the set up try and take some notes for a change 😁
There are some plans to do guide/blog post about SK and docker, but heavy load on work has postponed this activity.
Very shortly.
Install Docker Engine to your computer/embedded platform. Install also docker-compose. Docker-compose is what you want you use at the end.
https://docs.docker.com/engine/install/ubuntu/#installation-methods
Follow the post-install steps to add rights to non-root user too
https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
https://docs.docker.com/compose/install/linux/#install-using-the-repository
Reboot.
Use SK docker-compose.yml for baseline. Copy yml file to your computer, to some suitable folder.
https://github.com/SignalK/signalk-server/blob/master/docker/docker-compose.yml
To keep setting stored, you might want to map .signalk folder from container to host. This will keep important files and settings stored in host.
You need to add this mapping to docker-compose.yml manually
Make
signalk_conf folder to same folder where you have the yml-file.
Now you are ready to pull image and start SK container first time.
docker-compose up -d starts it in detach mode, running in background.
More info about cli commands.
https://docs.docker.com/compose/intro/compose-application-model/#cli
up, down, pull, etc...
If you have not familiarized with docker or docker-compose yet, learning curve might be steep.
Pull image, listes in yml file
docker-compose pull
Up and detached
docker-compose up -d
Take down and stop
docker-compose down
Next steps, check cli command.
Couple of steps after that, check e.g. Portainer CE to manage dockers, images, stacks, remote machines via GUI.
Help is available.Simple so far here, followed Pimoroni/ perplexity instructions, copied working sd card to M.2 & set to boot from there. Booted straight away, system identical to before. Making another partition on the m.2 for data now to keep the system separate so it can be backed up to an SD card.
I sort of have it up and running on a test pi using some help from chat gpt. Got in to some permission issues, but was able to get it to run, but not sure if the method should be recommended, because I don’t know the details of what I am doing…
Ok, so done some adjustmens with GPT again. How does this guide look?
Compact guide: Signal K via Docker on Raspberry Pi (without PiCAN-M)
Flash SD card with Raspberry Pi OS Lite (64-bit) using Raspberry Pi Imager. Enable SSH, set hostname, timezone, Wi-Fi if needed.
Boot Pi and log in via SSH:
ssh pi@raspberrypi.local
sudo apt update && sudo apt full-upgrade -y
sudo reboot
Install Docker & Compose:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
sudo reboot
sudo apt install -y docker-compose-plugin
docker compose version
Prepare folders for persistent configuration:
mkdir -p ~/signalk/signalk_conf
cd ~/signalk
Create docker-compose.yml (no PiCAN-M yet, no privileged):
version: "3.8"
services:
signalk:
image: signalk/signalk-server
container_name: signalk
network_mode: host
restart: unless-stopped
volumes:
- ./signalk_conf:/home/node/.signalk
environment:
- TZ=Europe/Oslo
Start Signal K:
docker compose pull
docker compose up -d
docker logs -f signalk
Access GUI:
http://raspberrypi.local:3000
(or use the Pi’s IP if .local doesn’t work). First launch prompts for admin account creation—no default login.
Stop container if needed:
docker compose down
Notes:
All settings persist in signalk_conf.
When PiCAN-M is installed later, add privileged: true and configure can0.
Optional: use Portainer CE to manage containers via GUI.
Docker compose is part of docker nowadays, i don’t think the plugin is needed
Correct!
The older
docker-compose is now available as docker composeCould somebody update this https://github.com/SignalK/signalk-server/blob/master/docs/installation/docker.md
GitHub
signalk-server/docs/installation/docker.md at master · SignalK/sig...
An implementation of a Signal K central server for boats. - SignalK/signalk-server
Sorry, I don’t know the difference between with - and without-
those are two different commands
Serial device and gpio access are missing from above
docker-compose "old & original" Python script based, docker compose "new v2" Go implementation.