Requirements
Supported platforms
GEM runs on Linux. You can install it two ways:
- Native Linux — Ubuntu 24.04 LTS is the reference platform. Other modern distributions work but are less tested.
- Windows 10/11 via WSL — the Windows installer sets up WSL with Ubuntu 24.04 and runs GEM inside it. From the operating system's point of view GEM is still running on Linux; WSL is the host.
:::info Why WSL on Windows? GEM is a Linux application. Rather than maintain a separate native Windows build, the Windows installer provisions a managed WSL instance (Ubuntu 24.04) and installs GEM there. The installer configures mirrored networking so the server is reachable on the LAN as if it were a native host, and disables WSL idle suspend so GEM keeps running in the background. See Installation. :::
Software prerequisites
For the standard install you do not install these yourself — the installer provisions them. They're listed here for reference and for from-source installs:
| Component | Version | Notes |
|---|---|---|
| Node.js | 22.x (pinned to 22.22.2) | The server runtime. |
| PostgreSQL | 14+ | Stores all configuration. GEM uses a dedicated database, user, and schema. |
Network
- HTTP — GEM serves on port 3000 by default.
- HTTPS — optional, on port 8443 (with HTTP on 8080) when SSL is enabled. See Configuration.
- Outbound — the server reaches
updates.mygem.usfor updates, and (when enabled) a secure remote-access tunnel. No inbound ports need to be opened for remote access when the tunnel is used.
On Windows/WSL, mirrored networking means clients on the LAN reach GEM at the Windows host's IP on these same ports.
Hardware
Requirements scale with the size of the site — the number of devices, zones, cameras, and connected clients. A small residential system runs comfortably on modest hardware; large commercial deployments with many camera streams and hundreds of zones want more CPU and RAM. Provision generously for camera/RTSP-heavy sites, where per-stream work dominates.
Next: Installation.