Skip to content
Agora by Olimpia
Esc
↑↓navigate↵open⌘Jpreview
On this page

Install

Install Agora on Ubuntu or Debian with one command, or build it from source.

Requirements

  • Ubuntu or Debian, x86_64 or arm64, with systemd.
  • Google Chrome or Chromium.
  • Xvfb.
  • Root access (sudo) to install the binary, the agora system user and the service.

The installer takes care of Xvfb and the system user. If Chrome or Chromium is missing it tells you how to install it.

One-line install

curl -fsSL https://agora.olimpia.dev/install.sh | sh

It downloads the latest release for your architecture, installs /usr/local/bin/agora, creates the unprivileged agora user that runs apps and browsers, and enables the agora systemd service. Read the script first if you prefer: agora.olimpia.dev/install.sh.

Check that the daemon is up and print your admin token:

systemctl status agora
curl -s http://127.0.0.1:7788/v1/health
sudo agora token

Open the dashboard

The daemon listens on 127.0.0.1:7788 only. Open http://127.0.0.1:7788 on the same machine and paste the admin token. From another machine, use an SSH tunnel:

ssh -L 7788:127.0.0.1:7788 you@your-server

For permanent remote access, put Agora behind an authenticated tunnel such as Cloudflare Tunnel with Access. See the security model.

Build from source

You need Go, a C toolchain and the x264 headers (Agora encodes H.264 through cgo).

sudo apt install xvfb libx264-dev pkg-config build-essential
git clone https://github.com/olimpiacloud/agora && cd agora
go build -o agora ./cmd/agora
sudo install -m 0755 agora /usr/local/bin/agora
sudo useradd --system --create-home --home-dir /var/lib/agora-apps --shell /usr/sbin/nologin agora
sudo cp deploy/agora.service /etc/systemd/system/
sudo systemctl daemon-reload && sudo systemctl enable --now agora

Run without systemd

agora serve runs in the foreground. As root it keeps state in /var/lib/agora; as a normal user, in ~/.agora.

agora serve --listen 127.0.0.1:7788 --home ~/.agora
Flag Default What it does
--listen 127.0.0.1:7788 HTTP address. Non-loopback addresses are refused unless AGORA_ALLOW_PUBLIC=1.
--home /var/lib/agora or ~/.agora State directory (also AGORA_HOME).
--apps-user agora Unprivileged user for apps and browsers when running as root.
--chrome auto-detected Chrome or Chromium binary.
--rtc-port 0 Single UDP port for WebRTC (0 picks ephemeral ports).
--rtc-interfaces all Comma-separated interfaces for WebRTC candidates.
--rtc-loopback true Offer loopback ICE candidates.
--idle-after 5m Mark a workspace idle after this long without activity.
--suspend-after 0 Suspend idle workspaces after this long (0 means never by default).

Next: the quickstart.

Last updated on

Was this page helpful?