[{"data":1,"prerenderedAt":440},["ShallowReactive",2],{"project-31536217":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":45,"post_text":48,"what":49,"said":107,"maker_in_thread":226,"shape":235,"grid":238,"attempts":400,"same_week":401,"maker_shows":46,"maker_hidden":431,"reader_version":432,"card":433},"31536217","Self-Hosted Maps Stack","Over the past week I built a project to let people self-host an entire maps stack so they don't have to send data to the big G.","post","Show HN: Self-Hosted Maps Stack","https:\u002F\u002Fmaps.ellenhp.me\u002F","maps.ellenhp.me","ellenhp",1653695140,2022,213,66,260,2570,11,"notable","infrastructure","self-hosted maps","web_app",[21,24,25,26,27],"open source maps","osm tile server","geocoder","bicycle routing","curious",0.106,{"positive":31,"neutral":32,"mixed":33,"critical":34},6,16,0,4,26,{"idea":37,"docs":40,"design":41,"execution":42,"pricing":43,"performance":44},{"positive":38,"critical":39},2,1,{"positive":38,"critical":38},{"positive":33,"critical":39},{"positive":33,"critical":33},{"positive":33,"critical":33},{"positive":33,"critical":33},[46,33,33,46,46,47,33,39,33,39,46,33,33,46,33,46,46,46,46,46,33,33,33,46,47,47,47,46,33,46,46,46,33,47,33,33,33,33,39,33],3,5,"Over the past week I built a project to let people self-host an entire maps stack so they don't have to send data to the big G. Right now it includes a base map, geocoder and directions server. Currently only bicycle directions are supported, and I'm only hosting tiles for Seattle because I'm unemployed and can't afford to host data for the whole planet. Check it out!\n\nhttps:\u002F\u002Fmaps.ellenhp.me\u002F\n\nhttps:\u002F\u002Fgithub.com\u002Fellenhp\u002Fheadway\n\nUltimately I'd like to really focus on transit routing (not implemented) but I'll probably throw a driving mode in there too.",{"problem":50,"audience":58,"pricing":66,"motivation":67,"time_to_build":72,"stack":76,"openness":104,"stage":105,"team_size":106},{"value":51,"source":52,"evidence":53},"Lets people self-host a maps stack instead of sending location data to Google.","maker",[54,55],{"id":7},{"id":56,"by":11,"text":57},"31537161","Mostly just that you can self-host this stack and keep your location information private (the way it should be). If you're fine sharing your current and future whereabouts with…",{"value":59,"source":60,"evidence":61},"People who want to keep their location private and self-host maps.","inferred",[62,63],{"id":56,"by":11,"text":57},{"id":64,"by":11,"text":65},"31536734","That sounds wonderful! This project is primarily focused on people who want to self-host a google maps replacement, but self-hosting isn't for everyone so I think it would be…",null,{"value":68,"source":52,"evidence":69},"Privacy: keep location data off big-tech servers; maker was unemployed and building it.",[70,71],{"id":7},{"id":56,"by":11,"text":57},{"value":73,"source":52,"evidence":74},"Built over the past week.",[75],{"id":7},[77,83,89,97],{"value":78,"source":52,"evidence":79},"Valhalla (routing)",[80],{"id":81,"by":11,"text":82},"31542563","Headway uses Valhalla. Most of what I'm doing with this project is the config to bring up the entire stack easily.",{"value":84,"source":52,"evidence":85},"Photon (geocoder)",[86],{"id":87,"by":11,"text":88},"31537924","Didn't realize that about Organic Maps. It also appears to be open-source which is cool. Is its geocoder any good? Search in OsmAnd is painfully slow and not tolerant of typos at…",{"value":90,"source":91,"evidence":92},"MapLibre GL JS (map viewer)","commenter",[93],{"id":94,"by":95,"text":96},"31538942","SahAssar","Where you viewing it on a small window\u002Fscreen the first time? This uses mapbox or maplibre for map viewing and it defaults to collapsing the attribution on small screens:…",{"value":98,"source":91,"evidence":99},"Docker",[100],{"id":101,"by":102,"text":103},"31538165","cmroanirgo","It'd be really great to be able to know what's in the docker black box. It'd be even better to be able to know what the moving parts are for those of us that do self hosting…","open_source","beta","solo",{"praise":108,"objections":126,"requests":149,"questions":174,"alternatives":196},[109,113,120],{"value":110,"source":52,"evidence":111},"Geocoder autocomplete is much better than OsmAnd's.",[112],{"id":87,"by":11,"text":88},{"value":114,"source":91,"evidence":115},"Good name for wayfinding.",[116],{"id":117,"by":118,"text":119},"31541391","uptime","Headway is a great name for wayfinding! Looking forward to this evolving.",{"value":121,"source":52,"evidence":122},"Planetiler is a useful tile generator.",[123],{"id":124,"by":11,"text":125},"31537005","Planetiler is amazing! Thank you for your work.",[127,138,142],{"value":128,"source":91,"evidence":129},"OpenStreetMap attribution was hidden; now shown open on load.",[130,134],{"id":131,"by":132,"text":133},"31538326","Freak_NL","It is hidden under the little ⓘ in the bottom right corner. That is a very meagre interpretation of the attribution guidelines. To help combat the idea that a map must be made by…",{"id":135,"by":136,"text":137},"31538335","patriksvensson","This seems resolved. Attribution toggles open when its loaded now.",{"value":139,"source":91,"evidence":140},"Docker is a black box for self-hosters.",[141],{"id":101,"by":102,"text":103},{"value":143,"source":91,"evidence":144},"No IPv6 support.",[145],{"id":146,"by":147,"text":148},"31538250","miyuru","maps.ellenhp.me has only a IPv4 address and it seems to be hosted on digitalocean, which supports IPv6. would love to have IPv6 support. It should be on default by now, if there…",[150,160,167],{"value":151,"source":91,"evidence":152},"Transit routing support.",[153,157],{"id":154,"by":155,"text":156},"31537147","999900000999","How much money to add transit directions ? I would absolutely love if this supported an API to get directions. I've worked on a few projects with public transit directions and…",{"id":158,"by":11,"text":159},"31537170","I'm planning on tackling transit this weekend!",{"value":161,"source":91,"evidence":162},"Recommend OpenTripPlanner and Pelias.",[163],{"id":164,"by":165,"text":166},"31538383","tuukkah","For a full multimodal routing engine including realtime data for transit, you should have a look at OpenTripPlanner version 2 (if you haven't already):…",{"value":168,"source":91,"evidence":169},"Support for alternative map data sources, such as topographic maps.",[170],{"id":171,"by":172,"text":173},"31537437","SlavikCA","Is it possible to use alternative map data source? I'm looking for a way to generate topographical maps... Or may be you can suggest any alternative project for that?",[175,182,189],{"value":176,"source":91,"evidence":177},"How does this compare to OpenStreetMap, Organic Maps or self-hosting them?",[178],{"id":179,"by":180,"text":181},"31537125","devit","What's the advantage compared to using https:\u002F\u002Fwww.openstreetmap.org\u002F and Organic Maps, or self-hosting them? (the website is…",{"value":183,"source":91,"evidence":184},"Can users set custom road weightings for routing?",[185],{"id":186,"by":187,"text":188},"31540828","frzen","Is there any way to write commands where I could give my own time weighting to certain types of roads for route finding? Google maps, organic maps, osmand+, I still have to…",{"value":190,"source":91,"evidence":191},"Where does the transit data come from?",[192],{"id":193,"by":194,"text":195},"31538083","aaronbrethorst","Neat, where are you going to source your data from?",[197,201,208,212,219],{"value":198,"source":91,"evidence":199},"Organic Maps",[200],{"id":179,"by":180,"text":181},{"value":202,"source":91,"evidence":203},"OsmAnd",[204],{"id":205,"by":206,"text":207},"31537869","zaik","OrganicMaps and OsmAnd operate entirely on local map data and don't send your information to remote servers.",{"value":209,"source":91,"evidence":210},"OpenTripPlanner",[211],{"id":164,"by":165,"text":166},{"value":213,"source":91,"evidence":214},"Graphhopper",[215],{"id":216,"by":217,"text":218},"31539829","AlexTrask","If you only want routes without multimodal you can use Graphhopper https:\u002F\u002Fwww.graphhopper.com\u002F",{"value":220,"source":91,"evidence":221},"Planetiler",[222],{"id":223,"by":224,"text":225},"31536970","zylepe","Nice! I was going to point out the project I’ve been working on [1] to reduce the cost but I see you’ve already found it :-) Feel free to reach out it you run into any issues!…",{"comments":227,"answered":228,"key":229},14,8,[230,231,232],{"id":56,"text":57},{"id":87,"text":88},{"id":233,"text":234},"31540452","Please open an issue with upstream (maplibre-gl-js) if you're not happy with the attribution that it provides by default. On my end I need to do better to make sure that it's…",{"commenters":236,"max_depth":47,"maker_replies":227,"first_comment_mins":47,"lifespan_hours":237},37,83,[239,241,243,245,247,251,255,257,259,261,262,264,266,269,272,273,275,276,278,281,283,285,287,291,294,297,300,301,304,307,309,312,313,317,320,323,325,328,330,333,335,338,340,342,345,347,350,353,354,356,357,360,364,368,370,374,375,378,380,382,385,387,390,392,395,397],[179,33,46,240,180,33],"project\u002Fneutral\u002Fidea",[56,33,33,242,11,39],"project\u002Fneutral\u002Fprivacy",[205,33,33,244,206,33],"commenter\u002Fneutral\u002Fprivacy",[87,33,33,246,11,39],"project\u002Fpositive\u002Fexecution",[248,39,46,249,250,33],"31538176","project\u002Fneutral\u002Fdocs","donalhunt",[252,39,33,253,254,33],"31538260","commenter\u002Fneutral\u002Fdocs","teh_klev",[131,39,39,256,132,33],"project\u002Fcritical\u002Fdocs",[135,39,47,258,136,33],"project\u002Fpositive\u002Fdocs",[260,39,47,258,132,33],"31538354",[94,39,33,253,95,33],[263,39,33,253,132,33],"31539000",[233,39,33,265,11,39],"maker\u002Fneutral\u002Fdocs",[267,39,39,268,250,33],"31538770","project\u002Fcritical\u002Fdesign",[270,38,33,271,11,39],"31536252","maker\u002Fneutral\u002Fnone",[101,38,39,256,102,33],[146,38,46,274,147,33],"project\u002Fneutral\u002Fexecution",[164,38,46,240,165,33],[216,38,33,277,217,33],"commenter\u002Fneutral\u002Fnone",[279,38,33,277,280,33],"31540361","jhgb",[282,38,33,240,11,39],"31540504",[223,46,33,284,224,33],"other\u002Fneutral\u002Fnone",[124,46,33,286,11,39],"other\u002Fpositive\u002Fnone",[288,46,46,289,290,33],"31537423","project\u002Fneutral\u002Fpricing","hedora",[292,46,33,293,11,39],"31537460","other\u002Fneutral\u002Fpricing",[295,46,46,296,224,33],"31538818","project\u002Fneutral\u002Fperformance",[298,34,33,284,299,33],"31536631","avibryant",[186,47,46,240,187,33],[302,31,46,240,303,33],"31537879","tmp538394722",[305,31,46,240,306,33],"31538264","Doctor_Fegg",[308,31,33,277,303,33],"31545357",[310,31,46,311,280,33],"31539118","project\u002Fneutral\u002Fnone",[81,31,33,274,11,39],[314,315,46,311,316,33],"31540377",7,"pmontra",[318,315,33,284,319,33],"31540475","maxerickson",[321,315,33,277,322,33],"31540498","aaaaaaaaata",[324,315,33,277,316,33],"31568000",[326,315,33,284,327,33],"31542301","franga2000",[329,315,33,277,316,33],"31568192",[331,228,46,271,332,33],"31536913","reducesuffering",[334,228,33,274,11,39],"31536960",[117,336,47,337,118,33],9,"project\u002Fpositive\u002Fidea",[154,339,47,337,155,33],10,[158,339,33,341,11,39],"maker\u002Fneutral\u002Fidea",[343,339,47,344,155,33],"31537195","maker\u002Fpositive\u002Fnone",[346,339,33,271,11,39],"31537285",[348,339,46,271,349,33],"31537786","3np",[351,339,33,284,352,33],"31537507","all2",[193,339,46,311,194,33],[355,339,33,240,11,39],"31540470",[171,18,46,240,172,33],[358,359,33,284,280,33],"31539107",12,[361,362,46,289,363,33],"31537577",13,"dawnerd",[365,362,33,366,367,33],"31539785","other\u002Fneutral\u002Fperformance","tppiotrowski",[369,227,33,284,367,33],"31537492",[371,372,47,344,373,33],"31536633",15,"mike_d",[64,372,33,240,11,39],[376,372,33,284,377,33],"31536799","colordrops",[379,372,33,284,11,39],"31536805",[381,372,33,284,373,33],"31544052",[383,372,33,284,384,33],"31537009","raggi",[386,372,33,277,384,33],"31537050",[388,372,33,284,389,33],"31538751","zius",[391,372,33,284,306,33],"31539100",[393,372,39,394,280,33],"31539874","project\u002Fcritical\u002Fidea",[396,32,33,284,290,33],"31537455",[398,32,33,284,399,33],"31537518","KennyBlanken",[],[402,407,411,416,421,426],{"id":403,"name":404,"points":405,"category":406},"31586833","Captain of Industry",1157,"games",{"id":408,"name":409,"points":410,"category":406},"31572258","Don't Wordle",676,{"id":412,"name":413,"points":414,"category":415},"31516108","Vertigo Focus",518,"dev_tools",{"id":417,"name":418,"points":419,"category":420},"31527544","Podbabble",247,"consumer_social",{"id":422,"name":423,"points":424,"category":425},"31580045","GitNoter",241,"productivity",{"id":427,"name":428,"points":429,"category":430},"31580351","Obfuscate",235,"security_privacy",false,"v2",{"id":434,"name":5,"line":435,"ai":431,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":436,"top":18,"kw":437,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":438,"url":9,"mix":439,"praise":110,"objection":128,"sub":21},31536217,"Over the past week I built a project to let people self-host an entire maps stack so they don't have to send…",0.11,[21,24,25,26,27],"3003350101300303333300035553033305000010",[31,32,33,34],1794036620861]