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:
parent
2da3f57d5f
commit
6d718ab0a9
3 changed files with 129 additions and 45 deletions
11
.env
Normal file
11
.env
Normal 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
|
74
README.md
74
README.md
|
@ -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
89
docker-compose.yml
Normal 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
|
Loading…
Reference in a new issue