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, theagorasystem 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.