Run a node

Keep a copy of the catalogue and help distribute it to listeners. One command sets the storage and upload caps, so the recitations are closer to listeners around the world.

Why run a node?

Tilawah does not store the audio itself. Each node keeps a copy of the catalogue and shares its pieces with listeners over WebTorrent.

A node on a different network helps bring the recitations closer to listeners who cannot reach our servers quickly.

Supported systems

Linux: supported. Ubuntu or Debian with Docker, on a dedicated or idle machine.

Windows: experimental through WSL2 and Docker Desktop. The console may not reach the node, so a Linux machine is safer.

macOS: not supported yet.

On Linux

Install Docker, then run this. The node will be installed in /opt, and the installer will show the four values the console asks for.

curl -fsSL https://raw.githubusercontent.com/adelpro/open-tilawa/main/deploy-node.sh | sudo bash -s -- --type seeder --disk 50 --upload-kbps 20000

50 GB of disk and 20 Mbps of upload. Lower the upload speed on a home connection (the node will not exceed the cap).

sudo ufw allow 6881/tcp && sudo ufw allow 6881/udp

This is the only port the internet needs. Do not open 8085: it answers admin credentials and stays on the LAN or tailnet.

What the install command shows

Name, URL, user and password. Send them to the operator, or add the node yourself from the console.

Windows through WSL2 (experimental)

Docker Desktop publishes the peer port, but WSL’s network can stop the console reaching 8085. If it does not answer, use a Linux machine.

  1. Run the command above. In an elevated PowerShell, then reboot.
  2. Install Docker Desktop. Enable Settings → Resources → WSL Integration for Ubuntu.
  3. Run the install command below. From the Ubuntu terminal, after Docker is installed.
  4. Open the port. Allow 6881 TCP and UDP in Windows Defender Firewall, and forward it on the router. Keep 8085 on the tailnet or LAN.

undefined

Add the node to the console

Open Seeders, choose Add seeder, and paste the four values. The console probes the node, shows its recitations and peer devices, and can push the published library to it.

No console access? Send the values to [email protected] and we will add it.

Operating limits and safety

Storage limit
--disk 50 caps the data. The full catalogue is about 18 GB.
Upload limit
--upload-kbps 20000 caps the uplink at 20 Mbps; lower it for a home connection.
Stop
Stopping the Docker container stops sharing. The console can remove the node.
Security
8085 is admin and stays private; 6881 is the only public port. The password is shown once.

Questions

Do I need a server?
A dedicated Linux machine or a small VPS. A home connection works within limits.
How much upload bandwidth does it use?
Start at 20 Mbps and lower it if the connection suffers.
Will it slow my computer?
The node does not use its full resources all the time; it becomes active when there are recitations to share.
How do I remove it?
Remove the node in the console, then run docker compose down in the install directory.

undefined