A tiny, hackable BitTorrent client for servers and seedboxes.
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.
PicoTorrent Server is distributed via Docker which makes it easy to run and
distribute.
docker run -p 8080:1337 ghcr.io/picotorrent/server:{VERSION}
docker-compose
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:/data
Use these environment variables to configure the behavior of PicoTorrent
Server.
PICOTORRENT_DB_FILE
- the path to a SQLite database to use for data storage.PICOTORRENT_HTTP_HOST
- the IP address to listen on for the HTTP server.127.0.0.1
.PICOTORRENT_HTTP_PORT
- the port to use for the HTTP server. Defaults to 1337
.PICOTORRENT_WEBROOT_PATH
- the path to the web UI. If unset, no web UI will/app/client
in the Docker container which is wherePICOTORRENT_PROMETHEUS_EXPORTER
- if this is set, the Prometheus exporter/metrics
. Defaults to unset.Build PicoTorrent Server then run it.
$ mkdir build && cd build
$ cmake -G Ninja
$ ninja
$ ./PicoTorrentServer
Then start the Vue client.
$ cd client
$ npm i
$ npm run serve
Open 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.