Updated Guide: Weewx, Nginx, Belchertown, MQTT/WS

This is an updated and streamlined guide for the installation of Weewx 4.x, with the Belchertown 1.1 GUI, Nginx, the MQTT/WebSockets extension, mosquitto, and Let’s Encrypt, because well – WebSockets require SSL… on a new Debian 10 installation.

The old guide can be found here – which is a mess and shouldn’t be used.

Things to keep in mind…

  1. Fresh Debian 10 server installation – only thing installed apart from the default packages: SSH Server.
  2. Using Nginx, MySQL (MariaDB) for the general heave-ho’ing of data. No need for PHP or FPM here!
    • Note: MySQL in my instance is on a remote machine. This is to minimize read/writes to the Virtual Machine disk.
    • Once Weewx is installed and fully configured, and you want to use MySQL/MariaDB for your database operations… head over to this page: https://github.com/weewx/weewx/wiki/Transfer-from-sqlite-to-MySQL to begin the transfer from SQLite to MySQL/MariaDB.
  3. Using Weewx from source, not a package!
  4. For this writeup, all hardware/software will be confined to a single machine instance. It is worth noting that you’re better off moving database operations to another machine if possible!
  5. Assuming you’re running as root, not a non-root user.
  6. Assuming sudo is not installed on your Debian 10 machine/instance.
  7. Domain name example will be in the form of yourdomain.com.
  8. You will need two DNS records set up and pointed to the IP of the server/line hosting Nginx. One for the weather domain, can either be a root domain or a sub-domain – up to you. But you will need to have a CNAME or A record set up for the weewx-socket record.
    • weewx.yourdomain.com
    • weewx-socket.yourdomain.com

This entire write up will be broken up into a page-by-page breakdown. It’s rather long.

Page Two: Covers installation of core components.
Page Three: Belchertown Skin prerequisites.
Page Four: Nginx Configuration.
Page Five: Belchertown install and configuration.