Skip to content

Monitoring FullpageOS devices

Philipp Kewisch edited this page Dec 21, 2025 · 2 revisions

If you have multiple devices running FullpageOS (e.g. kiosks, displays, dashboards etc.), you might need to monitor them remotely for issues from time to time.

RaspberryPi Monitor Dashboard

RaspberryPi Monitor Dashboard can help with that. It allows monitoring unlimited number of devices. It is easy to install and requires just a simple Python script that runs on each FullpageOS device. You have a central dashboard for monitoring stats such as temperature, CPU load, free memory and it can even post a screenshot to the dashboard, so you have visual control.

Autossh

If you only need remote access and you have a public server or dyndns, you an use autossh to maintain a persistent connection. If you have many devices this will stop scaling because you have to remember which devices are on which ports, but for a few this could work out.

  1. On your jump host
    1. Create a user iot with /usr/sbin/nologin as shell and lock it using usermod -L iot
    2. Restrict what the iot user can do in your sshd_config:
      Match User iot
          AllowTcpForwarding yes
          AllowAgentForwarding no
          X11Forwarding no
          PermitTunnel no
          PermitTTY no
          ForceCommand echo "Port forwarding only"
          GatewayPorts no
      
  2. On your pi device:
    1. apt-get install autossh
    2. Generate keys (ssh-keygen) and add it to your jump host's ~iot/.ssh/authorized_keys. Make sure permissions are correct.
    3. Test autossh is working using the ExecStart commandline from below
    4. Set up a systemd service at /etc/systemd/system/autossh.service
    [Unit]
    Description=Persistent SSH tunnel using autossh
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    User=pi # Change this to your non-root username
    Environment=AUTOSSH_GATETIME=0
    ExecStart=/usr/bin/autossh -M 0 -N -T -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -R 2222:localhost:22 iot@jumphost.example.com 
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi user.target
    1. sudo systemctl daemon reload
    2. sudo systemctl enable autossh.service
    3. sudo systemctl start autossh.service
  3. To connect:
    1. ssh into your jump host
    2. ssh pi@localhost -p 2222 # Replace pi with your username
    3. Alternatively, you can use ProxyJump to connect directly from your machine by adding this your ~/.ssh/config:
      Host my-remote-pi
          User pi # Change this
          ProxyJump myjumphost.example.com
          Hostname localhost
          Port 2222
      

Clone this wiki locally