mbtiles-server-plus v1.0.0
MBTiles Server
Provides a compatible WMTS Tile Server from MBTiles.
Install
$ npm install -g mbtiles-serverQuickstart
$ mbtiles-server --cache /Users/mac/mbtiles --verbose --port 3000
MBTiles Server Service
cache: /Users/mac/mbtiles
protocol: http
port: 3000
domain: localhost
verbose: trueBenchmark
- 1 Active User => 400 requests/min
- 1 Passive User => 50 requests/min
| Requests | Response Time |
|---|---|
| 1 | 33.460ms |
| 10 | 45.223ms |
| 100 | 374.217ms |
| 1K | 2.698s |
| 10K | 25.457s |
Total 24,000 requests / min
Using mbtiles-server you could easily sustain 60 active users and up to 480 passive users. These tests were done on the server locally, network traffic and switches could slow down these results significantly.
CLI Help
For any additional help using the CLI, use the --help flag.
Provides a compatible WMTS Tile Server from MBTiles.
Usage
$ mbtiles-server
Options
--cache [~/mbtiles] Cache
--protocol [http] Protocol
--port [5000] Port
--domain [localhost] Domain
--verbose [false] Verbose output
--sslkey [~/mbtiles/server.key] Path to the file certification (.key). For https protocol only
--sslcert [~/mbtiles/server.cert] Path to the file certification (.cert). For https protocol only
Examples
$ mbtiles-server --cache /Users/mac/mbtiles --port 5000 --verboseEnvironment Variables
Environment variables can be defined instead of entering your options via the CLI.
MBTILES_SERVER_CACHEMBTILES_SERVER_PROTOCOLMBTILES_SERVER_PORTMBTILES_SERVER_DOMAINMBTILES_SERVER_VERBOSEMBTILES_SERVER_SSL_KEYMBTILES_SERVER_SSL_CERT
Docker
A Dockerfile is provided for easy Docker deployment
$ docker build -t mbtiles-server .
$ docker run --rm -it \
-p 5000:5000 \
-v ~/mbtiles/:/root/mbtiles \
mbtiles-serverStart containers automatically
https://docs.docker.com/engine/admin/host_integration/
$ docker run -d \
--name mbtiles-server \
-p 5000:5000 \
-v ~/mbtiles/:/root/mbtiles \
mbtiles-serverWMTS
The goal of providing a WMTS enabled service is to be performance oriented and scalable. Therefore, servers must be able to return tiles quickly. A good way to achieve that is to use locally stored pre-rendered tiles that will not require any image manipulation or geo-processing.
API
Server
Parameters
options[string] Server Options
Examples
server({cache: '/Users/mac/mbtiles', port: 5000, verbose: true})2 years ago