Skip to content

A ship location system that exposes AIS data sourced from aisstream.io

Notifications You must be signed in to change notification settings

mikeewhite/ship-locator

Repository files navigation

🚢 Ship Locator

build status codecov

This repository represents a learning exercise in using the technologies listed below to build a ship location system that exposes AIS data sourced from aisstream.io via a websocket API using the following architecture:

Backend

APIs

Frontend

Observability

The result is a UI that allows you to search on either MMSI or ship name (utilizing fuzzy matching) and display the ships last known location on a map:

Usage

Docker

Create a .env file in the root of this repo with the following content

# API key for websocket (get yours from https://aisstream.io/)
SHIPLOC_WEBSOCKETAPIKEY="YOUR-API-KEY" 

# API key for Google Maps Javascript API (see https://developers.google.com/maps/documentation/javascript/get-api-key)
REACT_APP_GOOGLE_MAPS_API_KEY="YOUR-API-KEY"

The applications can then be started via Docker using:

docker compose up -d

Once started the following services will be available:

Name URL Login
Dashboard http://localhost:3001 -
Grafana (metrics) http://localhost:3002 admin/admin
Jaeger UI (tracing) http://localhost:16686 -
pgAdmin (DB UI) http://localhost:5050 admin@admin.com/admin (and postgres for saved server configuration)

About

A ship location system that exposes AIS data sourced from aisstream.io

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published