Free, open-source, self-hostable realtime location IaaS — since 2017.
›About location-service
cagataycali/location-service — MIT (2017), ⭐22, default branch master (readme.md lowercase, no main). "Have your own open source location distance complete solution." Free self-hostable realtime location IaaS. Built because author wanted one and it didn't exist; "Service will remain free and open forever." Stack: Node, Express ^4.15.3, Socket.io ^2.0.3, Sequelize ^4.2.1, mysql2 ^1.3.5 (MySQL spatial GEOMETRY POINT + GLength/LineStringFromWKB/GeomFromText), body-parser, uuid (API keys), userify (usernames), colors, request (geocode). yarn. Models: User(username,occupation,opinion,email,name,key unique), Location(geometry POINT, admin levels 1-4, postal_code, street_address, country, locality, key). User.hasMany(Location). sequelize.sync() on boot. Reverse-geocode via legacy http Google geocode API (uses eval — caveat). Nearby = raw spatial SQL ordered by distance, depth+limit. REST: GET /, POST /create (auto name+uuid key), POST /nearby (token,lat,lon,depth=1,limit=20), POST /add (token,key,lat,lon), POST /delete/:parameter. Socket.io mirrors: createUser/addLocation/nearby/deleteLocation/deleteUser. PORT||3000. Deploy: Heroku (app.json, ClearDB MySQL, CLEARDB_DATABASE_URL in prod; app.json mislabeled "url-shortener") or local (MySQL db location-service root/root, localhost). Client lib: separate repo location-client (yarn add location-client). Roadmap: docs/email/bench/GraphQL/multi-lang clients. Author Çağatay Çalı.