Docker container running PlaneFinder's's pfclient
. Designed to work in tandem with sdr-enthusiasts/docker-readsb-protobuf. Builds and runs on x86_64
, 386
, arm64
and arm32v7
(see below).
pfclient
pulls ModeS/BEAST information from a host or container providing ModeS/BEAST data, and sends data to PlaneFinder.
For more information on what pfclient
is, see here: https://planefinder.net/sharing/client.
Planefinder client 5.0.161
will see the following error on startup:
error while loading shared libraries: libpthread.so.0: ELF load command address/offset not page
This, at least at the moment, is not something we can fix and will require the upstream developers to fix. Alternative, in this issue you can find a work around which involves switching to a different kernel.
latest
(master
branch,Dockerfile
)- Version and architecture specific tags available
development
(dev
branch,Dockerfile
, not recommended for production)
First-time users should obtain a PlaneFinder Share Code.
In order to obtain a PlaneFinder Share Code, we will start a temporary container running pfclient
, which will run through a configuration wizard and generate a share code.
To do this, run the command:
docker run \
--rm \
-it \
--name pfclient_temp \
--entrypoint /firstrun \
-p 30053:30053 \
ghcr.io/sdr-enthusiasts/docker-planefinder:latest
Once the container has started, you should see a message such as:
2020-04-11 06:45:25.823307 [-] We were unable to locate a configuration file and have entered configuration mode by default. Please visit: http://172.22.7.12:30053 to complete configuration.
At this point, open a web browser and go to http://dockerhost:30053. Replace dockerhost
with the IP address of your host running Docker. You won't be able to use the URL given in the log output, as the IP address given will be the private IP of the docker container.
In your browser, go through the configuration wizard. When finished, you'll be given a PlaneFinder Share Code. Save this in safe place.
You can now kill the container by pressing CTRL-C
.
If you're not a first time user and are migrating from another installation, you can retrieve your sharing key by logging into your planefinder.net account, and going to "Your Receivers".
docker run \
-d \
--rm \
--name pfclient \
-p 30053:30053 \
-e TZ="YOURTIMEZONE" \
-e BEASTHOST=YOURBEASTHOST \
-e LAT=YOURLATITUDE \
-e LONG=YOURLONGITUDE \
-e SHARECODE=YOURSHARECODE \
ghcr.io/sdr-enthusiasts/docker-planefinder:latest
You should obviously replace YOURBEASTHOST
, YOURLATITUDE
, YOURLONGITUDE
and YOURSHARECODE
with appropriate values.
For example:
docker run \
-d \
--rm \
--name pfclient \
-p 30053:30053 \
-e TZ="Australia/Perth" \
-e BEASTHOST=readsb \
-e LAT=-33.33333 \
-e LONG=111.11111 \
-e SHARECODE=zg84632abhf231 \
ghcr.io/sdr-enthusiasts/docker-planefinder:latest
version: "2.0"
services:
pfclient:
image: ghcr.io/sdr-enthusiasts/docker-planefinder:latest
container_name: pfclient
restart: always
ports:
- 30053:30053
environment:
- TZ=Australia/Perth
- BEASTHOST=readsb
- LAT=-33.33333
- LONG=111.11111
- SHARECODE=zg84632abhf231
Once your container is up and running, you should claim your receiver.
- Go to https://www.planefinder.net/
- Create an account and/or sign in
- Go to "Account" > "Manage Receivers"
- Click "Add receiver" and enter your share code when prompted
There are a series of available environment variables:
Environment Variable | Purpose | Default |
---|---|---|
BEASTHOST |
Required. IP/Hostname of a Mode-S/BEAST provider (dump1090/readsb) | |
BEASTPORT |
Optional. TCP port number of Mode-S/BEAST provider (dump1090/readsy) | 30005 |
SHARECODE |
Required. PlaneFinder Share Code | |
LAT |
Required. Latitude of the antenna | |
LONG |
Required. Longitude of the antenna | |
TZ |
Optional. Your local timezone | GMT |
The following ports are used by this container:
30053
-pfclient
web GUI. Suggest mapping this port for the web GUI.30054
-pfclient
"echo port". Suggest leaving this port unmapped.
- All processes are logged to the container's stdout, and can be viewed with
docker logs [-f] container
.
You can log an issue on the project's GitHub.
I also have a Discord channel, feel free to join and converse.