Now if only there was a sensible way to self-host OSM data. From what I've found you either have to build a dedicated server to continuously building the tiles (which takes a ton of storage and processing power) or pay for it at an insane monthly price. I wish OSM would directly make their tiles available to mirror. (Maybe they do, but I haven't found it yet)
I just looked it up and apparently, all tiles would take up 54 TB[0], and even just the important tiles are around 1TB. I now understand why just downloading them isn't an option.
It specifically says: OSM does NOT pre-render every tile. Pre-rendering all tiles would use around 54 TB of storage
that 54TB figure is only if you pre-render into raster every zoom level of every tile for the whole world. a more typical self hosted openstreetmap renders the tiles on demand as you scroll or move the map.
Disk space usage is MUCH less, such that my test/development setup fits well on a virtual machine with 300GB of disk space on a 12TB hard drive that cost $145. By this measurement I believe it's using just under 4 dollars of disk space, 8 dollars if you count its duplicate where it gets backed up to.
that would be a bad idea since the tiles are ever changing. the master copy of the data is in a vector format. the idea is you want to run the (free) software engine that turns the vector data into various zoom levels of raster tiles, on demand. the vector data is really quite small, an entire large-population US state with many complex cities is under a few hundred megabytes.
I built a tool for downloading tiles last week - but with a warning in the README to make sure you are following the OpenStreetMap tile downloading policies.
You can download tiles directly from openstreetmap.org, although bulk requests are obviously discouraged.
Running your own tile server isn't too bad. The tiles are cached so that not much processing power is needed after a while of usage. Yes it requires storage but so would any self-hosting solution.
It really depends on your requirements, but if you only need one city then you're hardware requirements are in the raspberry pi territory: https://switch2osm.org/serving-tiles/
The site linked already provides docker images, I'm tempted to build a pi one.
Can you explain what is not included?
Do you mean that they don't render some things that are present in OSM?
You refine and set up the tiles from openmaptiles to your liking quite a bit...
There are features in OSM like power lines, pipelines, ski runs, fences, cliffs, hedges, traffic lights, marker buoys, ferry routes, bus routes etc. These aren't in the OMT vector tiles, to keep them small. (Some of them might be included since I last looked.)
The features that are there are included from a particular zolm level. If you want to make a global railway map - so you will show major railways at zoom 2, say - you would need to hack around, since the first zoom the railways appear on is 4 (or whatever).
What you can easily customise is showing those railways at zoom 4+ (or not) and the style of the lines.
If you want some of the features you mention rendered in your application you probably have to "Generate your own vector tiles from selected OpenStreetMap tags" as they also mention on their website.
[1] I'm not even a customer of them, just browsing their website.