Skip to content

Install

Corvus runs as one container: the gateway, the admin console and the access-queue store are all inside it.

Requirements

  • A Linux server (amd64 or arm64) with Docker and the Compose plugin
  • Ports 80 and 443 free (the gateway), and 9443 for the admin console
  • For Let's Encrypt certificates: your domain's DNS pointing at the server

1. Create docker-compose.yml

services:
  corvus:
    image: 'ghcr.io/corvus-gateway/gateway:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '9443:9443'
    volumes:
      - ./data:/data
Port Purpose
80 / 443 Gateway: the traffic you proxy
9443 Admin console and API. Allow only trusted networks (firewall, or Network → Admin console allowed networks)

All settings, certificates and history are stored in ./data.

2. Start it

docker compose up -d

3. Read the setup token

The first start prints a one-time token that proves you own the server:

docker compose logs corvus | grep setup_token

4. Create the administrator

Open https://<your-server>:9443 in a browser. The console uses a self-signed certificate at first, so your browser shows a warning. Continue to the page, enter the setup token, your e-mail and a password (at least 10 characters).

Sign-in page

Next step

Add your first proxy host. It takes about a minute.

Run it with host networking (optional)

If the services you want to proxy listen only on the server's 127.0.0.1, or your previous NPM setup used network_mode: host, replace ports: with host networking:

services:
  corvus:
    image: 'ghcr.io/corvus-gateway/gateway:latest'
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./data:/data

If port 6379 is already used on the host, also set CORVUS_REDIS_PORT (see Configuration).