Skip to content

Remote CAN Monitoring via Web Browser

SeerWatch can run as a headless server and serve its full UI to a web browser — so you can monitor a CAN network from anywhere. This guide covers running the server and connecting to it securely.

Common use cases

  • A test rig in a lab you connect to from your desk.
  • A Linux SBC or SoC, such as a Raspberry Pi or Nvidia Jetson, wired to a vehicle or bench CAN bus.

You can try out remote access on your local computer to get a feel for it.

On a computer with CAN hardware start SeerWatch with the serve parameter:

Terminal window
seerwatch serve

By default this binds to localhost and listens on port 8080. On the same machine, open this address in your web browser:

http://127.0.0.1:8080

That’s it! Now you can monitor live CAN traffic from your web browser, just like you can with the native GUI.

To reach it from another machine on your network, the recommended way is to use SSH. SSH opens a secure connection to the remote machine, making it safe to use on any network.

SSH with port forwarding to forward the application port to your local PC:

Terminal window
ssh -L 8080:localhost:8080 <user>@<host-ip>

Start the SeerWatch server on the remote host:

Terminal window
seerwatch serve

Then open the application port locally with your web browser:

http://127.0.0.1:8080

If you want to expose the SeerWatch server without SSH you can use the bind parameter to specify which IP adddress to bind to. 0.0.0.0 will bind to all IP address.

This will make SeerWatch reachable to anything on your LAN. This is typically fine if you are on a trusted network. If you are accessing across untrusted networks, use SSH.

On the machine with physical CAN connections run

Terminal window
seerwatch serve --bind 0.0.0.0

Then from your local machine, open a browser to the remote host’s IP:

http://<host-ip>:8080

Find the host’s IP with ip addr on the host (look for its LAN address, e.g. 192.168.1.42).

You can specify the IP address and port you want to bind to with custom flags. Use 0.0.0.0 to bind to all interfaces. port for the specific port you want.

Terminal window
seerwatch serve --bind 0.0.0.0 --port 9000
# http://<host-ip>:9000

More than one browser can connect to the same server at the same time. If you and a colleague are working together to debug a CAN bus issue, you can both connect from your PC web browser and see all the traffic.

If the network blips, the browser reconnects on its own. Your transmit configurations are preserved, but any periodic transmissions will be stopped. You can restart them after reconnecting.