Skip to content

System Requirements

Legend is designed to run with minimal resources. Before installing, verify that your system meets these requirements.

Minimum

  • 1 CPU core
  • 512 MB RAM
  • 512 MB disk space
  • Suitable for small teams (under 50 entities)

Recommended

  • 2 CPU cores
  • 2 GB RAM
  • 2 GB disk space
  • Suitable for medium teams (50-500 entities)

Large Deployments

  • 4 CPU cores
  • 4 GB RAM
  • 5 GB disk space
  • Suitable for large teams (500+ entities)

Disk space requirements grow with your data. Each entity (landmark, person, or team) consumes approximately 1-5 KB of disk space for its YAML file and associated documentation. The SQLite database grows with user accounts, audit logs, and configuration.

For most organizations, the recommended configuration provides comfortable headroom. Large deployments with thousands of entities or extensive documentation benefit from additional resources.

Legend runs as a Docker container. You need:

  • Docker Engine: Version 20.10 or later
  • Docker Compose: Version 2.0 or later (included with Docker Desktop and most Docker installations)

To check your Docker version:

Terminal window
docker --version
docker compose version

If Docker is not installed, the install script handles installation automatically on Linux systems. For macOS and Windows, install Docker Desktop from the official website.

Legend supports any operating system that can run Docker:

  • Linux: Ubuntu 20.04+, Debian 10+, CentOS 7+, RHEL 8+, Fedora 33+, Alpine 3.14+
  • macOS: macOS 11 (Big Sur) or later with Docker Desktop
  • Windows: Windows 10 version 1903 or later with Docker Desktop and WSL 2

The install script is optimized for Linux and supports the following package managers:

  • apt (Ubuntu, Debian)
  • dnf (Fedora, RHEL 8+)
  • yum (CentOS, RHEL 7)
  • apk (Alpine)

For macOS and Windows, use Docker Desktop with the Docker Compose or Docker Run installation methods.

Users accessing Legend need a modern web browser:

  • Chrome 90 or later
  • Firefox 88 or later
  • Safari 14 or later
  • Edge 90 or later

Legend uses modern web standards and requires JavaScript to be enabled. Mobile browsers on iOS and Android are supported.

Legend listens on a single port for HTTP traffic:

  • Default port: 3000
  • Configurable: You can map Legend to any available port during installation

Ensure the port you choose is not already in use by another service. The install script checks for port conflicts and prompts you to choose a different port if needed.

Legend requires outbound internet access for license validation:

  • License validation: Legend validates your license regularly to ensure full functionality is available for your instance.
  • Destination: https://mylegend.io (configurable via LEGEND_LICENSE_SERVER_URL)
  • Protocol: HTTPS (port 443)
  • Payload: Instance fingerprint, license token ID, version number, and seat count. No entity data or user information is transmitted.

Users access Legend through their web browsers. Ensure your firewall or network security group allows inbound traffic on the port Legend listens on (default 3000).

For production deployments behind a reverse proxy (nginx, Apache, Caddy), configure the proxy to forward traffic to Legend’s port. Legend does not handle TLS termination. Place it behind a reverse proxy that manages HTTPS certificates.

Legend stores data in two locations:

The YAML catalog contains entity definitions, documentation files, and branding assets. This data is:

  • Stored as plain text files (YAML and Markdown)
  • Safe to store on network filesystems (NFS, SMB)
  • Suitable for version control with Git
  • Backed up separately from the database

The SQLite database contains user accounts, groups, configuration, audit logs, and license information. This data is:

  • Stored in a single file (legend.db)
  • Best performance on local SSD storage
  • Not recommended for network filesystems due to locking requirements
  • Backed up automatically by Legend’s backup system

By default, both the YAML catalog and SQLite database are stored in the same directory (/app/data inside the container, mapped to your host’s data directory). For better performance in large deployments, you can separate them:

  • Store the YAML catalog on a network filesystem for shared access or version control
  • Store the SQLite database on local SSD for optimal performance

See the Installation guide for configuration details.

When running Legend in Docker, consider setting resource limits to prevent unexpected consumption:

services:
legend:
image: legendapp/legend:latest
deploy:
resources:
limits:
cpus: '2'
memory: 2G
reservations:
cpus: '1'
memory: 512M

Resource limits are optional but recommended for production deployments. They prevent Legend from consuming more resources than expected during peak usage or if a bug causes resource leaks.

Before installing Legend, verify:

  • Hardware meets minimum requirements (1 CPU, 512 MB RAM, 512 MB disk)
  • Docker Engine 20.10+ is installed (or the install script will install it)
  • Docker Compose 2.0+ is available
  • Port 3000 (or your chosen port) is available
  • Outbound internet access is available (or plan for air-gapped mode)
  • Users have modern web browsers (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
  • You have a 64-character secret for LEGEND_SESSION_SECRET (generate with openssl rand -hex 32)

If all items are checked, you are ready to install. See the Installation guide to proceed.

If docker or docker compose commands are not found:

  • Linux: Install Docker using your package manager or run the install script, which handles installation automatically.
  • macOS/Windows: Install Docker Desktop from docker.com and ensure it is running.
  • Permission denied: Add your user to the docker group: sudo usermod -aG docker $USER, then log out and back in.

If the installation fails because port 3000 is in use:

  • Choose a different port during installation (the install script prompts for this)
  • Or stop the service using port 3000: sudo lsof -i :3000 to identify it, then stop or reconfigure that service

If you receive disk space errors:

  • Free up space by removing unused Docker images: docker system prune
  • Move the data directory to a larger volume
  • Reduce backup retention settings in the admin panel

If license validation fails:

  • Verify your firewall allows outbound HTTPS (port 443) to mylegend.io
  • Contact Legend support if you require an air-gapped deployment option