Owlmetry
Self-Hosting

Requirements

Server requirements for self-hosting Owlmetry — OS, Node.js, PostgreSQL, and hardware.

Server requirements for self-hosting Owlmetry.

Operating system

Ubuntu 24.04 LTS is the tested and recommended OS. Other Linux distributions will likely work but are not officially supported. The automated setup script targets Ubuntu specifically.

Hardware

ResourceMinimumRecommended
RAM1 GB2 GB
Disk10 GB25 GB
CPU1 vCPU2 vCPU

The setup script creates a 2 GB swap file if one does not already exist, which helps on 1 GB RAM machines during pnpm install and Next.js builds.

Disk usage depends on event volume. The MAX_DATABASE_SIZE_GB environment variable enables automatic pruning of old event partitions when the database exceeds a size threshold.

If you plan to use event attachments (SDK file uploads like logs or screenshots), budget additional disk for OWLMETRY_ATTACHMENTS_PATH (default /opt/owlmetry-attachments). Attachment bytes live on disk, not in Postgres, and are governed by per-project and per-user quotas — default 5 GB per project ceiling and 250 MB per user bucket.

Software dependencies

DependencyVersionNotes
Node.js22 LTSInstalled via NodeSource repository by the setup script
pnpmLatestInstalled globally via npm install -g pnpm
pm2LatestInstalled globally via npm install -g pm2. Process manager for the owlmetry-api and owlmetry-web services
PostgreSQL16Installed from the Ubuntu 24.04 apt repository
nginxLatestReverse proxy for the API and web dashboard
gitLatestRequired to clone the repository onto the VPS

All dependencies are installed automatically by the setup script (see Installation).

Domain and DNS

You need a domain with DNS control. Three A records are required, all pointing to your VPS public IP:

  • yourdomain.com (or @)
  • api.yourdomain.com
  • ingest.yourdomain.com

SSL

Two options:

  1. Cloudflare (recommended): Put your domain behind Cloudflare with proxy enabled (orange cloud). Cloudflare handles SSL termination. nginx listens on port 80 only. Set Cloudflare SSL mode to "Full."
  2. Let's Encrypt: Use certbot to obtain and auto-renew certificates directly on the VPS. No Cloudflare required.

Email (optional)

Owlmetry uses email to send verification codes for passwordless authentication. You have two options:

  • Resend API key: Set RESEND_API_KEY in your environment to send real emails via Resend.
  • Console mode: If no Resend key is configured, verification codes are printed to the server console. This is fine for single-user or development setups.

Network

The VPS needs outbound internet access for:

  • apt package installation
  • pnpm install (npm registry)
  • Resend API (if configured for email)

Inbound, only ports 80 and 443 need to be open (or just port 80 if Cloudflare handles SSL). SSH access should be restricted to a VPN or trusted IP range.

Ready to get started?

Connect your agent via MCP or CLI and start tracking.