2 min readMar 29, 2026by jakub

Installation

Requirements

  • Chromium or Google Chrome -- PRISM uses headless Chrome for rendering
  • Linux (x64 or arm64), macOS, or Docker
  • Memory: minimum 1GB, recommended 2GB+ (Chrome is memory-hungry)
  • Open files: 65535 recommended (LimitNOFILE in systemd)

The easiest way to run PRISM. Includes Chromium in the container.

YAML
# docker-compose.yml
services:
  prism:
    image: ghcr.io/trident-cache/prism:latest
    ports:
      - "4000:4000"   # Proxy
      - "4001:4001"   # Admin API
    environment:
      - PRISM_ORIGIN=http://your-spa:3000
    deploy:
      resources:
        limits:
          memory: 2G
Bash
docker compose up -d

# Verify
curl -I http://localhost:4000/

Update Docker to Latest

Bash
docker compose pull
docker compose up -d

OS Packages (Debian/Ubuntu)

Bash
# Add repository
curl -sSfL https://get.trident-cache.com/prism | sh -s -- --add-repo

# Install
apt update
apt install trident-prism

# Install Chromium
apt install chromium

# Start
systemctl enable --now prism

OS Packages (RHEL/Rocky/Fedora)

Bash
# Add repository
curl -sSfL https://get.trident-cache.com/prism | sh -s -- --add-repo

# Install
dnf install trident-prism chromium

# Start
systemctl enable --now prism

Binary Download

Bash
# Download and install (auto-detects OS and architecture)
curl -sSfL https://get.trident-cache.com/prism | sh

# With systemd service setup
curl -sSfL https://get.trident-cache.com/prism | sh -s -- --with-service

The installer:

  1. Downloads the correct binary for your platform
  2. Installs to /usr/local/bin/prism
  3. With --with-service: creates prism system user, installs systemd units, creates config directory

Verify Installation

Bash
# Check version
prism version

# Validate config
prism --config /etc/prism/config.toml validate

# Start manually (foreground)
prism --config /etc/prism/config.toml run

File Locations

PathPurpose
/usr/bin/prismBinary
/etc/prism/config.tomlConfiguration
/etc/default/prismEnvironment variables
/var/lib/prism/Data directory
/var/log/prism/Log directory
/usr/lib/systemd/system/prism.serviceSystemd service
/usr/lib/systemd/system/prism.socketSystemd socket

Systemd Service

The systemd unit includes security hardening:

INI
[Service]
Type=simple
User=prism
Group=prism
ExecStart=/usr/bin/prism --config ${PRISM_CONFIG}
Restart=on-failure
RestartSec=5s

# Security
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
MemoryMax=2G
LimitNOFILE=65535
LimitNPROC=4096
Chrome needs /dev/shm

Chrome requires /dev/shm for shared memory. The systemd unit includes ReadWritePaths=/dev/shm. In Docker, ensure --shm-size=512m or mount /dev/shm.

Environment Variables

Set in /etc/default/prism:

Bash
PRISM_CONFIG=/etc/prism/config.toml
# RUST_LOG=info
# CHROME_PATH=/usr/bin/chromium

Next Steps

Was this page helpful?
PRISM Installation — Trident PRISM — Trident HTTP Cache Proxy | qoliber Docs