1
0
Fork 0
mirror of https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git synced 2024-11-21 21:30:11 +00:00

intermediate commit (doc updates)

This commit is contained in:
kx1t 2023-03-24 16:44:05 +01:00
parent 2da3f57d5f
commit 6d718ab0a9
3 changed files with 129 additions and 45 deletions

11
.env Normal file
View file

@ -0,0 +1,11 @@
FEEDER_TZ=America/New_York
ADSB_SDR_SERIAL=my_rtlsdr_serial
READSB_RTLSDR_PPM=xxx
FEEDER_LAT=xx.xxxxxx
FEEDER_LONG=-71.23456
FEEDER_ALT_M=xx
FEEDER_ALT_FT=xxx
FEEDER_NAME=my_feeder_name
MULTIFEEDER_UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
FEEDER_HEYWHATSTHAT_ID=xxxxxxxxxxxx
FEEDER_HEYWHATSTHAT_ALTS=3000,10000,30000,40000

View file

@ -17,51 +17,22 @@ In order to accomplish this, the container makes use of the following underlying
* Wiedehopf's [graphs1090](https://github.com/wiedehopf/graphs1090)
* [MLAT Client](https://github.com/adsbxchange/mlat-client.git)
It builds and runs on `linux/amd64`, `linux/arm/v7 (linux/armhf)` and `linux/arm64` architectures.
## `docker-compose.yml` configuration
## `docker-compose.yml` and `.env` configuration
## Up-and-Running with `docker-compose`
## Up-and-Running Quickly with `docker-compose`
An example `docker-compose.xml` file can be found [in this repository](docker-compose.yml). Here are a few basic elements:
* An example [`docker-compose.xml`](docker-compose.yml) file can be found in this repository.
* The accompanying environment variable values are defined in the [`.env`](.env) file in this repository
```yaml
version: '3.8'
Once you have [installed Docker](https://github.com/sdr-enthusiasts/docker-install), you can follow these lines of code to get up and running in very little time:
services:
tar1090:
image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder:latest
tty: true
container_name: ultrafeeder
hostname: ultrafeeder
restart: always
environment:
- TZ=Australia/Perth
- BEASTHOST=readsb
- LAT=-33.33333
- LONG=111.11111
volumes:
- /opt/adsb/tar1090/globe_history:/var/globe_history
- /opt/adsb/tar1090/timelapse1090:/var/timelapse1090
- /opt/adsb/tar1090/graphs1090:/var/lib/collectd
- /proc/diskstats:/proc/diskstats:ro
# - /run/airspy_adsb:/run/airspy_adsb
devices:
- /dev/usb:/dev/usb
ports:
- 8078:80
tmpfs:
- /run:exec,size=64M
- /var/log
```
You should now be able to browse to:
* <http://dockerhost:8078/> to access the tar1090 web interface.
* <http://dockerhost:8078/?replay> to see a replay of past data
* <http://dockerhost:8078/?heatmap> to see the heatmap for the past 24 hours.
* <http://dockerhost:8078/?heatmap&realHeat> to see a different heatmap for the past 24 hours.
* <http://dockerhost:8078/graphs1090/> to see performance graphs
sudo mkdir -p -m 777 /opt/adsb
wget
```
## Ports
@ -209,19 +180,20 @@ In addition to (or instead of) connecting to a SDR or hardware device to get ADS
###### Alternate Configuration Method with `READSB_NET_CONNECTOR`
Instead of (or in addition to) using `BEASTHOST`, you can also define ADSB data ingests using the `READSB_NET_CONNECTOR` parameter. This is the preferred way if you have multiple sources or destinations for your ADSB data. This variable allows you to configure outgoing connections. The variable takes a semicolon (`;`) separated list of `ip,port,protocol`, where:
Instead of (or in addition to) using `BEASTHOST`, you can also define ADSB data ingests using the `READSB_NET_CONNECTOR` parameter. This is the preferred way if you have multiple sources or destinations for your ADSB data. This variable allows you to configure incoming and outgoing connections. The variable takes a semicolon (`;`) separated list of `host,port,protocol[,uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX]`, where:
* `ip` is an IP address. Specify an IP/hostname/containername for outgoing connections.
* `host` is an IP address. Specify an IP/hostname/containername for incoming or outgoing connections.
* `port` is a TCP port number
* `protocol` can be one of the following:
* `beast_reduce_out`: Beast-format output with lower data throughput (saves bandwidth and CPU)
* `beast_reduce_plus_out`: Beast-format output with extra data (UUID). This is the preferred format when feeding the "new" aggregator services
* `beast_out`: Beast-format output
* `beast_reduce_out`: Beast-format output using reduced reporting frequencies
* `beast_reduce_plus_out`: Like `beast_reduce_out`, but including UUID for use by aggregators like adsb.lol/one/fi, etc.
* `beast_in`: Beast-format input
* `raw_out`: Raw output
* `raw_in`: Raw input
* `sbs_out`: SBS-format output
* `vrs_out`: SBS-format output
* `uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX` is an optional parameter that sets the UUID for this specific instance. It will override the global `UUID` parameter. This is only needed when you want to send different UUIDs to different aggregators.
NOTE: If you have a UAT dongle and use `dump978` to decode this, you should use `READSB_NET_CONNECTOR` to ingest UAT data from `dump978`. See example below
@ -453,6 +425,18 @@ Legacy: **We recommend AGAINST enabling this feature** as it has been replaced w
| `TIMELAPSE1090_INTERVAL` | Snapshot interval in seconds | `10` |
| `TIMELAPSE1090_HISTORY` | Time saved in hours | `24` |
## Web Pages
If you have configured the container as described above, you should be able to browse to the following web pages:
You should now be able to browse to:
* <http://dockerhost/> to access the tar1090 web interface.
* <http://dockerhost/?replay> to see a replay of past data
* <http://dockerhost/?heatmap> to see the heatmap for the past 24 hours
* <http://dockerhost/?heatmap&realHeat> to see a different heatmap for the past 24 hours
* <http://dockerhost/?pTracks> to see the tracks of all planes for the past 24 hours
* <http://dockerhost/graphs1090/> to see performance graphs
## Paths
No paths need to be mapped through to persistent storage. However, if you don't want to lose your range outline and aircraft tracks/history and heatmap / replay data on container restart, you can optionally map these paths:
@ -491,13 +475,13 @@ You can look at individual messages and what information they contain, either fo
```shell
# only for hex 3D3ED0
docker exec -it adsb-superfeeder /usr/local/bin/viewadsb --show-only 3D3ED0
docker exec -it ultrafeeder /usr/local/bin/viewadsb --show-only 3D3ED0
# for all aircraft
docker exec -it adsb-superfeeder /usr/local/bin/viewadsb --no-interactive
docker exec -it ultrafeeder /usr/local/bin/viewadsb --no-interactive
# show position / CPR debugging for hex 3D3ED0
docker exec -it adsb-superfeeder /usr/local/bin/viewadsb --cpr-focus 3D3ED0
docker exec -it ultrafeeder /usr/local/bin/viewadsb --cpr-focus 3D3ED0
```
## Logging

89
docker-compose.yml Normal file
View file

@ -0,0 +1,89 @@
version: '3.8'
services:
ultrafeeder:
image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder:latest
tty: true
container_name: ultrafeeder
hostname: ultrafeeder
restart: unless-stopped
ports:
- 80:80
- 30003:30003
- 30005:30005
environment:
# --------------------------------------------------
# SDR related parameters:
- READSB_DEVICE_TYPE=rtlsdr
- READSB_RTLSDR_DEVICE=${ADSB_SDR_SERIAL}
- READSB_RTLSDR_PPM=${ADSB_SDR_PPM}
#
# --------------------------------------------------
# readsb/decoder parameters:
- READSB_LAT=${FEEDER_LAT}
- READSB_LON=${FEEDER_LONG}
- READSB_ALT=${FEEDER_ALT_M}m
- READSB_GAIN=autogain
- READSB_MODEAC=true
- READSB_RX_LOCATION_ACCURACY=2
- READSB_STATS_RANGE=true
- TZ=${FEEDER_TZ}
#
# --------------------------------------------------
# Sources and Aggregator connections:
# (Note - remove the ones you are not using / feeding)
- READSB_NET_CONNECTOR=
dump978,37981,raw_in;
feed.adsb.fi,30004,beast_reduce_plus_out;
in.adsb.lol,30004,beast_reduce_plus_out;
feed.adsb.one,64004,beast_reduce_plus_out;
feed.planespotters.net,30004,beast_reduce_plus_out;
feed.theairtraffic.com,30004,beast_reduce_plus_out
- UUID=${MULTIFEEDER_UUID}
#
# --------------------------------------------------
# MLAT and MLATHUB related parameters:
# MLAT_CONFIG defines who you are feeding MLAT data to, and on what port(s) the results will become available
- MLAT_CONFIG=
feed.adsb.fi,31090,39000;
in.adsb.lol,31090,39001;
feed.adsb.one,64006,39002;
mlat.planespotters.net,31090,39003;
feed.theairtraffic.com,31090,39004
- MLAT_USER=${MULTIFEEDER_MLAT_NAME}
# MLATHUB automatically gets MLAT results data from the feeders defined in MLAT_CONFIG,
# and additionally from the Net Connectors defined with MLATHUB_NET_CONNECTOR
- MLATHUB_NET_CONNECTOR=
piaware,30105,beast_in;
rbfeeder,30105,beast_in;
Radarvirtuel,30105,beast_in
#
# --------------------------------------------------
# TAR1090 (Map Web Page) parameters:
- UPDATE_TAR1090=true
- TAR1090_DEFAULTCENTERLAT=${FEEDER_LAT}
- TAR1090_DEFAULTCENTERLON=${FEEDER_LONG}
- TAR1090_MESSAGERATEINTITLE=true
- TAR1090_PAGETITLE=${FEEDER_NAME}
- TAR1090_PLANECOUNTINTITLE=true
- TAR1090_ENABLE_AC_DB=true
- TAR1090_FLIGHTAWARELINKS=true
- HEYWHATSTHAT_PANORAMA_ID=${FEEDER_HEYWHATSTHAT_ID}
- HEYWHATSTHAT_ALTS=${FEEDER_HEYWHATSTHAT_ALTS}
#
# --------------------------------------------------
# GRAPHS1090 (Decoder and System Status Web Page) parameters:
# The two 978 related parameters should only be included if you are running dump978 for UAT reception (USA only)
- GRAPHS1090_DARKMODE=true
- ENABLE_978=yes
- URL_978=http://dump978/skyaware978
#
volumes:
- /opt/adsb/ultrafeeder/globe_history:/var/globe_history
- /opt/adsb/ultrafeeder/timelapse1090:/var/timelapse1090
- /opt/adsb/ultrafeeder/graphs1090:/var/lib/collectd
- /proc/diskstats:/proc/diskstats:ro
tmpfs:
- /run:exec,size=256M
- /tmp:size=128M
- /var/log:size=32M