Your 2m vertical already hears the harbor.

Marine VHF runs 156.0 to 157.4 MHz, a stone's throw above the 2-meter band. The antenna on your mast receives it right now. DockTalk turns that into a live harbor monitoring network: add a $45 RTL-SDR, paste one command, and your callsign goes on the board as that harbor's ears.

THE PITCH · 30 SECONDS

What DockTalk is, without the marketing

We monitor marine VHF voice traffic around busy harbors, 16 channels per port simultaneously, and run every transmission through ASR and LLM curation. The output is a live app: Coast Guard traffic, maydays, bridge-to-bridge working channels, all transcribed, mapped against live AIS, and ranked. The receive side is a volunteer network of SDR nodes, and the best node sites in any harbor town are the ones with a real antenna at height. That's you.

2 M AMATEUR 144 148 MARINE VHF 156 157.4 YOUR VHF VERTICAL HEARS ALL OF THIS

Receiving marine VHF is legal for anyone in the U.S.; it's public, unencrypted spectrum. Your license isn't required for any of this, and the node never transmits. There's no TX hardware in it to begin with.

THE SPECS FIRST

What actually runs

ComponentDetail
CaptureOne RTL-SDR at 2.4 MS/s. The whole marine band is 1.4 MHz wide, so a single dongle demodulates all 16 of a port's channels in parallel.
DemodulatorRTLSDR-Airband (NFM), built from a pinned upstream commit, one MP3 stream per channel.
TransportPush-only over HTTPS, outbound port 443, ~32 kbps per channel. The node accepts no inbound connections: no VPN, no mesh, no open ports, nothing listening beyond loopback.
AuthPer-node 256-bit bearer token, minted when your one-use claim code is redeemed, individually revocable. No shared credentials anywhere in the fleet.
PackagingVersioned multi-arch Docker image (arm64 / armv7 / amd64) built by public CI from pinned SHAs. Same bytes on every node; daily self-update against stable; every push phones its version home.
Host OSAny Debian or Ubuntu box with systemd: a Pi, the shack PC, that mini PC running your APRS igate.

The full architecture, security model, and API surface are documented at docktalk.app/nodes. It's push-only because a node host tore the previous design apart; we'd genuinely like you to try the same.

HARDWARE

You probably need one part, maybe zero

  • Antenna: the one you have. Any 2m or dual-band vertical receives 156 to 157.4 MHz with useful gain. Height beats everything else; a vertical at 40 feet will out-hear our kit's window antenna by miles of range.
  • Receiver: any RTL-SDR you trust. RTL-SDR Blog v3/v4, NESDR SMArt, whatever's in the drawer. TCXO helps but isn't required; NFM voice is forgiving.
  • Computer: any always-on Debian/Ubuntu machine. A Pi 3 or better runs a full 16-channel plan comfortably. Zero 2 W works with a trimmed plan.
Two things you already know, stated anyway: give the SDR its own receive antenna; keying your rig into a shared feedline will overload or kill the dongle's front end. And if your QTH is RF-loud (your own station, nearby pagers or broadcast), a 156 MHz band-pass filter in front of the dongle is a cheap fix. That's the entire list of gotchas.
THE DEAL

Your callsign on the watch

GETTING ON

One command, about five minutes

  1. Apply for a claim code — put your callsign in the notes and mention you're coming from this page. Codes are one-use and bound to the first machine that redeems them.
  2. On the box that will run the node:
# refuses to run (and preserves your code) on unsupported machines
curl -fsSL https://docktalk.app/install | sudo bash -s -- --claim DT-XXXX-XXXX --docker

It ends with VERIFIED when your audio is arriving, and your node appears on the leaderboard within a minute. Starting from a blank Pi instead? The step-by-step guide covers flashing to VERIFIED; you'll skip most of it.

Request a claim code