Mobius4 Prerequisites Installation Guide
April 4, 2026 · View on GitHub
This guide covers installing all prerequisites for Mobius4 on each supported OS.
| Software | Required version | Windows | macOS | Linux |
|---|---|---|---|---|
| Node.js | v22 | Official installer | Official installer | NodeSource |
| PostgreSQL | v17 | EDB installer | Homebrew | PGDG apt repo |
| PostGIS | 3.x | StackBuilder | Homebrew | PGDG apt repo |
| Mosquitto | 2.x | Official installer | Homebrew | apt |
Windows
Node.js v22
Download and run the official Node.js 22 Windows installer from: https://nodejs.org/en/download/
Select LTS and choose the Windows Installer (.msi) for x64. The installer adds node and npm to PATH automatically.
Verify:
node --version
npm --version
Managing multiple Node.js versions — If you need to switch between Node.js versions across different projects, use nvm-windows instead:
- Uninstall any existing Node.js installation first to avoid conflicts.
- Download
nvm-setup.exefrom the releases page and run the installer. - Open a new Administrator terminal (required for the first
nvm usecall, which creates a symlink inProgram Files):
nvm install 22
nvm use 22
PostgreSQL v17
Use the EDB interactive installer — the official PostgreSQL project distribution for Windows.
- Download the PostgreSQL 17 Windows installer from: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads (select version 17.x, Windows x86-64)
- Run the
.exeas Administrator. The wizard installs the PostgreSQL server, pgAdmin 4, StackBuilder, and command-line tools. - During setup, set a superuser (
postgres) password and note the port (default:5432). - The
postgresql-x64-17service is registered and starts automatically.
Verify:
psql -U postgres -c "SELECT version();"
PostGIS
Use StackBuilder, which is installed alongside PostgreSQL.
- Launch Stack Builder from: Start Menu > PostgreSQL 17 > Application Stack Builder
- Select your PostgreSQL 17 installation from the dropdown.
- Expand Spatial Extensions and check PostGIS 3.x Bundle for PostgreSQL 17.
- Click Next and follow the installer wizard.
After installation, enable PostGIS in your database:
CREATE EXTENSION postgis;
Mosquitto
- Download the installer from:
https://mosquitto.org/download/
(select
mosquitto-2.x.x-install-windows-x64.exe) - Run the installer. During component selection, check Service and Visual Studio Runtime.
Required configuration — Mosquitto v2+ rejects all connections without explicit configuration. Edit:
C:\Program Files\mosquitto\mosquitto.conf
Add the following lines:
listener 1883 0.0.0.0
allow_anonymous true
Restart the service (run as Administrator):
sc stop mosquitto
sc start mosquitto
Verify (open two separate terminals):
mosquitto_sub -h localhost -t "test"
mosquitto_pub -h localhost -t "test" -m "hello"
macOS
Node.js v22
Download and run the official Node.js 22 macOS installer from: https://nodejs.org/en/download/
Select LTS and choose the macOS Installer (.pkg). The installer adds node and npm to PATH automatically.
Verify:
node --version
npm --version
Managing multiple Node.js versions — If you need to switch between Node.js versions across different projects, use nvm instead:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
source ~/.zshrc
nvm install 22
nvm use 22
nvm alias default 22
PostgreSQL v17
brew install postgresql@17
PATH setup — Homebrew installs this as a keg-only formula and does not add it to PATH automatically.
Apple Silicon (M1/M2/M3):
echo 'export PATH="/opt/homebrew/opt/postgresql@17/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Intel Mac:
echo 'export PATH="/usr/local/opt/postgresql@17/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Start the service (auto-starts on login):
brew services start postgresql@17
Verify:
psql postgres -c "SELECT version();"
PostGIS
brew install postgis
Enable PostGIS in your database:
CREATE EXTENSION postgis;
Verify:
SELECT PostGIS_Version();
Mosquitto
brew install mosquitto
brew services start mosquitto
Required configuration — Mosquitto v2+ rejects all connections without explicit configuration. Edit the config file:
- Apple Silicon:
/opt/homebrew/etc/mosquitto/mosquitto.conf - Intel Mac:
/usr/local/etc/mosquitto/mosquitto.conf
Add the following lines:
listener 1883 0.0.0.0
allow_anonymous true
Restart after editing:
brew services restart mosquitto
Linux (Ubuntu / Debian)
Node.js v22
Install Node.js 22 via the NodeSource repository (system-wide):
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
Verify:
node --version
npm --version
Managing multiple Node.js versions — If you need to switch between Node.js versions across different projects, use nvm instead:
sudo apt update && sudo apt install -y curl build-essential
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22
nvm alias default 22
PostgreSQL v17
Important: Do not use
sudo apt install postgresql— this installs the version bundled with your Ubuntu/Debian release (v14 or v16), not v17. You must add the official PGDG repository.
Step 1 — Add the PGDG repository:
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
The script auto-detects your release codename and adds the correct repository source.
Step 2 — Install PostgreSQL 17:
sudo apt install -y postgresql-17
The service starts automatically. Verify:
sudo systemctl status postgresql
sudo -u postgres psql -c "SELECT version();"
PostGIS
The PGDG repository (added above) provides the correct PostGIS package for PostgreSQL 17:
sudo apt install -y postgresql-17-postgis-3 postgresql-17-postgis-3-scripts
Note: Do not use the plain
postgispackage from Ubuntu's default repositories — it may be built against a different PostgreSQL version.
Enable PostGIS in your database:
sudo -u postgres psql -d mobius4 -c "CREATE EXTENSION postgis;"
Mosquitto
sudo apt update
sudo apt install -y mosquitto mosquitto-clients
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
Required configuration — Mosquitto v2+ rejects all connections without explicit configuration. Create the file /etc/mosquitto/conf.d/default.conf:
sudo tee /etc/mosquitto/conf.d/default.conf <<'EOF'
listener 1883 0.0.0.0
allow_anonymous true
EOF
Restart after creating the file:
sudo systemctl restart mosquitto
Verify:
mosquitto_sub -h localhost -t "test" &
mosquitto_pub -h localhost -t "test" -m "hello"