PMTiles Swarm


PMTiles Swarm is a BitTorrent client and server that knows what a map is. Large PMTiles archives are expensive to host and slow to download from a single server. Swarm shares that load across everyone who has a copy, and it keeps track of what each archive actually contains.

Project Link: github.com/TechIdiots-LLC/pmtiles-swarm | GitLab

Key Features

Torrents for map archives Create torrents from .pmtiles files, join existing torrents or magnet links, and import new builds automatically from watched folders or dated web locations.

RSS feeds that describe the map Each archive is published with its format, zoom range, bounds and tile count, so a subscriber can decide whether a multi-gigabyte download is worth starting. Plain RSS 2.0 with torrent enclosures also works with qBittorrent's built-in RSS auto-downloader.

Mirror or cache other nodes Follow another node's feed to mirror everything it publishes, or to cache only what you use.

Use the engine you already have Seeding is delegated to libtorrent, your existing qBittorrent, or an embedded WebTorrent client, so one node can serve a multi-terabyte library and browser peers over WebRTC at the same time.

Web console and tile endpoints A torrent-client-style web UI shows progress, peers, ratios and swarm traffic, and the node serves TileJSON and z/x/y tiles directly.

Quick Start

npm install
node src/index.js --config swarm.config.json
# then open http://localhost:8090

A Docker image is available as techidiotsllc/pmtiles-swarm. The repository's documentation covers engines, publishing, subscribing, security, running as a service, and reverse proxy setup.

Advertisement