Skip to content

Developer tour — run it locally

For contributors and developers who want the stack running from the repo, without Docker. This runs Node processes straight from the workspaces, so you can edit and restart.

Running a service, not hacking on one?

Use the terminal quickstart (Docker Compose — the supported deployment path) or the AI quickstart. This page is the development setup, not a deployment guide.

5-minute tour

Prerequisites

Node.js 20+, ffmpeg. (The Android app additionally needs the native toolchain — see client-build.md.)

git clone https://github.com/AbueloSimpson/aliran
cd aliran
npm install                      # installs panel + broadcaster workspaces

# Panel (origin of truth)
cd panel
cp .env.example .env
node src/admin-cli.js init       # generate keys, prints the panel public key
node src/index.js                # start the panel node

In another terminal:

cd broadcaster
cp .env.example .env             # set PANEL_PUBKEY (from the panel output) + INPUT
npm install
node src/index.js

For the app, follow client-build.md to generate the native project, set your panel public key in client/config/service.json, and build the APK.

Where things live

Path What
core/ Shared crypto (@aliran/core): OPRF, Argon2id, sealing, tokens
panel/ Accounts, catalog, OPRF login, admin API + dashboard (Node)
broadcaster/ Ingest → encrypted feed → swarm; control API + UI (Node)
repeater/ Optional keyless regional super-peer (ciphertext mirror)
sdk/ @aliran/player-sdk — the headless viewer engine (Node + Bare)
sdk/react-native/ @aliran/react-nativeAliranBackend + <AliranVideo> binding
client/ React Native phone + TV app (runs the SDK in a Bare worklet)
tools/ e2e test suites, desktop viewer, remote acceptance harness
deploy/ Docker Compose, systemd units, Caddy TLS recipe
docs/ This documentation

Current status

Aliran is pre-1.0 and actively developed. The whole pipeline is verified end to end on real infrastructure: the deploy pack on a VPS, live channels (pull and push ingest), and the Android app (phone + TV) playing P2P over the public DHT. Every subsystem has an e2e suite (npm run test:sdk, test:admin-api, test:broadcaster-api, test:repeater, …), and tools/acceptance-remote.mjs proves a deployment from any machine. See the Roadmap for what remains before 1.0 (panel HA, the hardening/security-review pass).

Next steps