# Martin Tile Server Documentation > Martin is a fast tile server that serves vector and raster tiles from PostGIS, PMTiles, MBTiles, COG, GeoJSON and DuckDB, along with sprites, fonts and styles. Martin is a tile server and a set of tools able to generate vector tiles on the fly from large PostgreSQL databases, and serve tiles from PMTiles, MBTiles, Cloud Optimized GeoTIFF, GeoJSON and DuckDB files. It can combine multiple tile sources into one, and also serves sprites, fonts and MapLibre styles. It is written in Rust and optimized for speed and heavy traffic. The `martin-cp` tool generates tiles in bulk, and the `mbtiles` tool inspects, copies, diffs, patches and validates MBTiles archives. ## Getting Started - [Introduction](): What Martin is and what it can do - [Martin Quick Start Guide](): Choosing a quick start guide - [On Linux](): Serving a first tileset on Linux - [On macOS](): Serving a first tileset on macOS - [On Windows](): Serving a first tileset on Windows - [View with QGIS](): Viewing Martin tiles in QGIS - [Installation](): Installing Martin from binaries, package managers, Docker or source ## Running - [Usage](): How Martin discovers sources from the command line and configuration file - [Command Line Interface](): Command line arguments and options - [Environment Variables](): Environment variables understood by Martin - [Docker](): Running Martin in Docker - [Docker Compose](): Running Martin and PostGIS with Docker Compose - [AWS Lambda](): Running Martin on AWS Lambda - [Reverse Proxies](): Putting Martin behind a reverse proxy - [NGINX](): NGINX reverse proxy and caching setup - [Apache](): Apache reverse proxy setup - [Troubleshooting](): Diagnosing common problems ## Configuration - [Configuration](): The configuration file format and global options - [Tile Sources](): Overview of the supported tile sources - [MBTiles and PMTiles File Sources](): Serving tiles from MBTiles and PMTiles files - [MBTiles File Sources](): MBTiles file source options - [PMTiles File Sources](): PMTiles file source options, including remote and S3 archives - [PostgreSQL Connections](): PostgreSQL connection settings and auto-publishing - [PostgreSQL Table Sources](): Serving PostGIS tables and views as vector tiles - [PostgreSQL Function Sources](): Serving tiles generated by PostgreSQL functions - [Table Source Layers](): Splitting a PostgreSQL table source into layers for martin cp --mode bulk - [Cloud Optimized GeoTIFF File Sources](): Serving raster tiles from Cloud Optimized GeoTIFF files - [GeoJSON Sources](): Serving GeoJSON files as vector tiles - [DuckDB Sources](): Serving tiles from DuckDB databases and GeoParquet files - [Passthrough Sources](): Proxying tiles from an upstream HTTP tile server - [Composite Sources](): Combining multiple sources into one tile - [Tile Grids](): Tile grids and tile matrix sets - [Postprocessing](): Transforming tiles after they are read from a source - [MVT/MLT Conversion](): Converting between MVT and MapLibre Tiles (MLT) - [Hillshade](): Generating hillshade tiles from elevation data - [Contours](): Generating contour lines from elevation data - [Sprites](): Serving sprites generated from SVG icons - [Style Sources](): Serving MapLibre styles - [Server-side raster tile rendering](): Rendering styles to raster tiles on the server - [Fonts](): Serving font glyphs generated from font files ## API and Usage - [Available API Endpoints](): HTTP API endpoints served by Martin - [Guides](): Overview of the available guides - [Self-hosting a basemap from scratch](): Self-hosting a fully styled basemap from scratch - [Map renderer specific](): Using Martin with map renderers - [MapLibre](): Displaying Martin tiles with MapLibre - [Leaflet](): Displaying Martin tiles with Leaflet - [deck.gl](): Displaying Martin tiles with deck.gl - [Mapbox](): Displaying Martin tiles with Mapbox - [OpenLayers](): Displaying Martin tiles with OpenLayers - [Tile source specific](): Guides specific to a tile source - [Using Hosted PostgreSQL](): Connecting to hosted PostgreSQL providers - [Setting up a basemap and overlaying data](): Generating a basemap and overlaying points from PostGIS - [Using PostgreSQL with SSL Certificates](): Connecting to PostgreSQL with SSL certificates ## Tools - [Bulk Tile Generation](): Generating tiles in bulk with martin-cp - [Generating Tilesets](): Generating a whole tileset in bulk mode - [Working with MBTiles archives](): Working with MBTiles archives using the mbtiles CLI - [MBTiles Schemas](): The flat, flat-with-hash and normalized MBTiles schemas - [Accessing Metadata](): Reading and writing MBTiles metadata - [Copying MBTiles](): Copying and merging MBTiles archives - [Diffing/Patching MBTiles](): Diffing and patching MBTiles archives - [Validating MBTiles](): Validating the integrity of MBTiles archives ## Development - [Development](): Developing Martin - [Getting involved](): How to contribute - [Provided Tools](): Tools provided alongside the Martin server - [Martin as a library](): Embedding martin-core in a Rust application - [Serving](): How the tile server is put together and answers requests - [Sources](): How each tile source works and how sources reload at runtime - [Generation](): How martin cp's bulk mode scans, sorts, encodes and writes tiles with bounded memory ## Optional - [Migration Guide](): Migrating between major versions - [Changelog](): Release history