{"id":13425943,"url":"https://github.com/DenisCarriere/mbtiles-server","last_synced_at":"2025-03-15T20:31:35.029Z","repository":{"id":44125974,"uuid":"72051955","full_name":"DenisCarriere/mbtiles-server","owner":"DenisCarriere","description":"Provides a compatible WMTS Tile Server from MBTiles.","archived":false,"fork":false,"pushed_at":"2022-12-07T01:04:56.000Z","size":4379,"stargazers_count":99,"open_issues_count":20,"forks_count":27,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-08T13:32:57.730Z","etag":null,"topics":["mbtiles","nodejs","server"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DenisCarriere.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-26T23:08:17.000Z","updated_at":"2024-03-27T20:17:25.000Z","dependencies_parsed_at":"2023-01-24T12:46:04.979Z","dependency_job_id":null,"html_url":"https://github.com/DenisCarriere/mbtiles-server","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCarriere%2Fmbtiles-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCarriere%2Fmbtiles-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCarriere%2Fmbtiles-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenisCarriere%2Fmbtiles-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DenisCarriere","download_url":"https://codeload.github.com/DenisCarriere/mbtiles-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243790939,"owners_count":20348378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mbtiles","nodejs","server"],"created_at":"2024-07-31T00:01:22.598Z","updated_at":"2025-03-15T20:31:32.160Z","avatar_url":"https://github.com/DenisCarriere.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# MBTiles Server\n\n[![Build Status](https://travis-ci.org/DenisCarriere/mbtiles-server.svg?branch=master)](https://travis-ci.org/DenisCarriere/mbtiles-server)\n[![Coverage Status](https://coveralls.io/repos/github/DenisCarriere/mbtiles-server/badge.svg?branch=master)](https://coveralls.io/github/DenisCarriere/mbtiles-server?branch=master)\n[![npm version](https://badge.fury.io/js/mbtiles-server.svg)](https://badge.fury.io/js/mbtiles-server)\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/DenisCarriere/mbtiles-server/master/LICENSE)\n\n[![Standard - JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)\n\nProvides a compatible WMTS Tile Server from MBTiles.\n\n## Install\n\n```bash\n$ npm install -g mbtiles-server\n```\n\n## Quickstart\n\n```bash\n$ mbtiles-server --cache /Users/mac/mbtiles --verbose --port 3000\nMBTiles Server Service\n\n  cache:         /Users/mac/mbtiles\n  protocol:      http\n  port:          3000\n  domain:        localhost\n  verbose:       true\n```\n\n## Benchmark\n\n- 1 Active User =\u003e 400 requests/min\n- 1 Passive User =\u003e 50 requests/min\n\n| Requests | Response Time |\n|-----|-----------|\n| 1   | 33.460ms  |\n| 10  | 45.223ms  |\n| 100 | 374.217ms |\n| 1K  | 2.698s    |\n| 10K | 25.457s   |\n\n**Total 24,000 requests / min**\n\nUsing `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.\n\n## CLI Help\n\nFor any additional help using the CLI, use the `--help` flag.\n\n```bash\n  Provides a compatible WMTS Tile Server from MBTiles.\n\n  Usage\n    $ mbtiles-server\n\n  Options\n    --cache           [~/mbtiles] Cache\n    --protocol        [http] Protocol\n    --port            [5000] Port\n    --domain          [localhost] Domain\n    --verbose         [false] Verbose output\n    --sslkey          [~/mbtiles/server.key] Path to the file certification (.key). For https protocol only  \n    --sslcert         [~/mbtiles/server.cert] Path to the file certification (.cert). For https protocol only\n  \n  Examples\n    $ mbtiles-server --cache /Users/mac/mbtiles --port 5000 --verbose\n```\n\n## Environment Variables\n\nEnvironment variables can be defined instead of entering your options via the CLI.\n\n- `MBTILES_SERVER_CACHE`\n- `MBTILES_SERVER_PROTOCOL`\n- `MBTILES_SERVER_PORT`\n- `MBTILES_SERVER_DOMAIN`\n- `MBTILES_SERVER_VERBOSE`\n- `MBTILES_SERVER_SSL_KEY`\n- `MBTILES_SERVER_SSL_CERT`\n\n## Docker\n\nA Dockerfile is provided for easy Docker deployment\n\n```bash\n$ docker build -t mbtiles-server .\n$ docker run --rm -it \\\n  -p 5000:5000 \\\n  -v ~/mbtiles/:/root/mbtiles \\\n  mbtiles-server\n```\n**Start containers automatically**\n\n\u003chttps://docs.docker.com/engine/admin/host_integration/\u003e\n\n```bash\n$ docker run -d \\\n  --name mbtiles-server \\\n  -p 5000:5000 \\\n  -v ~/mbtiles/:/root/mbtiles \\\n  mbtiles-server\n```\n\n## WMTS\n\nThe goal of providing a WMTS enabled service is to be performance oriented and\nscalable. Therefore, servers must be able to return tiles quickly. A good way to achieve\nthat is to use locally stored pre-rendered tiles that will not require any image\nmanipulation or geo-processing.\n\n## API\n\n### Server\n\n**Parameters**\n\n-   `options` **\\[[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Server Options\n    -   `options.cache` **\\[[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** CACHE file path (optional, default `~/mbtiles`)\n    -   `options.domain` **\\[[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** URL Domain (optional, default `'localhost'`)\n    -   `options.port` **\\[[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** URL Port (optional, default `5000`)\n\n**Examples**\n\n```javascript\nserver({cache: '/Users/mac/mbtiles', port: 5000, verbose: true})\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDenisCarriere%2Fmbtiles-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDenisCarriere%2Fmbtiles-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDenisCarriere%2Fmbtiles-server/lists"}