Built to handle tens of thousands of torrents, PicoTorrent Server is an excellent BitTorrent server. Perfect for a seedbox setup where performance and ease of use is key.
- Full support for BitTorrent 2.0 (BEP-52), v1, v2 and v1+v2 hybrid torrents.
- A simple, clean, embedded web UI for management.
- All data is stored in a SQLite database which makes backups trivial.
- A Prometheus exporter for monitoring session statistics.
PicoTorrent Server is distributed via Docker which makes it easy to run and distribute.
docker run -p 8080:1337 ghcr.io/picotorrent/server:{VERSION}This is an example file with more advanced usage - the container is set to read-only and volumes are mapped in for data storage.
version: '3'
services:
picotorrent:
image: ghcr.io/picotorrent/server:{VERSION}
ports:
- 8080:1337
environment:
PICOTORRENT_DB_FILE: /data/PicoTorrent.sqlite
volumes:
- /mnt/downloads:/downloads
- /var/lib/picotorrent:/dataUse these environment variables to configure the behavior of PicoTorrent Server.
PICOTORRENT_DB_FILE- the path to a SQLite database to use for data storage. The file will be created if it does not exist. Defaults to right next to the PicoTorrentServer binary.PICOTORRENT_HTTP_HOST- the IP address to listen on for the HTTP server. Defaults to127.0.0.1.PICOTORRENT_HTTP_PORT- the port to use for the HTTP server. Defaults to1337.PICOTORRENT_WEBROOT_PATH- the path to the web UI. If unset, no web UI will be served. Defaults to/app/clientin the Docker container which is where the bundled web UI is located.
PICOTORRENT_PROMETHEUS_EXPORTER- if this is set, the Prometheus exporter is enabled and will serve metrics on/metrics. Defaults to unset.
Build PicoTorrent Server then run it.
$ mkdir build && cd build
$ cmake -G Ninja
$ ninja
$ ./PicoTorrentServerThen start the Vue client.
$ cd client
$ npm i
$ npm run serveOpen http://localhost:8080 in your browser. All API requests are forwarded to
the server process with the help of the Vue proxy.
In production scenarios, the Vue client is hosted by PicoTorrent itself.