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…
- Fresh Debian 10 server installation – only thing installed apart from the default packages: SSH Server.
- 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.
- Using Weewx from source, not a package!
- 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!
- Assuming you’re running as root, not a non-root user.
sudois not installed on your Debian 10 machine/instance.
- Domain name example will be in the form of
- 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.
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.