1
0
Fork 0

server/client configs added

This commit is contained in:
leo 2022-09-06 11:25:17 +02:00
parent b8fc96f782
commit 9a66591ed5
7 changed files with 284 additions and 0 deletions

View File

@ -0,0 +1,23 @@
# Receiving ADS-B data and feeding external services
The setup is using a client-server setup to minimize the power used at home. An external VPS is distributing the catched data to external services like Flightradar24 or Flightware
### Server setup
- Raspberry Pi 4
- installed Ubuntu 22.04 minimal
- attached RTL-SDR Receiver connected to an ADS-B antenna
- running feeder_server docker container
- fetching the data and serving this via network
### Client Setup
- VPS on external cloud provider
- installed Ubuntu 22.04 minimal
- fetching the data from above server ("Beasthost")
- distributing the data currently to following services:
- flightaware.com
- flightradar24.com
- radarbox24.com
- adsbexchange.com
- own public map served via tar1090

7
feeder_client/.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
caddy/
graphs1090_rrd/
planefence/
.readsb_json/
tar1090_heatmap/
tar1090_timelapse/
web/

View File

@ -0,0 +1,181 @@
# ports:
# 80 - caddy http
# 443 - caddy https
# 8081 - tar1090
# 8082 - piaware
# 8083 - fr24feed
# 8084 - rbfeeder
# 8085 - adsbx
version: '3.8'
networks:
adsbnet:
services:
tar1090:
image: mikenye/tar1090:latest
tty: true
container_name: tar1090
restart: always
environment:
- UPDATE_TAR1090=true
- TZ="Europe/Berlin"
- BEASTHOST=${BEASTHOST}
- LAT=${LAT}
- LONG=${LON}
- TAR1090_DEFAULTCENTERLAT=${LAT}
- TAR1090_DEFAULTCENTERLON=${LON}
- ENABLE_TIMELAPSE1090=yes
- TIMELAPSE1090_INTERVAL=10
- TIMELAPSE1090_HISTORY=48
- PTRACKS=48
- TAR1090_FLIGHTAWARELINKS=yes
- TAR1090_ENABLE_AC_DB=true
- TAR1090_PAGETITLE=${TAR1090_PAGETITLE}
- TAR1090_PLANECOUNTINTITLE=false
- TAR1090_DISPLAYUNITS=metric
- TAR1090_RANGERINGS=false
- TAR1090_DEFAULTZOOMLVL=7
- TAR1090_SITESHOW=yes
- TAR1090_MAPDIM=false
- READSB_NET_SBS_OUTPUT_PORT=30003
# - READSB_EXTRA_ARGS=--write-json-globe-index --write-globe-history /var/globe_history --net-beast-reduce-interval 2 --net-sbs-reduce
ports:
- 8081:80
- 30003:30003
volumes:
- "/services/feeder/tar1090_heatmap:/var/globe_history"
- "/services/feeder/tar1090_timelapse:/var/timelapse1090"
tmpfs:
- /run:exec,size=64M
- /var/log
caddy:
image: caddy:latest
container_name: caddy
restart: unless-stopped
ports:
- 80:80
- 443:443
volumes:
- /services/feeder/caddy/data:/data
- /services/feeder/web/:/web
- /services/feeder/caddy/config/Caddyfile:/etc/caddy/Caddyfile
depends_on:
- tar1090
piaware:
image: mikenye/piaware:latest
tty: true
container_name: piaware
restart: always
depends_on:
- tar1090
networks:
- adsbnet
ports:
- 8082:8080
environment:
- TZ="Europe/Berlin"
- LAT=${LAT}
- LONG=${LON}
- RECEIVER_TYPE=relay
- BEASTHOST=${BEASTHOST}
- BEASTPORT=${BEASTPORT}
- FEEDER_ID=${PIAWARE_FEEDERID}
tmpfs:
- /run:exec,size=64M
- /var/log
fr24:
image: mikenye/fr24feed:latest
tty: true
container_name: fr24feed
restart: always
depends_on:
- tar1090
networks:
- adsbnet
ports:
- 8083:8754
environment:
- TZ="Europe/Berlin"
- BEASTHOST=${BEASTHOST}
- MLAT=no
- FR24KEY=${FR24KEY}
tmpfs:
- /var/log
rbfeeder:
image: mikenye/radarbox:latest
tty: true
container_name: rbfeeder
restart: always
depends_on:
- tar1090
networks:
- adsbnet
ports:
- 8084:8084
environment:
- TZ="Europe/Berlin"
- BEASTHOST=${BEASTHOST}
- BEASTPORT=${BEASTPORT}
- LAT=${LAT}
- LONG=${LON}
- ALT=415
- SHARING_KEY=${RBFEEDER_SHARING_KEY}
volumes:
- "/services/feeder/radarbox_segfault_fix:/sys/class/thermal:ro"
- "/services/feeder/radarbox_cpuserial_fix/fake_cpuinfo:/proc/cpuinfo"
tmpfs:
- /run:exec,size=64M
- /var/log
adsbx:
image: mikenye/adsbexchange:latest
tty: true
container_name: adsbx
restart: always
depends_on:
- tar1090
ports:
- 8085:8085
networks:
- adsbnet
environment:
- BEASTHOST=${BEASTHOST}
- LAT=${LAT}
- LONG=${LON}
- ALT=415m
- SITENAME=${ADSBX_SITENAME}
- UUID=${ADSBX_UUID}
- TZ="Europe/Berlin"
tmpfs:
- /run:exec,size=64M,uid=1000,gid=1000
- /var/log
planefence:
image: kx1t/planefence
tty: true
container_name: planefence
hostname: planefence
restart: always
# by adding a ports mapping, the planefence website is exposed to the
# host and your internal network:
ports:
- 8088:80
# we are phasing out the .env file in favor of a similar file named
# ~/.planefence/planefence.config. A template of that file will be
# generated automatically when you start the container for the first
# time. Planefence will not work unless you have either a .env file or
# a planefence.config file. Any values defined in planefence.config
# will take priority over those in .env. Uncomment the line below if you
# really want to continue to use your pre-existing .env file.
# Also, update TZ=America/New_York to your own timezone.
#
# LOGLEVEL can be "INFO" (default - all logs) or "ERROR" (only errors)
environment:
- TZ=Europe/Berlin
- LOGLEVEL=INFO
volumes:
# adopt this one to point at your home directory if it is not /home/pi
- /services/feeder/planefence/persist:/usr/share/planefence/persist
# the following exposes the html directory to the host, in case you
# want to use an external http daemon (lighttpd, nginx, etc)
- /services/feeder/planefence/html:/usr/share/planefence/html
tmpfs:
- /run:rw,nosuid,nodev,exec,relatime,size=512M
- /tmp:rw,nosuid,nodev,noexec,relatime,size=128M

11
feeder_client/env_example Normal file
View File

@ -0,0 +1,11 @@
LAT=
LON=
BEASTHOST=
BEASTPORT=30005
TAR1090_PAGETITLE=
CADDY_COMMAND=
PIAWARE_FEEDERID=
FR24KEY=
RBFEEDER_SHARING_KEY=
ADSBX_SITENAME=
ADSBX_UUID=

4
feeder_server/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
.env
autogain/
readsbpb_rrd/
readsbrrd/

View File

@ -0,0 +1,50 @@
version: '3.3'
networks:
adsbnet:
services:
readsb:
image: mikenye/readsb-protobuf:latest
tty: true
privileged: true
container_name: readsb
hostname: readsb
restart: always
devices:
- ${USB} #path of USB device (RTLSDR)
networks:
- adsbnet
ports:
- 80:8080
- 30003:30003
- 30005:30005
- 33333:33333
environment:
- DISABLE_PERFORMANCE_GRAPHS=true
- DISABLE_WEBAPP=true
- VERBOSE_LOGGING=true
- UDEV=1
- TZ=Europe/Berlin
- READSB_DCFILTER=true
- READSB_DEVICE_TYPE=rtlsdr
- READSB_FIX=true
- READSB_GAIN=autogain
- READSB_LAT=${LAT}
- READSB_LON=${LON}
- READSB_MODEAC=true
- READSB_RX_LOCATION_ACCURACY=2
- READSB_STATS_RANGE=true
- READSB_NET_ENABLE=true
- READSB_NET_SBS_OUTPUT_PORT=30003
- READSB_EXTRA_ARGS=--net-beast-reduce-interval 2 --net-sbs-reduce
- INFLUXDBURL=${INFLUXDBURL}
- INFLUXDB_V2=true
- INFLUXDB_V2_BUCKET=${INFLUXDB_V2_BUCKET}
- INFLUXDB_V2_ORG=${INFLUXDB_V2_ORG}
- INFLUXDB_V2_TOKEN=${INFLUXDB_V2_TOKEN}
volumes:
- /services/feeder/autogain:/run/autogain
- /services/feeder/readsbpb_rrd:/run/collectd
- /services/feeder/readsbrrd:/var/lib/collectd/rrd/localhost/readsb
tmpfs:
- /run/readsb
- /var/log

View File

@ -0,0 +1,8 @@
LAT=
LON=
USB=
WEBSITE_PORT=
INFLUXDBURL=
INFLUXDB_V2_BUCKET=
INFLUXDB_V2_ORG=
INFLUXDB_V2_TOKEN=