Skip to content

JimScope/encola

Repository files navigation

Encola

Clean web UI with a bundled aria2 JSON-RPC daemon.

Docker

Use the published image:

docker run --rm \
  -p 8680:80 \
  -p 6800:6800 \
  -p 6881:6881/tcp \
  -p 6881:6881/udp \
  -e ARIA2_RPC_SECRET=your-secret \
  -v encola-config:/config \
  -v encola-downloads:/downloads \
  ghcr.io/jimscope/encola:latest

Or build it locally:

docker build -t encola:latest .
docker run --rm \
  -p 8680:80 \
  -p 6800:6800 \
  -p 6881:6881/tcp \
  -p 6881:6881/udp \
  -e ARIA2_RPC_SECRET=your-secret \
  -v encola-config:/config \
  -v encola-downloads:/downloads \
  encola:latest

Open http://localhost:8680, then set the secret token in Settings.

Runtipi

This folder is a minimal Runtipi dynamic app:

  • config.json declares the app metadata and enables dynamic compose.
  • docker-compose.yml marks the UI service as the main app with x-runtipi.
  • The same container runs BusyBox httpd and aria2.
  • Runtipi/Traefik handles the web route to the UI, so Encola does not proxy aria2.
  • The aria2 RPC port is exposed directly on 6800.

The default RPC endpoint is computed as:

http://<current-host>:6800/jsonrpc

If aria2 is published somewhere else, change the endpoint in Settings. The endpoint is saved in localStorage; the aria2 secret token is saved only in sessionStorage.

Downloads are stored in /downloads; aria2 session data is stored in /config.

Because this setup avoids an internal proxy, the browser must be able to reach http://<current-host>:6800/jsonrpc. If the UI is exposed only through HTTPS, browsers can block the plain HTTP RPC request as mixed content; in that case use the local HTTP app URL or add a dedicated HTTPS route/proxy for aria2.

GitHub Actions

Pushes to main build and publish ghcr.io/jimscope/encola:latest. Version tags like v0.1.0 also publish matching image tags.

About

Clean aria2 control UI with bundled Docker/Runtipi support

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors