14 ms·
Show HN: OpenFreeMap – Open-Source Map Hosting
Hi HN,
After 9 years of running my own OpenStreetMap tile server infra for MapHub (https://news.ycombinator.com/item?id=11389989 https://news.ycombinator.com/item?id=11389989), I've open-sourced it and launched OpenFreeMap.
You can either self-host or use our public instance. Everything is open-source, including the full production setup — there’s no 'open-core' model here. Check out the repo (https://github.com/hyperknot/openfreemap https://github.com/hyperknot/openfreemap). The map data comes from OpenStreetMap.
I also provide weekly full planet downloads both in Btrfs and MBTiles formats.
I aim to cover the running costs of the public instance through donations.
Looking forwards for your feedback.
- khobragade 2y agoAwesome! Moreover, I love how hyperknot is engaging with the people and the feedback :) This is super inspiring.
- wkat4242 2y agoHow much disk space do you need to host it?
- jnettome 2y agoRight on time! Thank you and congratulations for your release. I was looking for gmaps and mapbox alternatives this morning and right now I'm considering this.
- sorenjan 2y agoThis is really cool, I'll definitely look at this if I need to embed a map in the future. Are there any libraries that lets you plot geographic data on top of this in Python, with Matplotlib or similar? Slightly off topic, but how come there doesn't seem to be any open projects using the Overture maps data? > Overture is a data-centric map project, not a community of individual map editors. Therefore, Overture is intended to be complementary to OSM. We combine OSM with other sources to produce new open map data sets. Overture data will be available for use by the OpenStreetMap community under compatible open data licenses. Overture members are encouraged to contribute to OSM directly. Sounds like it would be a good data source, or am I missing something? https://overturemaps.org/about/faq/ https://overturemaps.org/about/faq/
- wcedmisten 2y agoOverture is an awesome resource because it has more coverage than OSM, but at the cost of accuracy. When I was considering using it for restaurants in surprisedatespot.com, I found that it has a lot more automated content with bad geocoding (imprecise locations) compared to OSM. E.g. restaurants can come from an old Facebook page and the geocoding might not be accurate compared to a survey. So where OSM might have a restaurant that closed 8 years ago, overture has every restaurant that's been at that location for the past 8 years.
- richiebful1 2y agoFolium is a useful library for plotting geographic data in Python. It generates a webpage with the map data displayed with Leaflet.js https://python-visualization.github.io/folium/latest/ https://python-visualization.github.io/folium/latest/ https://leafletjs.com/ https://leafletjs.com/
- kylebarron 2y agoI develop Lonboard [0], a Python library for plotting large geospatial data. If you have small data (~max 30,000 coordinates), leaflet-based Python libraries like folium and ipyleaflet can be fine, but because Lonboard uses deck.gl for GPU-accelerated rendering, it's 30-50x faster than leaflet for large datasets [1]. [0]: https://developmentseed.org/lonboard/latest/ https://developmentseed.org/lonboard/latest/ [1]: https://developmentseed.org/lonboard/latest/how-it-works/ https://developmentseed.org/lonboard/latest/how-it-works/
- RagnarD 2y agoIf it does a good job, somebody should get paid for it. I wouldn't rely on using this if it depends on donations (I call this begware). People expect to pay for services and products.
- patrickaljord 2y agoit says you can host it yourself and that he may offer a paid hosted plan in the future
- dawnerd 2y agoIn that case just use one of the many map tile providers already out there. This is huge for people that don't want to pay but also can't justify using that much server resources just to self-host.
- bdjsiqoocwk 2y ago> I call this begware So disrespectful and so ignorant. You rely on free software without even knowing it but are happy to not dig around much and benefit from it. But heres a new project and you call it begware. If you have nothing nice to say, don't say anything at all.
- hyperknot 2y agoMy main project is MapHub, it gives me my income. It's not an income like you'd get in a FAANG job, but still, I'm running it for making a living. For MapHub to work, I had to invest in my own tile server infrastructure: there is no way I could have made MapHub financially profitable with a 3rd party tile provider. So I kept iterating and iterating on the tile server infrastructure and after 9 years I arrived at a state which was worth open-sourcing. I'm happy if this project gets to the point from sponsorship where my hosting bill is covered ($175 per month), but it doesn't have to be financially successful on its own. I'll keep working on it because it's part of my main business, not because I beg for donations.
- tomarr 2y agoHave you been running this for long? I've looked for something in this space for the last couple of years but only came across MapTiler /AGOL and a few others, that were either pretty expensive (for small datasets) or restrictive functionality. If so I'd say you need to work on the SEO and findability side.
- btbuildem 2y agoVery cool, love the various tile sets (especially the 3d layer!) One thing that tripped me up is the zoom -- the affordance for zoom in/out across most other mapping UIs is via mouse motions -- how come in your demo it's restricted to the +/- buttons? Perhaps I missed something... Thanks for sharing this, looks very neat.
- mholt 2y agoThat's something that most tile viewers let you customize in the code. Sometimes you want to disable scroll wheel zoom so as to not interrupt page scrolling, like when the map takes up a large portion of the width of the page.
- hyperknot 2y agoOn the main page I disabled scroll zoom, because it hijacks your scroll and literally you cannot scroll through the map. It makes sense for full-screen maps only. Of course, you have 100% control over exactly what controls you configure with MapLibre, when you set up your app.
- btbuildem 2y agoAh nice, of course it's configurable :)
- mholt 2y agoSomething I'd be willing to pay for is historical tiles/data. I'm writing an application that lets you view historical data, and the problem is that most/all map services show only current data. It would be nice if the map reflected the year of the data we're layering on top. So if you want to make some money, there's an option for you!
- wcedmisten 2y agoHave you heard of: https://www.openhistoricalmap.org https://www.openhistoricalmap.org I don't think you can pay for it, but I'm sure they'd accept donations!
- petre 2y agoInteresting but not entirely accurate. Moldova has not existed as a state until 1991, after the dissolution of the USSR but it shows up on the map after WW2.
- pininja 2y agoThe great thing about open map projects is that they can be updated, and store a historical edit log along with discussions and sources for each change.
- uneekname 2y agoAs with other community projects such as Wikipedia or OSM, OpenHistoricalMap relies on keen-eyed volunteers such as yourself to improve their database!
- mholt 2y agoAh, wonderful -- thank you
- uneekname 2y agoThe key problem here is a lack of accurate data. OSM is amazing, but is constantly getting improved and closer to realtime "ground truth." Historical OSM data is usually worse all-around, rather than "equally good, but as of year XXXX" Perhaps there is a different dataset with better historical accuracy than OSM, but I do not know of one. You'd likely have to reduce your scope: trails in a specific park? Roads in a specific city? As another commenter notes, there is a sister project OpenHistoricalMap that focuses on mapping historical data. It is rather sparse compared to OSM, but super fun to explore around e.g. NYC.
- spl757 2y agoI think this is great, and also that you are getting some good advice in the comments about covering costs and/or monitization. I'd add my thoughts, but others have already expressed them here so I just wanted to say I love seeing this kind of philosophy expressed in a project like this. edit to fix typo
- peoplefromibiza 2y agoAs a Roman, the decision on how to prioritize the labels seems very interesting to me! https://i.postimg.cc/tCn1xSRF/image.png https://i.postimg.cc/tCn1xSRF/image.png p.s. very cool project indeed edit: I don't know how it happened, but while panning the map with the mouse, the map flipped upside down. https://i.postimg.cc/sggZ2pHh/image.png https://i.postimg.cc/sggZ2pHh/image.png
- hyperknot 2y agoThank you for sharing this, I'll make a issue about both. The Vatican situation is trickier than you'd think, as it's on country level, while Rome is on city level, and naturally you'd want to give countries a priority over cities. Like on low zooms you only want to show countries, then as it gets closer you show cities. Well, except for Vatican.
- folmar 2y agoNearby San Marino needs similar treatment.
- vinibrito 2y agoAbout displaying the vector tiles, which project goes well with it? I like Leaflet and worked extensively with it, but it has some compatibility problems with vector tiles and other small issues when dragging vector tiles for example. Is Maplibre the gold standard for vector tiles now?
- maelito 2y agoYes. It's active. But it's imperative. I didn't find a good React interface to MapLibre. See Streetcomplete switching to MapLibre.
- kylebarron 2y agohttps://visgl.github.io/react-map-gl/ https://visgl.github.io/react-map-gl/ is a react interface to MapLibre
- maelito 2y agoWell, they should rewrite the home page. It says MapBox everywhere and MapLibre nowhere.
- petre 2y agoMaplibre works fine, there is even a plugin so you can use it in Leaflet. And it's a well maintained project. The other one is Mapbox GL from which Maplibre was forked. But you only use that with their tiles now.
- hyperknot 2y agoYes, MapLibre is the gold standard now.
- ryantgtg 2y agoNeat! We used to host our own mbtiles map for like $11/mo, but the problem was (this was prior to planetiler and people generating public worldwide mbtile dumps) there wasn't a free/cheap source for regularly-updated mbtiles. The dump from OpenMapTiles was not updated for years. So we gave up and went to mapbox, where we regularly exceed the monthly free tier for web, but they give us a discount. Because that is a scary scenario and we are dying to pay a fixed monthly fee, I think we will try yours and donate!
- uneekname 2y agoIf your application allows for it, I also recommend checking out Protomaps / PMTiles. Brandon has some insanely cool work making a tile format and related infrastructure that scales nicely.
- ryantgtg 2y agoI wanted to, but I was unable to get Protomaps working in our application, unfortunately. I'm not much of a js person (or a dev) and it was a bigger change than I could apparently handle in our rails app. Actually, thinking back on it, I think the main issue - or at least the one immediately presenting itself - was a CORS problem (a friend was hosting the PMTiles in their DO Spaces). And then I ran out of patience.
- stevage 2y agoYeah there are some pretty specific requirements for the server hosting the PMtiles that weren't well documented when I last looked at it.
- bdon 2y agoThanks for giving it a try! If you're going to revisit this, we could improve the docs around setting CORS configuration on DigitalOcean: https://docs.protomaps.com/pmtiles/cloud-storage#digitalocean-spaces https://docs.protomaps.com/pmtiles/cloud-storage#digitalocea...
- hyperknot 2y ago
- audiala 2y agoThis is fantastic, thank you!
- binarymax 2y agoGreat project! Do you support geocoding with a nominatim api?
- nevi-me 2y agoI've been using Google maps for a decade, and when they started offering a $200 credit, it was fine until my bill started going up to $200-300 after the credits. It's for a hobby project that's outlasted well-funded projects, so the traffic kept increasing as competitors folded. A few years back, I tried to run my own tileserver, but the difficulty of creating an updated vector tileset put me off, and I just continued paying the Google tax. Last month I finally got a really nasty bill, and it forced me to cancel my weekend plans and change to Mapbox. I like Mapbox for its other API features, but I'm wondering if I could alternate between this and Mapbox, so I keep my overall costs lower. I'd prefer to donate a fixed amount instead. Question: Does anyone have experience with switching the underlying OSM mapping services either programmatically or by webpage? I'm more asking around the end-user experience. I suppose I have to check what features of mapbox-gl 2+ I use that won't be available in the libre forks.
- stevage 2y agoIf you can be more specific in your questions I can probably help. I've been full time consulting in mapbox and maplibre for 7 years.
- nevi-me 2y agoThanks, I mainly want to be able to load either mapbox-gl or its alternatives, then not change the rest of my code. I don't yet know how incompatible mapbox-gl 3 is with the libre options.
- stevage 2y agoBest way is to try it. It just depends whether you have used any really recent features.
- professor_x 2y agoIm just someone interested in geospatial. Im a regular SWE. Seems like <1% of SWE jobs have even a nominal geospatial element like putting pins on a map. Any tips in general? Not just for breaking in but what you wish you knew
- scoofy 2y agoHello. This seems like exactly something I'm looking for to save cost for my project: https://golfcourse.wiki https://golfcourse.wiki I'm currently using Stadia Map Tiles from when they went from free to paid. If I'm understanding you correctly, I can switch to your instance to serve tiles to my site for free once again? I'm very happy to pitch in some cash to help keep the servers running. I am running leaflet.js and I guess I should be able to figure out how to migrate, but if you already have a tutorial somewhere, please let me know. This is really cool.
- e12e 2y agoThank you so much for sharing the setup and the hosted service. I'm a little curious about the setup bit for (self) hosting - it's essentially a series of bespoke python scripts? Not cloud init, not Ansible - and not shell scripts - nor Terraform/tofu. Would love to hear a few thoughts of how you arrived at this setup - and if you re-use parts for other projects?
- stevage 2y agoNot OP but I do the same thing, except with NodeJS. I spent a long time learning Salt stack (like Ansible) but it never really paid off. When you're writing o config to set up one specific project on known infrastructure you might as well just code it in the scripting language you like best.
- hyperknot 2y agoThanks! It's not so bespoke, it's Fabric (https://www.fabfile.org/ https://www.fabfile.org/), it's been around at least since 2011, but probably much longer, since they already had 1.2.0 in 2011. It's a super reliable script for setting up servers over SSH. Yes, you run the same commands you'd type in a terminal, works perfectly.
- e12e 2y agoThanks for clearing that up - it wasn't obvious to me at a glance.
- stevage 2y agoVery nice! Curious that you describe the OSM Bright style as "abandoned by their upstream project". I see edits 4 months old (https://github.com/openmaptiles/osm-bright-gl-style https://github.com/openmaptiles/osm-bright-gl-style), but I only looked superficially. Is it really abandoned?
- hyperknot 2y agoSince I wrote it, one person made 1 commit related to the visual style. Before that, 1 visual commit in 2023 and then 2021 is when work kind of stopped.
- bpiroman 2y agoleafletjs and openstreetmap is also cool
- tananaev 2y agoAwesome. I've been waiting forever for a vector OSM replacement. I already changed it to be the default for my open source GPS tracking project.
- ecmascript 2y agoVery good initiative, I will try it out for my project and donate monthly if it is successful!
- tzimo 2y agoHow can I use this to plot database metadata such as users, vendors, suppliers at their respective addresses. I’m developing a simple Django application and this would be a great addition.
- tobilg 2y agoI created a similar project, https://serverlessmaps.com https://serverlessmaps.com which lets you host PMTiles on S3 and CloudFront, with a Lambda@Edge layer where you could also do auth... With 1TB free traffic from the CDN, and pretty small costs for S3 and Lambda@Edge, it's probably even cheaper to self-host I guess. Even lower costs would be possible by entirely using CloudFlare services (CDN, R2)...
- RobMurray 2y agoThis looks really interesting. It might be a viable replacement for the back-end of an app I am working on that provides navigation for visually impaired people through spacialized sound. https://github.com/soundscape-community/soundscape https://github.com/soundscape-community/soundscape The back-end is currently based on a postgis database and a python app serving geojson tiles at zoom level 16. It currently runs on a single Hetzner server due to the resource requirements of imposm which is used to import the data into the database. Reducing hosting costs would really help us to insure the long term sustainability of the app. I don't know yet how different the schema is and how easy it will be to support. Soundscape was originally a Microsoft research project but they open sourced it when they shut down the app last year.
- noahjk 2y agoThis is neat! After the huge price increase a couple years ago with GMaps, it looks like you’ve come up with a creative way to offer much of the same functionality for most users. It’s unfortunate to still see small business sites to this day with error messages on their map widgets because of the API change from Google. I know nothing about mapping, but I’ve always had a dream of making a private neighborhood map which labels each house with people, sort of like a visual Rolodex. It would be great to have property boundaries, too. Do you have any suggestions for places to start? I don’t even know what file formats would hold this sort of data.
- tony_cannistra 2y agoIf you live in the US, you can get parcel information from your local tax assessor's website, usually. Sometimes it's devoid of owner information. Such cases usually require going to a company like ReGrid or Corelogic to purchase the data. I work for a company (onXmaps) which produces user-friendly maps of such information. You could use our app to create such a "rolodex" of your neighborhood, by annotating individual parcels with your neighbors' information. https://onxmaps.com https://onxmaps.com
- noahjk 2y agoThanks, Tony! I’m actually an Elite member of the off-road flavor! Is your recommendation to essentially use waypoints for the info? In my mind I’d really like to host my own map which neighbors could share, just starting from a baseline of parcel boundaries and a way to drop info on each plot (onX does this wonderfully already). Back in the day, my mom would make a little neighborhood diagram using MS Publisher and drawing boxes at the approximate locations of houses, and include names & phone numbers of each house. She would then distribute copies to the neighbors to hang on fridges. I loved that idea and basically want an online version of that, in a perfect world!
- tony_cannistra 2y agonice! yes, that's what I was suggesting for sure. You could put waypoints with contact info in a folder, and share that? Wouldn't obviously be useful for people without the apps.
- jack_riminton 2y agoI'm relatively new to mapping, can you explain the difference between running Leaflet and a free map tiling provider compared to your product?
- hyperknot 2y agoAs far as I know, there are no "Free Map Tiling provider"-s. This project aims to be exactly one. You can use it with Leaflet using the https://github.com/maplibre/maplibre-gl-leaflet https://github.com/maplibre/maplibre-gl-leaflet plugin.
- jack_riminton 2y agoInteresting thanks, I've used map tilers in the past without paying, maybe I just never came up against any rate limiting
- kisamoto 2y agoI asked the question as a top level comment but also duplicating here. Isn't Apache Baremaps a "free map tiling provider"? Or do I misunderstand what a tiling provider is? https://baremaps.apache.org/ https://baremaps.apache.org/
- hyperknot 2y agoThey are providing the building blocks for making a self-hosted vector tiles server, they don't actually host the tiles.
- Coolbeanstoo 2y agoSeems like the full world download links dont work, 404: https://btrfs.openfreemap.com/ https://btrfs.openfreemap.com/
- hyperknot 2y agoCloudFlare buckets don't support indexing / directory listing, so you need to get the exact URL. To help with this, here is a file listing the content of the bucket: https://btrfs.openfreemap.com/files.txt https://btrfs.openfreemap.com/files.txt
- deleted 2y ago[deleted]
- thinkingemote 2y agoLooks great love the free tiles and no limits or API keys. Question, why use btrfs?
- sandreas 2y agoAfaik btrfs supports incremental send / sync very efficiently, so if you just want an update it saves bandwidth
- hyperknot 2y agoSo a full planet OSM extract is about 300 million binary files, in total about 90 GB. The most popular ways to store it: - MBTiles - an SQLite file, each file is a row in a table, you need a server to serve it. - PMTiles - a single file, optimised for serverless usage. - Extract them into a directory, which in practice should be on a partition image. This is the approach I choose. I tested ext4 and Btrfs and I choose Btrfs. The reason is how ext4 and Btrfs handles inodes. Btrfs handles inodes so much better compared to ext4, it doesn't allocate them at start and also allows putting tiny files right with the metadata. Because here the average tile size is only 405 bytes, most of the tiles can actually stored with the Btrfs metadata block. From the latest run: Btrfs data is 51.57GiB Btrfs metadata is 84.37GiB
- c0nsumer 2y agoI apologize if this is something stupid, or answered elsewhere, but is there a good way to trim Planet down to a smaller area? I've been making some custom map stuff for mountain bike trails and I'd really like to move to self-hosted vector tiles for all layers, but too much of what I find says to start with Planet.osm when all I really need is a State (in the US) or even a few-miles-wide area. (My goal is to basically snapshot OSM data, generate tiles, and use that until I decide to do another snapshot down the line, so the underlying data doesn't change. And limit it to a small area because that's all I need.) Examples of maps I've done this way, and want to improve, are: https://trailmaps.app/ramba/ https://trailmaps.app/ramba/ and https://trailmaps.app/dte/ https://trailmaps.app/dte/
- 2y ago
- nathancahill 2y agoWould be interested in seeing a cost bar vs donations bar on the website.
- hyperknot 2y agoCurrently I'm paying for 3 dedicated servers at Hetzner and getting total donations of $11 USD per month. Making this automatic might not be easy, but I might do it one day, it might help with the donations.
- linsomniac 2y ago>getting total donations of $11 That total has gone up. :-) Not currently having any plans of using openfreemap, but I like the cut of your jib. I'm currently in the process of generating aerial tiles for Colorado, and updating 2 of our map tile sets (bitmap tiles, Here and OpenStreetMap), but at some point we should switch to vector tiles. When we do I'll try to get a business sponsorship going, but it is nearly impossible for me to get the company to pay for sponsorship. :-(
- hyperknot 2y agoThank you so much for your donation, it's appreciated!
- sphars 2y agoAlways on the lookout for self-hosted map servers, so I'll definitely try this one out. Slightly off-topic, one thing I'm having a hard time finding is satellite imagery. I need to self-host an offline web application using CesiumJS, and while I can spin up a map server, I can't find satellite imagery for free or cheap. I've used MapTiler[0], their server works great and they offer low-res satellite imagery for free/testing, but their high-res images are out of my price range. Anyone know of resources for downloading offline images of satellite imagery, compatible with OpenFreeMap or other server for use with CesiumJS? Doesn't have to be super recent images but would be nice. [0]: https://www.maptiler.com/ https://www.maptiler.com/
- raulns86 2y agoYou can find simple yet affordable satellite imagery for self hosting here https://www.keimaps.com/articles/self-hosted-basemap-cesium https://www.keimaps.com/articles/self-hosted-basemap-cesium
- hyperknot 2y agoSatellite images are definitely expensive, they are by far the biggest cost for MapHub. I spend more on satellite images per month than on servers. I couldn't find a high quality satellite images from free sources.
- kisamoto 2y agoCurrently researching this myself? Have you explored the satellite images from ESA/NASA? They are painful to discover but they're available to download for free and fairly (3-6 months) up to date.
- sphars 2y agoI have, though admittedly not deeply enough. Agreed about the discoverability though, I never could quite find what I'm looking for (and perhaps I don't know exactly what I'm looking for)
- zarazas 2y agoI would be interested in the differences between this and protomaps
- hyperknot 2y agoI'll write a detailed blog post for that, definitely. Basically Protomaps / PMTiles allows you to do this serverless, but it has it's downsides. There are two ways to use PMTiles with Cloudflare: - Putting the file in a public bucket and use HTTP range requests. - Deploy a worker to access it. For the range request version, you can test PMTiles here: https://pmtiles.io/?url=https%3A%2F%2Fdata.source.coop%2Fprotomaps%2Fopenstreetmap%2Ftiles%2Fv3.pmtiles#map=4.18/47.77/13.67 https://pmtiles.io/?url=https%3A%2F%2Fdata.source.coop%2Fpro.... It loads in 8-10 sec for me on a cold start. Of course it gets faster if many of us try to request it at the same time, but if you check it once per day for example, it'll be really slow, up to 10 sec. Compare that with OpenFreeMap here: https://openfreemap.org/quick_start https://openfreemap.org/quick_start It's near instant for me. (I know it's not full screen but you can make the app and then see how it's in full screen). For the Cloudflare Workers version, I didn't find any publicly available full planet test, so I don't know the performance, but Workers are not free. It might not matter for a small project, but the $0.30/million requests per month can easily add up if your project gets popular. In terms of OpenFreeMap, hosting it on a Cloudflare Worker would be prohibitively expensive.
- bdon 2y agoI'm the developer of Protomaps, to summarize: The latency you see on https://pmtiles.io/?url=https%3A%2F%2Fdata.source.coop%2Fprotomaps%2Fopenstreetmap%2Ftiles%2Fv3.pmtiles#map=4.18/47.77/13.67 https://pmtiles.io/?url=https%3A%2F%2Fdata.source.coop%2Fpro... is representative of how PMTiles works on AWS S3, coming from the us-west-2 region. It will be reasonable to load for those in the western US and likely quite slow from Europe or Oceania. If you want to make a direct comparison of Protomaps to OpenFreeMap, you need to compare serving OpenFreemap with NGINX from btrfs on disk, to running `pmtiles serve` on a `.pmtiles` file on disk, as described here: https://docs.protomaps.com/deploy/server https://docs.protomaps.com/deploy/server The OpenFreeMap page for me (in Taiwan) takes 1-2 seconds per tile, which is more than double the load tile for the PMTiles in us-west-2 example linked above. The best solution to get latency competitive with commercial providers, for a global audience, is to cache tiles at CDN edge locations. I describe automated ways to do that with Cloudflare Workers and AWS Lambda + Cloudfront here: https://docs.protomaps.com/deploy/cloudflare https://docs.protomaps.com/deploy/cloudflare https://docs.protomaps.com/deploy/aws https://docs.protomaps.com/deploy/aws I'm also experimenting with http://tigrisdata.com http://tigrisdata.com which lets you geo-distribute a static storage bucket like in this example: https://pmtiles.io/?url=https%3A%2F%2Fdemo-bucket.protomaps.com%2Flatest.pmtiles#map=0.71/0/0 https://pmtiles.io/?url=https%3A%2F%2Fdemo-bucket.protomaps....
- NKosmatos 2y agoThanks for this free service Zsolt. I hope it's not abused (too much traffic) and that donations from real users fund this very good initiative ;-) On a related subject, I remember seeing MapHub sometime ago and I have it in my bookmarks for one of my (forgotten?) projects. Whenever I find some free time I need to sit down and try the free tier to see if it will do what I have in mind.
- hyperknot 2y agoThanks a lot for your words! I'm also curious whether the donations will be able to cover the bandwidth costs. Currently I'm paying for 3 dedicated servers at Hetzner and getting a total of $11 per month from donations.
- mannyv 2y agoFYI if you need a CDN you can get bulk pricing from fastly with a monthly commitment. I'm not sure if their hosting works for you because you might be serving byte ranges. I think we're paying 2k/month usd for like 300TB/month. Backblaze-to-fastly is free, so no egress. Love your project, more power to you. I'll be using this for a few side projects for sure.
- hyperknot 2y agoAt Hetzner, the bandwidth is unlimited in theory. In practice, there are stories of terminating accounts of those who used too much. I don't think this project will ever make $2k per month. TBH, I'd be happy it it ever reaches $200 per month. I have to be very careful about what hosting providers to use and CDNs are out of the question.
- e12e 2y agoIf I were running fastly, I'd donate bandwidth so that you would implement turn-key, bring-your-api-key fastly support to your open source setup! As for other cdns - I remember https://neocities.org/ https://neocities.org/ built their own cdn - but I couldn't immediately find a blog post about the cdn, or something related in their GitHub (unless every node runs part of it, which would make sense, I guess).
- mannyv 2y agoThat's true: they do sponsor projects, as does cloudflare. They could use you as a PoC/demo for their serverless stuff. Same with cloudflare. It's worth it to ask. I can send you the contact for our fastly rep if you'd like.
- mannyv 2y agoThe problem with hetzner, or any point solution, is that at some point you will saturate your bandwidth - either on the network or storage side. Maybe it's worth front-ending it with cloudflare free, just to see/measure cache hits/requests/bandwidth?
- maxmcd 2y agoHey, just curious. If you have no Cloud/LB/CDN how are you routing requests to datacenters? Anycast? DNS? Something else?
- hyperknot 2y agoRound Robin DNS. The browser selects the best server, based on ping or some other internal metric. Also thanks for the donation!
- sylware 2y ago[flagged]
- cheeaun 2y agoVery curious to know more about this, regarding PMTiles: > Unfortunately, making range requests in 80 GB files just doesn't work in production. It is fine for files smaller than 500 MB, but it has terrible latency and caching issues for full planet datasets. Wondering which part incurs the latency here.
- hyperknot 2y agoI explained a bit about PMTiles in this comment: https://news.ycombinator.com/item?id=41636376 https://news.ycombinator.com/item?id=41636376 In summary, on a cold start (so now when it's on HN it might be totally meaningless), the following page loads in like 8-10 sec for me: https://pmtiles.io/?url=https%3A%2F%2Fdata.source.coop%2Fprotomaps%2Fopenstreetmap%2Ftiles%2Fv3.pmtiles#map=4.18/47.77/13.67 https://pmtiles.io/?url=https%3A%2F%2Fdata.source.coop%2Fpro... Technically why it's slow is entirely on CloudFlare, so I can only guess. But probably they are not mirroring files of this size across their datacenters / servers. I don't know how their public buckets hosting is done, but it's definitely very slow. OpenFreeMap on the other hand seems almost instant for me.
- bdon 2y agoSee my response here: https://news.ycombinator.com/item?id=41638031 https://news.ycombinator.com/item?id=41638031
- deleted 2y ago[deleted]
- wongarsu 2y agoI understand you don't plan to make money, only to cover costs. Nevertheless, I believe you would benefit from a more explicit "business plan". Your Gold support plan kind of fulfills that purpose (email support and an invoice), but right now it's kind of hidden in the middle of a donation request, and flavored as a donation. You might convince a lot more mba-type people to support you if you also extend the same offer under a heading like "business plan" (where you make it clear that commercial use is free, but you can subscribe to this totally-not-a-donation plan for email support)
- dheera 2y agoTo be honest I don't see the problem with making commercial use non-free. (a) They're making millions, you deserve a cut of that. (b) If making money makes you more likely to be around in 10 years, that's attractive to businesses. Nobody knows when your donations might suddenly dry up.
- hyperknot 2y agoThe thing is that hosting this really isn't that expensive. My first GitHub Sponsors goal is to reach $175 per month, which would cover the hosting on Hetzner. Of course this cost can grow if the project gets more popular, but it's a good start! I honestly believe this project can cover $175 per month eventually. Of course there is the countless hours which went and which can possibly go into this, but to cover the hosting is still meaningful.
- dheera 2y agoI mean, sure, but Let's say 1 year from now your day job gets toxic and you have to work 18 hours a day just to pay your rent and expenses. Are you still going to maintain this? What if the economy goes to shit and you have trouble scraping that $175/month? How long are you going to pay $175/month for something that isn't making money? What if, instead, this became a part-time job of yours? If I was a commercial user of your product, some assurance that your random personal situations aren't going to affect the product stability for a long time would be a good thing.
- jenny91 2y agoI really like the idea. Why OMT instead of protomaps? The latter is clearly where the community is moving towards (albeit very slowly). I'm somewhat sceptical about the "free with no API keys" idea. I guess your service is not guaranteed to be up so no one too big will rely on it. But what if you start getting abuse or someone using them on some humongous site (e.g. one of those cheap restaurant email builders that always embed a map), and you start getting way too much traffic from random sources and websites. What would you do?
- l3x 2y agoFrom the FAQs on GitHub [1] > What about PMTiles? > I would have loved to use PMTiles; they are a brilliant idea! > Unfortunately, making range requests in 80 GB files just doesn't work in production. It is fine for files smaller than 500 MB, but it has terrible latency and caching issues for full planet datasets. > If PMTiles implements splitting to <10 MB files, it can be a valid alternative to running servers. [1] https://github.com/hyperknot/openfreemap https://github.com/hyperknot/openfreemap
- apitman 2y agoThat's an interesting claim. I make range requests to 100GB+ files (genomics) all the time for work and it works great. I've never considered total file size as directly related to latency in this respect, assuming you have some sort of an index of course.
- bdon 2y agoYou can test this claim directly against a AWS S3 bucket. First 100KB of a 100GB+ file: curl -H "Range: bytes=0-100000" https://overturemaps-tiles-us-west-2-beta.s3.amazonaws.com/2024-07-22/buildings.pmtiles https://overturemaps-tiles-us-west-2-beta.s3.amazonaws.com/2... --output tmp -w "%{time_total}" First 100KB at the 100GB mark: curl -H "Range: bytes=100000000000-100000100000" https://overturemaps-tiles-us-west-2-beta.s3.amazonaws.com/2024-07-22/buildings.pmtiles https://overturemaps-tiles-us-west-2-beta.s3.amazonaws.com/2... --output tmp -w "%{time_total}"
- SebaSeba 2y agoSeems like a great service! We could definitely consider this as an viable option for our startup's application. I am not an expert regarding the OSM data and maps in general, but how customizable is your library, can I somehow relatively easy add housenumbers of the addresses from OSM data on the buildings in the map?
- hyperknot 2y agoThis is totally customizable and the house numbers are already present in the original data, it's just not displayed in the default styles. You can customize the style by using the Maputnik editor, house numbers are visible in the "Inspector" view. https://maputnik.github.io/editor?style=https://tiles.openfreemap.org/styles/bright https://maputnik.github.io/editor?style=https://tiles.openfr...
- mike_d 2y agoI absolutely love this project and had a similar idea on my todo list for a while because I agree there should be at least one free open map provider with a developer friendly stack. If you want free servers/bandwidth around the world, hit me up. My email is in my profile.
- hyperknot 2y agoThanks a lot for the offer, I'll definitely reach out!
- timmg 2y agoJust want to say thank you for making this project. I think there's a good chance I will use it for a (very low bandwidth) personal project.
- hyperknot 2y agoThank you very much, and also thank you for your donation!
- komali2 2y agoI'll be using this this Sunday for a project for a g0v civic hackathon. You solved a problem we had been discussing today. We were going to use protomaps instead https://protomaps.com/ https://protomaps.com/ The pitch for the project is here if anyone in Taiwan is interested in joining: https://hackmd.io/7K4kLkseTYCPI7DWoNv5mA?view https://hackmd.io/7K4kLkseTYCPI7DWoNv5mA?view Hackathon info: https://g0v-jothon.kktix.cc/events/g0v-hackath63n https://g0v-jothon.kktix.cc/events/g0v-hackath63n
- jsilence 2y agoAnybody know of a similar service for weather information?
- xd1936 2y agoUS-only, I've had good luck with the NWS JSON API[1]. Someone posted a while ago on here[2] about taking in various NWS models and creating "Pirate Weather"[3], a drop-in replacement for Dark Sky. 1. https://www.weather.gov/documentation/services-web-api https://www.weather.gov/documentation/services-web-api 2. https://news.ycombinator.com/item?id=34329988 https://news.ycombinator.com/item?id=34329988 3. https://pirateweather.net/ https://pirateweather.net/
- vanillax 2y agoI know the github says docker free.... What would it take to dockerize so people can self host, say on kubernetes.
- hyperknot 2y agoSomeone making a Docker image from this. Instead of using Fabric's commands like c.sudo('git clone ...') it'd use the RUN commands. I think it would be quite a straightforward task to transform it into a Docker file. I'd be happy to link to it on GitHub.
- the-rc 2y agoHard links are to deduplicate identical tiles, right? How much does that save and how close is the tile with most links (empty one(s)?) to the filesystem limits? Inquiring minds want to know...
- hyperknot 2y agoYes, exactly, it's to save space. For example there is one such tile for "ocean", which covers 70% of earth. In total, there are 271 million hard links. So out of 300 million files 271 are hard links! The file system limit is 64k hard-links for the same file, so I have to handle the case when it's reached and then start a new file for the next 64k.
- mdaniel 2y ago> The file system limit is 64k hard-links for the same file I had never heard that, so I went sniffing around and it seems to be ext4 specific[1] but I wasn't able to easily get the limits for ZFS (or xfs, etc), so depending on how much glucose one wished to spend it may be better to use a different FS than all that renaming work around 1: https://en.wikipedia.org/wiki/Hard_link#Limitations https://en.wikipedia.org/wiki/Hard_link#Limitations
- hyperknot 2y agoThe whole extract_mbtiles.py file is 97 lines of code. This contains parsing MBTiles, writing metadata and some CLI specific lines. It's actually quite a concise script for doing this while taking care of the hard-link limits.
- fegu 2y agoJust out of curiosity, is there no clever way to solve this within nginx with rules instead?
- jaakl 2y agoIn nutiteq mobile maps SDK (later Carto, now abandonware) we used specifically compressed bitmap to represent 'water' and 'empty land' tilemasks to cover these two special cases. We provided planet-scale mobile embedded mbtiles package in 30GB if I remember well. This tile mask (quite instant bitmap index) concept should work well for server case also.
- anthk 2y agoI miss some libre client for Google's Street View. On 3D maps, adapting Marble for OSGEarth should be a piece of cake. If not, declaring one with IMGui+layers can be done in a week from any experienced C++ programmer. The included demos for OSGEarth already depict a minimal client with impressive 3D maps for a nearly non-supported demo. I think KDE/Plasma lost a great oportunity there by not adopting OSGEarth.
- maelito 2y agoWhat would be the aim of a libre client for Google's SW ? Street View API is quite expensive. Do you know about https://panoramax.fr https://panoramax.fr ?
- lipitic 2y agoThis is amazing! Last year I made a website for my gf where I had to build a custom map of Paris, and I struggled a lot trying to figure out how to actually make a map from scratch while avoiding paid services like mapbox. I finally managed to hack something up using openstreetmap data, then some manual work in QGIS to customize the look, and voila - I had a bunch of folders filled with raster tiles. This site is deployed for free on Netlify and is basically just a React SPA, a public folder with tiles, and I give the tile URL template to the OpenLayers lib to display it all nicely on the screen. Simple and it works! I always wanted to improve the map a bit by using vector tiles as I think it looks nicer, but I thought you need a dedicated server for that? (unless I'm mistaken, correct me if I'm wrong)
- hyperknot 2y agoYes, you need a dedicated server with 128 GB RAM to generate the tiles. For hosting the tiles, you can use anything with 300 GB disk space, CPU is not important.
- adhamsalama 2y agoVery interesting, I might try this at $WORK.
- baggachipz 2y agoI currently use the cyclosm[1] as a tile map for my small web app. I'd love to use OpenFreeMap instead, as cyclosm is quite slow. Is there any way I can do this for bicycle maps? Awesome project. [1] https://www.cyclosm.org https://www.cyclosm.org
- hyperknot 2y agoWhat you need is a bike specific style for OpenMapTiles schema. Maybe you can find it on GitHub. Once you have the style, you can use Maputnik to tune it to your liking like on this link: https://maputnik.github.io/editor/#0.84/0/0 https://maputnik.github.io/editor/#0.84/0/0
- baggachipz 2y agoI found this[2] but I wouldn't know the first thing about how to integrate it, stand it up, serve it, and consume it with leaflet. I'll admit, the world of OSM is quite a labyrinth. [2] https://github.com/cyclemap/openmaptiles-cycle https://github.com/cyclemap/openmaptiles-cycle
- maelito 2y agoAs far as I know, no vector equivalent of cyclosm has been made. OpenMapTiles's data are too poor ("compressed" : different cycle way types are summarized in a unique tag) to make a great cycle map.
- kisamoto 2y agoI am currently exploring the open source mapping world and trying to get a better grasp of what's available. How does this project compare to Apache Baremaps (incubating)? https://baremaps.apache.org/ https://baremaps.apache.org/
- hyperknot 2y agoThey are providing the building blocks for making a self-hosted vector tiles server, they don't actually host the tiles.
- swijck 2y agoI've been waiting for a good alternative to the paid map providers for a while but none of them have really hit near the level of feature parity I needed to be a good enough replacement.
- maelito 2y agoRelated : I'm building https://github.com/laem/cartes https://github.com/laem/cartes, an alternative to Google Maps. On top of a custom protomaps tileset and a few other MapTiler options (such as satellite and hiking), it packs a search engine, a basic OSM place UI, transit calculators (walk, bike with profiles, transit, car), small features like ruler and favorites, transit maps, photos of places, place search by categories, and the French open source street view Panoramax. Of course, given the scope, its alpha software. It's built locally for France and French speaking users, though most of the code is English, some data sets are not. I'm spending ~ 50 % working on transit, lots need to be done. You can test it here : https://cartes.app https://cartes.app. The aim is not to provide map tiles as an API to other project, but to build a UI on it.
- hyperknot 2y agoWow, now that's an ambitious project! I wish you a lot of success with it!
- maelito 2y agoThanks ! It consists of using more focus initiatives like yours and bdon's :)
- zaik 2y agoWow this is one of the best Google Maps clones I've seen so far. Is there a plan to translate the UI into other languages than French? I would be willing to help out, if there is a Weblate interface or something similar.
- maelito 2y agoThanks ! I've raised this issue. Short : nothing yet. https://github.com/laem/cartes/issues/574 https://github.com/laem/cartes/issues/574
- iudqnolq 2y agoI see you're sourcing images from Wikimedia. Have you found any other good sources? I'm working on indexing images by place taken for my own project and am primarily very slowly and jankily enumerating the flickr API. (You can see https://plantopo.com/geophotos https://plantopo.com/geophotos for a pre-alpha view of where I have coverage. Zoom in where there are blue dots and click the map to search. Don't click Oregon or Washington because of a bug I'm working on) Are you using opentripplanner for routing?
- deleted 2y ago[deleted]
- curzondax 2y agoAlternative: https://versatiles.org/ https://versatiles.org/
- Hypnosis6173 2y agoJust saw a german Talk about this yesterday. Versatiles provides a free and open to use Server under tiles.versatiles.org which is sponsored by People around the CCC. Versatiles is also the First to offer a free to use vector card server, which is also amazing. (For the German Readers: https://media.ccc.de/v/ds24-406-versatiles-freie-karten-fr-alle https://media.ccc.de/v/ds24-406-versatiles-freie-karten-fr-a...)
- hyperknot 2y agoYes, Versatiles is a nice truly open project! One of the long term plans for OpenFreeMap is to migrate to Shortbread + Versatiles styles.