1
0
Fork 0
mirror of https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git synced 2024-10-16 13:50:46 +00:00

pull updates from 'main' into 'dev' (#114)

This commit is contained in:
kx1t 2024-07-23 15:45:14 -04:00 committed by GitHub
commit c4317b5653
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 53 additions and 26 deletions

BIN
.DS_Store vendored

Binary file not shown.

View file

@ -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
View file

@ -0,0 +1 @@
.DS_Store

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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