website work

This commit is contained in:
Zsolt Ero
2024-01-11 16:49:46 +01:00
parent 7235fbbd31
commit 8d18554ec7
12 changed files with 424 additions and 97 deletions

21
LICENSE
View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2023 Zsolt Ero
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

67
LICENSE.md Normal file
View File

@@ -0,0 +1,67 @@
## Licenses
The license of this project is [MIT](https://www.tldrlegal.com/license/mit-license).
Map data is from [OpenStreetMap](https://www.openstreetmap.org/copyright).
[OpenMapTiles](https://github.com/openmaptiles/openmaptiles) code is released under the [BSD 3-Clause License](https://tldrlegal.com/license/bsd-3-clause-license-(revised)), design under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [LICENSE.md](https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md).
### Styles
#### Bright
Fork from [openmaptiles/osm-bright-gl-style](https://github.com/openmaptiles/osm-bright-gl-style). The OSM Bright GL Style is derived from [Mapbox Open Styles](https://github.com/mapbox/mapbox-gl-styles). The OSM Bright GL Styles code is released under the [BSD 3-Clause License](https://tldrlegal.com/license/bsd-3-clause-license-(revised)). The OSM Bright GL Styles design is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [LICENSE.md](https://github.com/openmaptiles/osm-bright-gl-style/blob/master/LICENSE.md).
#### Liberty
Fork from [maputnik/osm-liberty](https://github.com/maputnik/osm-liberty). OSM Liberty is a fork of OSM Bright. The OSM Bright GL Style is derived from [Mapbox Open Styles](https://github.com/mapbox/mapbox-gl-styles). The OSM Bright GL Styles code is released under the [BSD 3-Clause License](https://tldrlegal.com/license/bsd-3-clause-license-(revised)). The OSM Bright GL Styles design is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [LICENSE.md](https://github.com/maputnik/osm-liberty/blob/gh-pages/LICENSE.md).
#### Positron
Fork from [openmaptiles/positron-gl-style](https://github.com/openmaptiles/positron-gl-style). The Positron GL Style is derived from [CartoDB Basemaps](https://github.com/CartoDB/CartoDB-basemaps) designed by Stamen and Paul Norman for CartoDB Inc., licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/). The Positron GL styles code is released under the [BSD 3-Clause License](https://tldrlegal.com/license/bsd-3-clause-license-(revised)). The Positron GL Styles design is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [LICENSE.md](https://github.com/openmaptiles/positron-gl-style/blob/master/LICENSE.md).
### Fonts
[Noto Sans](https://www.google.com/get/noto/) is released under the [SIL Open Font License, Version 1.1](https://openfontlicense.org/)
### **Icons**
The [Maki POI icon set](https://github.com/mapbox/maki/blob/master/LICENSE.txt) is licensed under CC0 1.0 Universal.
The right arrow was derived from [Wikipedia](https://commons.wikimedia.org/wiki/File:Arrowright.svg), it is public domain.
### Natural Earth
[Natural Earth](https://www.naturalearthdata.com/) map data is in the public domain.
### Tools
spritezero-cli is from [mapbox/spritezero-cli](https://github.com/mapbox/spritezero-cli), licensed [ISC](https://github.com/mapbox/spritezero-cli/blob/master/LICENSE.md).
---
## Licence of this repo
MIT License
Copyright (c) 2023 Zsolt Ero
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,2 +1,9 @@
# openfreemap
### License
Licenses are listed in [LICENSE.md](LICENSE.md)

View File

@@ -6,3 +6,4 @@ ruff format .
find . -type f -name '*.conf' -path '*/nginx*' -exec nginxfmt -v {} +;

BIN
website/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

23
website/generate.py Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env python
import marko
def generate():
licenses = open('../LICENSE.md').read().split('---')[0]
map_html = open('map.html').read()
text_md = open('text.md').read()
text_md = text_md.replace('{licenses}', licenses)
text_html = marko.convert(text_md)
template = open('template.html').read()
template = template.replace('{text}', text_html)
template = template.replace('{map}', map_html)
open('index.html', 'w').write(template)
if __name__ == '__main__':
generate()

136
website/index.html Normal file
View File

@@ -0,0 +1,136 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OpenFreeMap</title>
<link rel="stylesheet" href="style.css">
<meta name="description" content="Open and free OpenStreetMap hosting">
<meta property="og:title" content="">
<meta property="og:type" content="">
<meta property="og:url" content="">
<meta property="og:image" content="">
<link rel="icon" href="/favicon.ico" sizes="any">
<script src="https://unpkg.com/maplibre-gl/dist/maplibre-gl.js"></script>
<link href="https://unpkg.com/maplibre-gl/dist/maplibre-gl.css" rel="stylesheet" />
</head>
<body>
<img src="logo_512.png" alt="logo" height="200" class="logo">
<h1>OpenFreeMap</h1>
<h2>What is this?</h2>
<p>OpenFreeMap is an open and free OpenStreetMap tile hosting service.</p>
<p>It's truly free: there is no limit on the amount of map views or requests you can make or how you use your map. There is no registration page, user database, API keys nor cookies.</p>
<p>It's truly open source: everything, including the full production setup is on GitHub.</p>
<h2>Why is this important?</h2>
<p>OpenStreetMap is one of the most important collective projects in history. More than 2 million users have contributed to it over 19 years; 3 million edits are made each day.</p>
<p>Unfortunately, when you want to use the map on your website or app, you need to look for a commercial map tile provider and hope your site doesn't get too popular, otherwise you might end up with a $10,000 bill in a single day, like Hoodmaps did <a href="https://twitter.com/levelsio/status/1730659933232730443">*</a>.</p>
<p>You can try self-hosting, but it requires a big server and a lot of time to get it right.</p>
<h2>Who is behind this project?</h2>
<p>I'm Zsolt Ero (<a href="https://twitter.com/hyperknot">twitter</a>, <a href="https://blog.hyperknot.com/">blog</a>). I've created <a href="https://maphub.net/">MapHub</a> and I've been running map hosting in production for 8 years.</p>
<h2>How can I use it?</h2>
<p>Include <a href="https://maplibre.org/maplibre-gl-js/docs/">MapLibre GL JS</a> in <code>&lt;head&gt;</code></p>
<pre><code>&lt;script src=&quot;https://unpkg.com/maplibre-gl/dist/maplibre-gl.js&quot;&gt;&lt;/script&gt;
&lt;link
href=&quot;https://unpkg.com/maplibre-gl/dist/maplibre-gl.css&quot;
rel=&quot;stylesheet&quot;
/&gt;
</code></pre>
<p>And initialize it to a div, like this:</p>
<pre><code>&lt;div id=&quot;map&quot; style=&quot;width: 600px; height: 400px&quot;&gt;&lt;/div&gt;
&lt;script&gt;
const map = new maplibregl.Map({
style: &quot;https://tiles.openfreemap.org/styles/liberty&quot;,
center: [-74.5, 40],
zoom: 9,
container: &quot;map&quot;,
});
&lt;/script&gt;
</code></pre>
<p><div id="map"></div>
<script>
const map = new maplibregl.Map({
style: "https://tiles.openfreemap.org/styles/liberty",
center: [-74.5, 40],
zoom: 9,
container: "map",
});
let nav = new maplibregl.NavigationControl({showCompass:false});
map.addControl(nav, 'top-right');
let marker = new maplibregl.Marker()
.setLngLat([30.5, 50.5])
.addTo(map);
</script>
</p>
<p>If you've used Mapbox GL before, please migrate to MapLibre. It is based on the last open-source version of Mapbox GL, before it went closed-source. A Leaflet based snippet is coming soon.</p>
<p>For mobile apps, you can do the same with <a href="https://maplibre.org/">MapLibre Native.</a></p>
<p>You can also download our processed planet MBTiles and BTRFS images if you want to self-host yourself. Details are in the GitHub at <a href="https://github.com/hyperknot/openfreemap">hyperknot/openfreemap</a>.</p>
<h2>How can I donate or support this project?</h2>
<p>...</p>
<h2>How can I follow this project?</h2>
<p>The main repo is <a href="https://github.com/hyperknot/openfreemap">hyperknot/openfreemap</a></p>
<p>Styles are at <a href="https://github.com/hyperknot/openfreemap-styles">hyperknot/openfreemap-styles</a></p>
<p>twitter: <a href="https://twitter.com/hyperknot">@hyperknot</a></p>
<p>twitter: <a href="https://twitter.com/OpenFreeMapOrg">@OpenFreeMapOrg</a></p>
<p>mastodon zsolt https://elk.zone/sigmoid.social/@hyperknot/followers</p>
<p>mastodon ofm TODO</p>
<h2>Is commercial usage allowed?</h2>
<p>Yes.</p>
<h2>Why did I make this?</h2>
<p>Because I waited for years for someone to offer this service, but realised no one is going to make it. So, I thought I might use my map hosting experience and do it.</p>
<p>I'll share more about the why in a blog post in the future, feel free to subscribe on the links above.</p>
<h2>How can this work? How can a one person project offer unlimited map hosting for free?</h2>
<p>There is no technical reason why vector tile hosting should cost as much as it does today. </p>
<p>Vector tiles are just static files. OK, serving 300 million files is not easy, but at the end of the day they are just files.</p>
<p>Financially, the plan is to keep buying Hetzner servers until they cover the bandwidth. I believe it can work if enough people contribute. If this project helps you save your map hosting costs, please consider our support plans!</p>
<h2>What is the tech stack?</h2>
<p>The map schema is <a href="https://github.com/openmaptiles/openmaptiles">OpenMapTiles</a>.</p>
<p>The tiles are generated by <a href="https://github.com/onthegomap/planetiler">Planetiler</a>.</p>
<p>There is no tile server running, only BTRFS partition images with 300 million hard linked files. </p>
<p>The server is nginx on Ubuntu.</p>
<p>There is no cloud, just dedicated servers on Hetzner.</p>
<p>Currently using Cloudflare, but it's designed so that it can be changed any time.</p>
<p>Moreover, a lot of work is going into customising the styles at <a href="https://github.com/hyperknot/openfreemap-styles">openfreemap-styles</a>.</p>
<h2>What about PMTiles?</h2>
<p>I would have loved to use PMTiles, they are a brilliant idea!</p>
<p>Unfortunately, making range requests in 80 GB files is just not working in production. They are fine for &lt; 500 MB files, but have terrible latency and caching issues for full planet datasets.</p>
<h2>Attribution</h2>
<p>If you are using MapLibre, attributions are automatically added.</p>
<p>If you are using this in a printed media or video, please attribute:</p>
<p><a href="https://openfreemap.org/" target="_blank">OpenFreeMap</a> <a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a> Data from <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a></p>
<p>You don't need to display the OpenFreeMap part, but it's nice if you do.</p>
<h2>Licenses</h2>
<p>The license of this project is <a href="https://www.tldrlegal.com/license/mit-license">MIT</a>.</p>
<p>Map data is from <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>.</p>
<p><a href="https://github.com/openmaptiles/openmaptiles">OpenMapTiles</a> code is released under the <a href="https://tldrlegal.com/license/bsd-3-clause-license-(revised)">BSD 3-Clause License</a>, design under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. <a href="https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md">LICENSE.md</a>.</p>
<h3>Styles</h3>
<h4>Bright</h4>
<p>Fork from <a href="https://github.com/openmaptiles/osm-bright-gl-style">openmaptiles/osm-bright-gl-style</a>. The OSM Bright GL Style is derived from <a href="https://github.com/mapbox/mapbox-gl-styles">Mapbox Open Styles</a>. The OSM Bright GL Styles code is released under the <a href="https://tldrlegal.com/license/bsd-3-clause-license-(revised)">BSD 3-Clause License</a>. The OSM Bright GL Styles design is released under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. <a href="https://github.com/openmaptiles/osm-bright-gl-style/blob/master/LICENSE.md">LICENSE.md</a>.</p>
<h4>Liberty</h4>
<p>Fork from <a href="https://github.com/maputnik/osm-liberty">maputnik/osm-liberty</a>. OSM Liberty is a fork of OSM Bright. The OSM Bright GL Style is derived from <a href="https://github.com/mapbox/mapbox-gl-styles">Mapbox Open Styles</a>. The OSM Bright GL Styles code is released under the <a href="https://tldrlegal.com/license/bsd-3-clause-license-(revised)">BSD 3-Clause License</a>. The OSM Bright GL Styles design is released under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. <a href="https://github.com/maputnik/osm-liberty/blob/gh-pages/LICENSE.md">LICENSE.md</a>.</p>
<h4>Positron</h4>
<p>Fork from <a href="https://github.com/openmaptiles/positron-gl-style">openmaptiles/positron-gl-style</a>. The Positron GL Style is derived from <a href="https://github.com/CartoDB/CartoDB-basemaps">CartoDB Basemaps</a> designed by Stamen and Paul Norman for CartoDB Inc., licensed under <a href="https://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>. The Positron GL styles code is released under the <a href="https://tldrlegal.com/license/bsd-3-clause-license-(revised)">BSD 3-Clause License</a>. The Positron GL Styles design is released under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. <a href="https://github.com/openmaptiles/positron-gl-style/blob/master/LICENSE.md">LICENSE.md</a>.</p>
<h3>Fonts</h3>
<p><a href="https://www.google.com/get/noto/">Noto Sans</a> is released under the <a href="https://openfontlicense.org/">SIL Open Font License, Version 1.1</a></p>
<h3><strong>Icons</strong></h3>
<p>The <a href="https://github.com/mapbox/maki/blob/master/LICENSE.txt">Maki POI icon set</a> is licensed under CC0 1.0 Universal.</p>
<p>The right arrow was derived from <a href="https://commons.wikimedia.org/wiki/File:Arrowright.svg">Wikipedia</a>, it is public domain.</p>
<h3>Natural Earth</h3>
<p><a href="https://www.naturalearthdata.com/">Natural Earth</a> map data is in the public domain.</p>
<h3>Tools</h3>
<p>spritezero-cli is from <a href="https://github.com/mapbox/spritezero-cli">mapbox/spritezero-cli</a>, licensed <a href="https://github.com/mapbox/spritezero-cli/blob/master/LICENSE.md">ISC</a>.</p>
</body>
</html>

BIN
website/logo_512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

28
website/map.html Normal file
View File

@@ -0,0 +1,28 @@
<div id="map"></div>
<script>
const map = new maplibregl.Map({
style: "https://tiles.openfreemap.org/styles/liberty",
center: [-74.5, 40],
zoom: 9,
container: "map",
});
let nav = new maplibregl.NavigationControl({showCompass:false});
map.addControl(nav, 'top-right');
let scale = new maplibregl.ScaleControl({
maxWidth: 80,
unit: 'imperial'
});
map.addControl(scale);
scale.setUnit('metric');
let marker = new maplibregl.Marker()
.setLngLat([30.5, 50.5])
.addTo(map);
</script>

81
website/style.css Normal file
View File

@@ -0,0 +1,81 @@
/*
Josh's Custom CSS Reset
https://www.joshwcomeau.com/css/custom-css-reset/
*/
*, *::before, *::after {
box-sizing: border-box;
}
* {
margin: 0;
}
img, picture, video, canvas, svg {
display: block;
max-width: 100%;
}
input, button, textarea, select {
font: inherit;
}
/* --- start --- */
body {
padding: 0 40px;
line-height: 1.5;
font-size: 17px;
-webkit-font-smoothing: antialiased;
font-family: Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;
font-weight: normal;
color: #000;
}
h1, h2, h3, h4, h5, h6 {
color: #555;
max-width: 600px;
margin: 1em auto 0.5em;
line-height: 1.2;
font-family: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
font-weight: 700;
}
a {
color: #444;
}
.logo {
margin: 0 auto;
}
h1 {
text-align: center;
margin: 0 auto;
}
p {
max-width: 600px;
margin: 0 auto 0.6em;
}
pre {
background: #efefef;
max-width: 800px;
margin: 0 auto;
font-size: 14px;
}
code {
font-family: 'Nimbus Mono PS', 'Courier New', monospace;
font-weight: 600;
background: #efefef;
}
#map {
height: 500px;
width: 100%;
}

29
website/template.html Normal file
View File

@@ -0,0 +1,29 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OpenFreeMap</title>
<link rel="stylesheet" href="style.css">
<meta name="description" content="Open and free OpenStreetMap hosting">
<meta property="og:title" content="">
<meta property="og:type" content="">
<meta property="og:url" content="">
<meta property="og:image" content="">
<link rel="icon" href="/favicon.ico" sizes="any">
<script src="https://unpkg.com/maplibre-gl/dist/maplibre-gl.js"></script>
<link href="https://unpkg.com/maplibre-gl/dist/maplibre-gl.css" rel="stylesheet" />
</head>
<body>
<img src="logo_512.png" alt="logo" height="200" class="logo">
{text}
</body>
</html>

View File

@@ -2,61 +2,58 @@
## What is this?
OpenFreeMap is a free, open-source OpenStreetMap based map hosting service for everyone.
OpenFreeMap is an open and free OpenStreetMap tile hosting service.
It's truly free: there is no limit on the amount of map views or requests you can make.
It's truly free: there is no limit on the amount of map views or requests you can make or how you use your map. There is no registration page, user database, API keys nor cookies.
Actually, there is not even a registration page or a user database, there are no API keys nor cookies.
It's truly open source, not open core. Everything, including the last production detail is up on GitHub.
It's truly open source: everything, including the full production setup is on GitHub.
## Why is this important?
OpenStreetMap is one of the most important collective projects in history. More than 3 million edits are made each day, over 2 million users have contributed to the project so far.
OpenStreetMap is one of the most important collective projects in history. More than 2 million users have contributed to it over 19 years; 3 million edits are made each day.
The problem starts when you want to use a map on your website or app: you need to look for a commercial map provider and hope your site doesn't get too popular, otherwise you might end up with a $10,000 bill in a single day, like Hoodmaps did [*](https://twitter.com/levelsio/status/1730659933232730443).
Unfortunately, when you want to use the map on your website or app, you need to look for a commercial map tile provider and hope your site doesn't get too popular, otherwise you might end up with a $10,000 bill in a single day, like Hoodmaps did [*](https://twitter.com/levelsio/status/1730659933232730443).
Or you can try self-hosting, but it requires a big server and a lot of time to get it right.
You can try self-hosting, but it requires a big server and a lot of time to get it right.
Well, it required: OpenFreeMap also allows you to self-host with a single command.
## Who is behind this project?
## Who is behind this project and why?
I'm Zsolt Ero (twitter, blog). I've created [MapHub](https://maphub.net/) and I've been running map hosting in production for 8 years.
Why did I make this? Because I waited for years for someone to offer this service, but realised no one is going to make it. So, I thought I might use my map hosting experience and do it.
I'll share more about the why in a blog post in the future, feel free to subscribe on the links above.
I'm Zsolt Ero ([twitter](https://twitter.com/hyperknot), [blog](https://blog.hyperknot.com/)). I've created [MapHub](https://maphub.net/) and I've been running map hosting in production for 8 years.
## How can I use it?
Include [MapLibre GL JS](https://maplibre.org/maplibre-gl-js/docs/) in `<head>`
```
<script src='https://unpkg.com/maplibre-gl/dist/maplibre-gl.js'></script>
<link href='https://unpkg.com/maplibre-gl/dist/maplibre-gl.css' rel='stylesheet'/>
<script src="https://unpkg.com/maplibre-gl/dist/maplibre-gl.js"></script>
<link
href="https://unpkg.com/maplibre-gl/dist/maplibre-gl.css"
rel="stylesheet"
/>
```
And use the following in your HTML:
And initialize it to a div, like this:
```
<div id='map' style='width: 600px; height: 400px;'></div>
<div id="map" style="width: 600px; height: 400px"></div>
<script>
var map = new maplibregl.Map({
style: 'https://tiles.openfreemap.org/styles/liberty',
const map = new maplibregl.Map({
style: "https://tiles.openfreemap.org/styles/liberty",
center: [-74.5, 40],
zoom: 9,
container: 'map',
})
container: "map",
});
</script>
```
{map}
If you've used Mapbox GL before, please migrate to MapLibre. It is based on the last open-source version of Mapbox GL, before it went closed-source. A Leaflet based snippet is coming soon.
For mobile apps, you can do the same with [MapLibre Native.](https://maplibre.org/)
You can also download our processed planet MBTiles and BTRFS images if you want to self-host yourself. Details are in the GitHub at [hyperknot/openfreemap](https://github.com/hyperknot/openfreemap).
## How can I donate or support this project?
@@ -66,35 +63,44 @@ For mobile apps, you can do the same with [MapLibre Native.](https://maplibre.or
## How can I follow this project?
github
The main repo is [hyperknot/openfreemap](https://github.com/hyperknot/openfreemap)
twitter zsolt
Styles are at [hyperknot/openfreemap-styles](https://github.com/hyperknot/openfreemap-styles)
twitter ofm
twitter: [@hyperknot](https://twitter.com/hyperknot)
mastodon zsolt
twitter: [@OpenFreeMapOrg](https://twitter.com/OpenFreeMapOrg)
mastodon ofm
mastodon zsolt https://elk.zone/sigmoid.social/@hyperknot/followers
mastodon ofm TODO
#### Is commercial usage allowed?
## Is commercial usage allowed?
Yes.
#### How can this work? How can a one person project offer unlimited tile hosting for free?
## Why did I make this?
Because I waited for years for someone to offer this service, but realised no one is going to make it. So, I thought I might use my map hosting experience and do it.
I'll share more about the why in a blog post in the future, feel free to subscribe on the links above.
## How can this work? How can a one person project offer unlimited map hosting for free?
There is no technical reason why vector tile hosting should cost as much as it does today.
Vector tiles are just static files. OK, serving 300 million files is not easy, but at the end of the day they are just files.
Financially, the plan is basically I keep buying Hetzner servers until they cover the load. I believe it can work, if enough people contribute with the support plans.
Financially, the plan is to keep buying Hetzner servers until they cover the bandwidth. I believe it can work if enough people contribute. If this project helps you save your map hosting costs, please consider our support plans!
### What is the tech stack?
## What is the tech stack?
The map schema is [OpenMapTiles](https://github.com/openmaptiles/openmaptiles).
@@ -106,56 +112,26 @@ The server is nginx on Ubuntu.
There is no cloud, just dedicated servers on Hetzner.
Currently using Cloudflare, but designed so that it can be changed any time.
Currently using Cloudflare, but it's designed so that it can be changed any time.
Moreover, a lot of work went into customising the styles at [openfreemap-styles](https://github.com/hyperknot/openfreemap-styles).
Moreover, a lot of work is going into customising the styles at [openfreemap-styles](https://github.com/hyperknot/openfreemap-styles).
### What about PMTiles hosted on the cloud?
## What about PMTiles?
I would have loved to use PMTiles, they are a brilliant idea!
Unfortunately, making range requests in 80 GB files is just not working in production. They are fine for < 500 MB files, but have terrible latency and caching issues for full planet datasets.
## Attribution
If you are using MapLibre, attributions are automatically added.
## Licenses and attribution
If you are using MapLibre, all attributions are taken care of.
If you are using this in a printed media or web, please attribute:
If you are using this in a printed media or video, please attribute:
<a href="https://openfreemap.org/" target="_blank">OpenFreeMap</a> <a href="https://www.openmaptiles.org/" target="_blank">&copy; OpenMapTiles</a> Data from <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>
You don't need to display the OpenFreeMap part, but it's nice if you do.
don't need to display the OpenFreeMaps text, but it's nice if you do.
Map data from [OpenStreetMap](https://www.openstreetmap.org/copyright).
[OpenMapTiles](https://github.com/openmaptiles/openmaptiles) code is released under the [BSD 3-Clause License](https://tldrlegal.com/license/bsd-3-clause-license-(revised)), design under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [LICENSE.md](https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md).
##### Styles
###### Bright
Fork from [openmaptiles/osm-bright-gl-style](https://github.com/openmaptiles/osm-bright-gl-style). The OSM Bright GL Style is derived from [Mapbox Open Styles](https://github.com/mapbox/mapbox-gl-styles). The OSM Bright GL Styles code is released under the [BSD 3-Clause License](https://tldrlegal.com/license/bsd-3-clause-license-(revised)). The OSM Bright GL Styles design is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [LICENSE.md](https://github.com/openmaptiles/osm-bright-gl-style/blob/master/LICENSE.md).
###### Liberty
Fork from [maputnik/osm-liberty](https://github.com/maputnik/osm-liberty). OSM Liberty is a fork of OSM Bright. The OSM Bright GL Style is derived from [Mapbox Open Styles](https://github.com/mapbox/mapbox-gl-styles). The OSM Bright GL Styles code is released under the [BSD 3-Clause License](https://tldrlegal.com/license/bsd-3-clause-license-(revised)). The OSM Bright GL Styles design is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [LICENSE.md](https://github.com/maputnik/osm-liberty/blob/gh-pages/LICENSE.md).
###### Positron
Fork from [openmaptiles/positron-gl-style](https://github.com/openmaptiles/positron-gl-style). The Positron GL Style is derived from [CartoDB Basemaps](https://github.com/CartoDB/CartoDB-basemaps) designed by Stamen and Paul Norman for CartoDB Inc., licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/). The Positron GL styles code is released under the [BSD 3-Clause License](https://tldrlegal.com/license/bsd-3-clause-license-(revised)). The Positron GL Styles design is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). [LICENSE.md](https://github.com/openmaptiles/positron-gl-style/blob/master/LICENSE.md).
##### Fonts
[Noto Sans](https://www.google.com/get/noto/) is released under the [SIL Open Font License, Version 1.1](https://openfontlicense.org/)
**Icons**
The [Maki POI icon set](https://github.com/mapbox/maki/blob/master/LICENSE.txt) is licensed under CC0 1.0 Universal.
The right arrow was derived from [Wikipedia](https://commons.wikimedia.org/wiki/File:Arrowright.svg), it is public domain.
{licenses}