Simple tile server for .mbtiles-files written in C# with minimal APIs.
Run dotnet run in the src folder to start the application.
Download the latest standalone.zip from the release page, place your .mbtiles-file in the "data"-folder, rename it to map_data.mbtiles and start the .NET application. The tiles are available at https://localhost:5001/{z}/{x}/{y}.png.
- Place your .mbtiles file in the
./datadirectory (mkdir data) and rename it tomap_data.mbtiles. - Generate a (trusted) https certificate and place it in the
httpsfolder:
dotnet dev-certs https -ep ./https/aspnetapp.pfx -p <password>
dotnet dev-certs https --trust - Enter your chosen https certificate password in the
docker-compose.ymlenvironment variable. - Build the tile server with
docker compose build. - Run the server with
docker compose up. - Open the
./test/index.htmlto see a leaflet-demo. - [Optional] Enter the container with
docker exec -it tile-server-app-1 bash.
dotnet-counters and dotnet-dump are available in the /tools-folder of the tile-server. /tools/dotnet-counters monitor -p 1 can provide a high-level overview of the applications health (CPU usage, GC- and thread pool information,...).
/tools/dotnet-dump collect -p 1 can be used to create (and also analyze) dumps.
Install k6 by Grafana Labs and run the following command: k6 run test/k6.js
Statistics from a local bombardier benchmark:
./bombardier https://localhost/5/15/19.png -d 120s --insecure
Bombarding https://localhost:443/5/15/19.png for 2m0s using 125 connection(s)
Done!
Statistics Avg Stdev Max
Reqs/sec 36734.64 4022.55 47849.41
Latency 3.40ms 1.08ms 122.90ms
HTTP codes:
1xx - 0, 2xx - 4407445, 3xx - 0, 4xx - 0, 5xx - 0
others - 0
Throughput: 716.23MB/s
https://ftp.gwdg.de/pub/misc/openstreetmap/openandromaps/world/OAM-World-1-8-min-J80.mbtiles