Sign inSign up

jokneemo/layer400

By jokneemo

•Updated 5 days ago

An ADSB and Drone Id feeder for the Layer400.com

Image
0

124

jokneemo/layer400 repository overview

⁠Layer400 Receiver

Unofficial crude ARM64 container for the Layer400⁠ receiver. It consumes an existing ADS-B Beast TCP feed, such as an Ultrafeeder output, without taking ownership of its RTL-SDR.

⁠Requirements

  • ARM64 Docker host, such as a Raspberry Pi 4 or 5
  • Beast TCP feed reachable from the host
  • Layer400 account and receiver configuration file

⁠Docker Compose

services:
  layer400:
    image: jokneemo/layer400:latest
    restart: unless-stopped
    stop_signal: SIGRTMIN+3
    cgroup: host
    cap_add:
      - SYS_ADMIN
    environment:
      LAYER400_ADSB_BEAST_URL: beast://ultrafeeder:30005
      LAYER400_ENABLE_WIFI: false
      LAYER400_ENABLE_BLUETOOTH: false
    volumes:
      - ./local/config:/etc/layer400
      - ./local/data:/var/lib/layer400
      - /sys/fs/cgroup:/sys/fs/cgroup:rw
    tmpfs:
      - /run
      - /run/lock

Start the receiver:

docker compose up -d
docker compose exec layer400 layer400 setup

Open the HTTPS URL printed by the setup command. Upload the receiver configuration file obtained from Layer400, select Beast TCP, enter the configured Beast URL, and confirm that its antenna is at this station.

Configuration, receiver identity, and queued observations persist under ./local. Keep this directory private and include it in backups.

⁠Configuration

VariableDefaultDescription
LAYER400_ADSB_BEAST_URLbeast://127.0.0.1:30005Beast TCP source. Private LAN addresses and local hostnames are also supported.
LAYER400_ENABLE_WIFIfalsePermits Layer400 Wi-Fi scanner services. Hardware must also be mapped explicitly.
LAYER400_ENABLE_BLUETOOTHfalsePermits Layer400 Bluetooth scanner services. Hardware must also be mapped explicitly.

The container is not privileged and receives no host devices by default. SYS_ADMIN is required by systemd to create the package's service sandboxes. Do not enable privileged mode or map all of /dev. The internal RTL-SDR decoder is disabled because ADS-B comes from the Beast feed.

⁠Status

docker compose exec layer400 systemctl --no-pager --failed
docker compose exec layer400 systemctl --no-pager status layer400-adsb-adapter
docker compose exec layer400 journalctl --no-pager -u layer400-adsb-adapter -n 100

To replace the container while retaining its identity, keep both persistent directories mounted. Removing them requires provisioning the receiver again.

Tag summary

Content type

Image

Digest

sha256:8456a6ffc…

Size

244.7 MB

Last updated

5 days ago

docker pull jokneemo/layer400