System Requirements

udServer is a lightweight native service that handles user, organisation, project, and collaboration management for udSDK and udStream. Point cloud data itself is streamed or redirected to your object storage (S3 / Azure), so the udServer host mainly does authentication, metadata, and collaboration work rather than heavy data serving.

The figures below are a starting point. Size up from the recommended tier as your user count, project count, and request volume grow.

Quick reference

MinimumRecommended
CPU2 vCPU (x86-64)4 vCPU (x86-64)
RAM2 GB8 GB
Disk20 GB SSD50 GB+ SSD (separate volume for the database)
Operating systemAny x86-64 Linux with glibc 2.17 or newerUbuntu 22.04 LTS or 24.04 LTS
PostgreSQL12+ with pgcrypto, co-located14+ with pgcrypto, on a dedicated host
TLSHandled by udServerTerminated at a reverse proxy / load balancer
  • Minimum describes an all-in-one evaluation box running udServer and PostgreSQL together, for light user counts.
  • Recommended describes a production deployment with the database on its own host and TLS offloaded to a load balancer.

Architecture

udServer ships as an x86-64 (amd64) binary only. There is no ARM build. On AWS this means an Intel/AMD instance family (for example the t3, m5, or c5 families) rather than a Graviton (*g) instance.

Operating system

udServer is built against glibc 2.17 or newer, so it runs on essentially any current x86-64 Linux distribution, including:

  • Ubuntu 20.04, 22.04, and 24.04 LTS
  • Debian 11 and 12
  • Amazon Linux 2023
  • RHEL / Rocky / AlmaLinux 8 and 9

The shipped .deb package and the official Docker image both target Ubuntu, so an Ubuntu 22.04 or 24.04 LTS host is the best-supported choice. See Generic Installation for the .deb install and Amazon EC2 for an Amazon Linux 2023 walkthrough.

Runtime dependencies

The .deb package declares these and installs them automatically. If you deploy the raw binary or a container, make sure the following are present:

  • libc6 (glibc) 2.17 or newer
  • libpq5 — the PostgreSQL client library
  • libstdc++6
  • ca-certificates — required so udServer can validate outbound TLS connections to your OIDC provider, the licensing server, and object storage

PostgreSQL

udServer stores everything in PostgreSQL and cannot start without it.

  • Version: 12 or newer is required; 14 or newer is recommended.
  • Extension: the pgcrypto extension must be available.
  • Connections: udServer maintains a pool of database connections (default 10). Fewer than 4 will degrade performance. Make sure PostgreSQL's max_connections comfortably exceeds the pool size across all udServer instances that share the database.
  • Placement: co-locating PostgreSQL with udServer is fine for the minimum tier. For production, run PostgreSQL on a dedicated host or a managed service (for example Amazon RDS) and give its data directory its own SSD volume.

Networking and TLS

  • udServer listens for HTTP and HTTPS traffic (ports 80 and 443 by default).
  • It makes outbound HTTPS connections to your OIDC/OAuth provider, the Euclideon licensing server, and your configured object storage.
  • udServer can terminate TLS itself, but for production deployments — anything above roughly 100 concurrent users — we recommend terminating TLS at a reverse proxy or load balancer (for example an AWS ALB or nginx) in front of udServer, which handles it more efficiently.

Sizing notes

  • The web request layer uses a fixed pool of worker threads, so a handful of cores is enough for most deployments; additional cores mainly help with TLS handshakes when udServer terminates TLS itself.
  • Extra RAM primarily benefits the internal web cache and, when co-located, PostgreSQL.
  • Disk usage grows with the database (users, organisations, projects, and scenes) plus logs and crash dumps written under /var/opt/udserver. Because point data lives in object storage rather than on the host, the udServer host's own disk footprint stays small.