mirror of
https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git
synced 2024-10-16 05:50:44 +00:00
pull updates from 'main' into 'dev' (#114)
This commit is contained in:
commit
c4317b5653
7 changed files with 53 additions and 26 deletions
BIN
.DS_Store
vendored
BIN
.DS_Store
vendored
Binary file not shown.
20
.github/workflows/pre-commit-updates.yaml
vendored
20
.github/workflows/pre-commit-updates.yaml
vendored
|
@ -6,19 +6,13 @@ on:
|
||||||
- cron: 0 0 * * 0
|
- cron: 0 0 * * 0
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update:
|
pre-commit-update:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
name: Updates
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.7
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
- name: Update pre-commit hooks
|
||||||
|
uses: brokenpip3/action-pre-commit-update@0.0.1
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- uses: vrslev/pre-commit-autoupdate@v1.0.0
|
|
||||||
- uses: peter-evans/create-pull-request@v6.0.5
|
|
||||||
with:
|
|
||||||
branch: pre-commit-autoupdate
|
|
||||||
title: "chore(deps): Update pre-commit hooks"
|
|
||||||
commit-message: "chore(deps): Update pre-commit hooks"
|
|
||||||
body: Update pre-commit hooks
|
|
||||||
labels: dependencies
|
|
||||||
delete-branch: True
|
|
||||||
assignees: "fredclausen"
|
|
||||||
|
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.DS_Store
|
|
@ -41,7 +41,7 @@ repos:
|
||||||
- id: shellcheck
|
- id: shellcheck
|
||||||
|
|
||||||
- repo: https://github.com/sirosen/check-jsonschema
|
- repo: https://github.com/sirosen/check-jsonschema
|
||||||
rev: 0.28.5
|
rev: 0.29.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: check-github-actions
|
- id: check-github-actions
|
||||||
- id: check-github-workflows
|
- id: check-github-workflows
|
||||||
|
|
48
README.md
48
README.md
|
@ -21,6 +21,7 @@
|
||||||
- [Alternate Configuration Method with `READSB_NET_CONNECTOR`](#alternate-configuration-method-with-readsb_net_connector)
|
- [Alternate Configuration Method with `READSB_NET_CONNECTOR`](#alternate-configuration-method-with-readsb_net_connector)
|
||||||
- [Optional Networking Parameters](#optional-networking-parameters)
|
- [Optional Networking Parameters](#optional-networking-parameters)
|
||||||
- [MLAT configuration](#mlat-configuration)
|
- [MLAT configuration](#mlat-configuration)
|
||||||
|
- [MLAT troubleshooting](#mlat-troubleshooting)
|
||||||
- [Configuring the built-in MLAT Hub](#configuring-the-built-in-mlat-hub)
|
- [Configuring the built-in MLAT Hub](#configuring-the-built-in-mlat-hub)
|
||||||
- [Web Gui (`tar1090`) Configuration](#web-gui-tar1090-configuration)
|
- [Web Gui (`tar1090`) Configuration](#web-gui-tar1090-configuration)
|
||||||
- [`tar1090` Core Configuration](#tar1090-core-configuration)
|
- [`tar1090` Core Configuration](#tar1090-core-configuration)
|
||||||
|
@ -437,6 +438,34 @@ Note - the optional parameters can be given in any order.
|
||||||
|
|
||||||
The `MLAT_USER` parameter is passed to the MLAT Client and server, and will show up as a "friendly" name on MLAT related stats at your MLAT aggregator. This parameter can only contain alphanumeric (a-z, A-Z, 0-9) characters, dashes (-), or underscores (_).
|
The `MLAT_USER` parameter is passed to the MLAT Client and server, and will show up as a "friendly" name on MLAT related stats at your MLAT aggregator. This parameter can only contain alphanumeric (a-z, A-Z, 0-9) characters, dashes (-), or underscores (_).
|
||||||
|
|
||||||
|
#### MLAT troubleshooting
|
||||||
|
|
||||||
|
Sometimes, MLAT appears not to be working correctly and you will see messages with high `bad_sync_timeout` values, like this:
|
||||||
|
|
||||||
|
```text
|
||||||
|
[2024-06-29 11:31:20.385][mlat-client][in.adsb.lol] peer_count: 15 outlier_percent: 4.6 bad_sync_timeout: 870
|
||||||
|
```
|
||||||
|
|
||||||
|
Here are a few things you may want to try to fix this:
|
||||||
|
|
||||||
|
- Ensure your longitude, latitude, and altitude are ACCURATE
|
||||||
|
- Make sure your device's clock is synced continuously with a reliable NTP service. We recommend `chronyd` over `systemd.timesyncd`
|
||||||
|
- Do not try to send MLAT data from a centralized instance when you are using a remote receiver. Instead, feed MLAT directly from the remote station
|
||||||
|
- On Raspberry Pi 3/3B+, disable HealthCheck by adding the following to the ultrafeeder service section in your `docker-compose.yml` file. (This has to do with docker resource spikes that mess with MLAT timing on slower machines like the Pi3/3B+) :
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ultrafeeder:
|
||||||
|
...
|
||||||
|
healthcheck:
|
||||||
|
disable: true
|
||||||
|
```
|
||||||
|
|
||||||
|
- MLAT often fails when you run your receiver on a Virtual Machine rather than directly on the hardware. Avoid virtual machines (including ProxMox and container-in-container setups) or disable MLAT on them
|
||||||
|
- For FlightAware MLAT, make sure that your location and altitude are PRECISELY defined in your dashboard on the FlightAware website
|
||||||
|
- Never, ever, ever resend MLAT results back to ADSB or MLAT aggregators. Please DO NOT. This will ensure your data is discarded and may get you banned from the aggregator
|
||||||
|
- If you feed your data to multiple aggregators, please do not enable MLAT for FlightRadar24 (per their request). Note that MLAT for FR24 using our containerized setup is disabled by default
|
||||||
|
|
||||||
|
|
||||||
#### Configuring the built-in MLAT Hub
|
#### Configuring the built-in MLAT Hub
|
||||||
|
|
||||||
An "MLAT Hub" is an aggregator of MLAT results from several sources. Since the container is capable of sending MLAT data to multiple ADSB aggregators (like adsb.lol/fi/one, etc), we built in a capability to:
|
An "MLAT Hub" is an aggregator of MLAT results from several sources. Since the container is capable of sending MLAT data to multiple ADSB aggregators (like adsb.lol/fi/one, etc), we built in a capability to:
|
||||||
|
@ -619,6 +648,7 @@ Note - due to design limitations of `readsb`, the `tar1090` graphical interface
|
||||||
| `GRAPHS1090_DISABLE_CHART_DISK_IOPS` | Set to `true` to disable the GRAPHS1090 Disk IOPS chart | Unset |
|
| `GRAPHS1090_DISABLE_CHART_DISK_IOPS` | Set to `true` to disable the GRAPHS1090 Disk IOPS chart | Unset |
|
||||||
| `GRAPHS1090_DISABLE_CHART_DISK_BANDWIDTH` | Set to `true` to disable the GRAPHS1090 Disk Bandwidth chart | Unset |
|
| `GRAPHS1090_DISABLE_CHART_DISK_BANDWIDTH` | Set to `true` to disable the GRAPHS1090 Disk Bandwidth chart | Unset |
|
||||||
| `ENABLE_AIRSPY` | Optional, set to any non-empty value if you want to enable the special AirSpy graphs. See below for additional configuration requirements | Unset |
|
| `ENABLE_AIRSPY` | Optional, set to any non-empty value if you want to enable the special AirSpy graphs. See below for additional configuration requirements | Unset |
|
||||||
|
| `URL_AIRSPY` | Optional, set to the URL where the airspy stats are available, for example `http://airspy_adsb` | Unset |
|
||||||
|
|
||||||
#### Enabling UAT data
|
#### Enabling UAT data
|
||||||
|
|
||||||
|
@ -627,30 +657,26 @@ ADS-B over UAT data is transmitted in the 978 MHz band, and this is used in the
|
||||||
1. Set the following environment parameters:
|
1. Set the following environment parameters:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- URL_978=http://dump978/skyaware978
|
- ENABLE_978=yes
|
||||||
|
- URL_978=http://dump978/skyaware978
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Install the [`docker-dump978` container](https://github.com/sdr-enthusiasts/docker-dump978). Note - only containers downloaded/deployed on/after Feb 8, 2023 will work.
|
2. Install the [`docker-dump978` container](https://github.com/sdr-enthusiasts/docker-dump978). Note - only containers downloaded/deployed on/after Feb 8, 2023 will work.
|
||||||
|
|
||||||
Note that you **must** configure `URL_978` to point at a working skyaware978 website with `aircraft.json` data feed. This means that the URL `http://dump978/skyaware978/data/aircraft.json` must return valid JSON data to this `tar1090` container.
|
Note that you \*_must_- configure `URL_978` to point at a working skyaware978 website with `aircraft.json` data feed. This means that the URL `http://dump978/skyaware978/data/aircraft.json` must return valid JSON data to this `tar1090` container.
|
||||||
|
|
||||||
#### Enabling AirSpy graphs
|
#### Enabling AirSpy graphs
|
||||||
|
|
||||||
Users of AirSpy devices can enable extra `graphs1090` graphs by configuring the following:
|
Users of AirSpy devices can enable extra `graphs1090` graphs by configuring the following:
|
||||||
|
|
||||||
- Set the following environment parameter:
|
1. Set the following environment parameters:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- ENABLE_AIRSPY=yes
|
- ENABLE_AIRSPY=yes
|
||||||
|
- URL_AIRSPY=http://airspy_adsb
|
||||||
```
|
```
|
||||||
|
|
||||||
- To provide the container access to the AirSpy statistics, map a volume in your `docker-compose.yml` file as follows:
|
2. Install the [`airspy_adsb` container](https://github.com/sdr-enthusiasts/airspy_adsb). Note - only containers downloaded/deployed on/after May 9th, 2024 will work with this method.
|
||||||
|
|
||||||
```yaml
|
|
||||||
volumes:
|
|
||||||
- /run/airspy_adsb:/run/airspy_adsb
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Enabling Disk IO and IOPS data
|
#### Enabling Disk IO and IOPS data
|
||||||
|
|
||||||
|
@ -802,6 +828,8 @@ This will:
|
||||||
- configure the ultrafeeder docker container to read GPSD data
|
- configure the ultrafeeder docker container to read GPSD data
|
||||||
- configure the ultrafeeder container so the hostname `host.docker.internal` always resolves to the IP address of the underlying machine (where `gpsd` is running)
|
- configure the ultrafeeder container so the hostname `host.docker.internal` always resolves to the IP address of the underlying machine (where `gpsd` is running)
|
||||||
|
|
||||||
|
If you have any issues, readsb will use verbose output if you add the `GPSD_DEBUG=true` as an environment variable.
|
||||||
|
|
||||||
### Optional parameters regulating the restart of `mlat-client` when the location changes
|
### Optional parameters regulating the restart of `mlat-client` when the location changes
|
||||||
|
|
||||||
The following parameters are all optional and are subject to change. You don't need to set them unless you want to change the default behavior:
|
The following parameters are all optional and are subject to change. You don't need to set them unless you want to change the default behavior:
|
||||||
|
|
|
@ -29,7 +29,7 @@ if ! [[ "$LOGLEVEL" =~ ^(verbose|error|none)$ ]]; then
|
||||||
LOGLEVEL="verbose"
|
LOGLEVEL="verbose"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "${MLAT_CONFIG}" ]] && [[ -z "$MLATHUB_NET_CONNECTOR" ]]; then
|
if [[ -z "${MLAT_CONFIG}" ]] && [[ -z "$MLATHUB_NET_CONNECTOR" ]] && [[ ${#MLATHUB_CONF_ARR[@]} == 0 ]]; then
|
||||||
"${s6wrap[@]}" --args echo "No MLAT servers have been defined in MLAT_CONFIG and no external sources have been defined in MLATHUB_NET_CONNECTOR - no need to start MLATHUB"
|
"${s6wrap[@]}" --args echo "No MLAT servers have been defined in MLAT_CONFIG and no external sources have been defined in MLATHUB_NET_CONNECTOR - no need to start MLATHUB"
|
||||||
exec sleep infinity
|
exec sleep infinity
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -139,6 +139,10 @@ if [ -n "${READSB_DEBUG}" ]; then
|
||||||
READSB_CMD+=("--debug=$READSB_DEBUG")
|
READSB_CMD+=("--debug=$READSB_DEBUG")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if chk_enabled "$GPSD_DEBUG"; then
|
||||||
|
READSB_CMD+=("--devel=debugGPS")
|
||||||
|
fi
|
||||||
|
|
||||||
# Handle --write-state-only-on-exit
|
# Handle --write-state-only-on-exit
|
||||||
if chk_enabled "${READSB_WRITE_STATE_ONLY_ON_EXIT}"; then
|
if chk_enabled "${READSB_WRITE_STATE_ONLY_ON_EXIT}"; then
|
||||||
READSB_CMD+=("--write-state-only-on-exit")
|
READSB_CMD+=("--write-state-only-on-exit")
|
||||||
|
@ -272,7 +276,7 @@ if [[ -n "$READSB_NET_VRS_PORT" ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# make sure the db file exists, and if it does, use it
|
# make sure the db file exists, and if it does, use it
|
||||||
if [[ "$TAR1090_ENABLE_AC_DB" == "true" ]]; then
|
if chk_enabled "$TAR1090_ENABLE_AC_DB"; then
|
||||||
if [[ -e $TAR1090_UPDATE_DIR/aircraft.csv.gz ]]; then
|
if [[ -e $TAR1090_UPDATE_DIR/aircraft.csv.gz ]]; then
|
||||||
READSB_CMD+=("--db-file=$TAR1090_UPDATE_DIR/aircraft.csv.gz")
|
READSB_CMD+=("--db-file=$TAR1090_UPDATE_DIR/aircraft.csv.gz")
|
||||||
elif [[ -e $TAR1090_INSTALL_DIR/aircraft.csv.gz ]]; then
|
elif [[ -e $TAR1090_INSTALL_DIR/aircraft.csv.gz ]]; then
|
||||||
|
|
Loading…
Reference in a new issue