npm install @ctrl/deluge
import { Deluge } from '@ctrl/deluge';
const client = new Deluge({
baseUrl: 'http://localhost:8112/',
password: 'deluge',
});
async function main() {
const res = await client.getAllData();
console.log(res);
}
Docs: https://deluge.ep.workers.dev
These functions are normalized through @ctrl/shared-torrent, which makes it easier to support multiple torrent clients. See below for alternative supported torrent clients.
Returns all torrent data and an array of label objects. Data has been normalized and does not match the output of native listTorrents().
const data = await client.getAllData();
console.log(data.torrents);
Returns one torrent data
const data = await client.getTorrent();
console.log(data);
Pause or resume a torrent
const paused = await client.pauseTorrent();
console.log(paused);
const resumed = await client.resumeTorrent();
console.log(resumed);
Remove a torrent. Does not remove data on disk by default.
// does not remove data on disk
const result = await client.removeTorrent('torrent_id', false);
console.log(result);
// remove data on disk
const res = await client.removeTorrent('torrent_id', true);
console.log(res);
If you're shutting down the server often (serverless?) you can export the state
const state = client.exportState();
const client = Deluge.createFromState(config, state);
docker run -d \
--name=deluge \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e DELUGE_LOGLEVEL=error `#optional` \
-p 8112:8112 \
-p 6881:6881 \
-p 6881:6881/udp \
--restart unless-stopped \
lscr.io/linuxserver/deluge:latest