diff --git a/README.md b/README.md index ade69c1..70b9d02 100644 --- a/README.md +++ b/README.md @@ -63,46 +63,90 @@ services: hostname: shipfeeder restart: always environment: +# general parameters: - VERBOSE_LOGGING= - - SHARING_KEY=${SX_SHARING_KEY} - - SERIAL_NUMBER=${SX_SERIAL_NUMBER} - - RTLSDR_DEVICE_SERIAL=${SX_RTLSDR_DEVICE_SERIAL} - - UDP_FEEDS=${SX_UDP_FEEDS} - - RTLSDR_DEVICE_GAIN=${SX_RTLSDR_GAIN} +# ais-catcher general and website related parameters - AISCATCHER_EXTRA_OPTIONS=${SX_EXTRA_OPTIONS} - - STATION_NAME=${SX_STATION_NAME}${SX_SERIAL_NUMBER} + - STATION_NAME=${STATION_NAME} - STATION_HISTORY=3600 - BACKUP_INTERVAL=5 - - SXFEEDER_LON=${FEEDER_LONG} - - SXFEEDER_LAT=${FEEDER_LAT} - - PROMETHEUS_ENABLE=true - - AISCATCHER_SHAREDATA=true + - FEEDER_LONG=${FEEDER_LONG} + - FEEDER_LAT=${FEEDER_LAT} + - SITESHOW=on + - PROMETHEUS_ENABLE=on + - REALTIME=on +# ais-catcher receiver related parameters + - RTLSDR_DEVICE_SERIAL=${RTLSDR_DEVICE_SERIAL} + - RTLSDR_DEVICE_GAIN=${RTLSDR_DEVICE_GAIN} + - RTLSDR_DEVICE_PPM=${RTLSDR_DEVICE_PPM} + - RTLSDR_DEVICE_BANDWIDTH=${RTLSDR_DEVICE_BANDWIDTH} + - AISCATCHER_DECODER_AFC_WIDE=${AISCATCHER_DECODER_AFC_WIDE} +# aggregrators related parameters + - AIRFRAMES_STATION_ID=${AIRFRAMES_STATION_ID} + - AISCATCHER_FEEDER_KEY=${AISCATCHER_FEEDER_KEY} + - AISHUB_UDP_PORT=${AISHUB_UDP_PORT} + - APRSFI_FEEDER_KEY=${APRSFI_FEEDER_KEY} + - BOATBEACON_SHAREDATA=${BOATBEACON_SHAREDATA} + - HPRADAR_UDP_PORT=${HPRADAR_UDP_PORT} + - MARINETRAFFIC_UDP_PORT=${MARINETRAFFIC_UDP_PORT} + - MYSHIPTRACKING_UDP_PORT=${MYSHIPTRACKING_UDP_PORT} + - RADARVIRTUEL_FEEDER_KEY=${RADARVIRTUEL_FEEDER_KEY} + - RADARVIRTUEL_STATION_ID=${RADARVIRTUEL_STATION_ID} + - SHIPFINDER_SHAREDATA=${SHIPFINDER_SHAREDATA} + - SHIPPINGEXPLORER_UDP_PORT=${SHIPPINGEXPLORER_UDP_PORT} + - SHIPXPLORER_SHARING_KEY=${SHIPXPLORER_SHARING_KEY} + - SHIPXPLORER_SERIAL_NUMBER=${SHIPXPLORER_SERIAL_NUMBER} + - VESSELFINDER_UDP_PORT=${VESSELFINDER_UDP_PORT} + - VESSELTRACKER_UDP_PORT=${VESSELTRACKER_UDP_PORT} + - UDP_FEEDS=${SX_UDP_FEEDS} +# incoming UDP data related parameters: + - AISCATCHER_UDP_INPUTS=${AISCATCHER_UDP_INPUTS} ports: - 90:80 - devices: - - /dev/bus/usb + - 9988:9988/udp + device_cgroup_rules: + - 'c 189:* rwm' tmpfs: - /tmp volumes: - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" - - "/opt/ais/shipfeeder/data:/data" - labels: - - "com.centurylinklabs.watchtower.scope=ais" + - "/opt/ais/shipxplorer/data:/data" + - /dev:/dev:rw ``` Example accompanying `.env` file: -```bash -FEEDER_LAT=42.3788502 -FEEDER_LONG=-71.0360718 -SX_SHARING_KEY=0123456789abcdef -SX_SERIAL_NUMBER=SXTRPI000xxx -SX_RTLSDR_DEVICE_SERIAL=sdr_serial_number_here -SX_RTLSDR_GAIN=auto -SX_UDP_FEEDS=ip1:port1,ip2:port2:JSON on,ip3:port3 -SX_EXTRA_OPTIONS=-p 0 -a 192K -m 4 -go AFC_WIDE on -SX_STATION_NAME=My_station_name_single_string_no_spaces_but_html_char_encoding_is_ok_for_example This is Boston Calling +```text +# ShipFeeder receiver and webpage related parameters: +FEEDER_LAT=xx.xxxxxx +FEEDER_LONG=yy.yyyyyy +RTLSDR_DEVICE_SERIAL=DEVICE-SERIAL +RTLSDR_DEVICE_GAIN=xxx +RTLSDR_DEVICE_PPM=xxx +AISCATCHER_DECODER_AFC_WIDE=on +AISCATCHER_CHANNELS=AB CD +STATION_NAME=My Station Name +# +# keys and params for aggregators: +# If you aren't feeding a specific aggregator, leave the value EMPTY or remove the parameter +AIRFRAMES_STATION_ID=XX-XXXXXXX-AIS +AISCATCHER_FEEDER_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +AISHUB_UDP_PORT=xxxx +APRSFI_FEEDER_KEY=xxxxxxx +APRSFI_STATION_ID=MYCALL +BOATBEACON_SHAREDATA=true +HPRADAR_UDP_PORT=xxxx +MARINETRAFFIC_UDP_PORT=xxxxx +MYSHIPTRACKING_UDP_PORT=xxxxx +RADARVIRTUEL_FEEDER_KEY=xxxxxxxxx +RADARVIRTUEL_STATION_ID=xx +SHIPFINDER_SHAREDATA=true +SHIPPINGEXPLORER_UDP_PORT=xxxxx +SHIPXPLORER_SHARING_KEY=xxxxxxxxxxxxxxxxxxx +SHIPXPLORER_SERIAL_NUMBER=SXTRPI00xxxx +VESSELFINDER_UDP_PORT=xxxx +VESSELTRACKER_UDP_PORT=xxxx ``` Replace the `SHARING_KEY`, `SERIAL_NUMBER`, and `RTLSDR_DEVICE_SERIAL` with the appropriate values. diff --git a/config-examples/.env.sample b/config-examples/.env.sample index 0a33557..f4991d2 100644 --- a/config-examples/.env.sample +++ b/config-examples/.env.sample @@ -1,16 +1,29 @@ -FEEDER_LAT=xx.xxxxx -FEEDER_LONG=-yy.yyyyy -SX_SHARING_KEY=fxxxxxxxxxxxxxxxxxxxxxx7 -SX_SERIAL_NUMBER=SXTRPI000000 -SX_RTLSDR_DEVICE_SERIAL=AIS -SX_RTLSDR_GAIN=auto -SX_UDP_FEEDS=5.9.207.224:xxxxx,ais.vesselfinder.com:xxxx,144.76.54.111:xxxxx -SX_EXTRA_OPTIONS=-p -2 -a 192K -H http://aprs.fi/jsonais/post/zxxxxxxV ID MYCALL PROTOCOL aprs INTERVAL 30 RESPONSE off -H http://10.147.20.76:9995/test ID XX-USXXX-AIS INTERVAL 30 RESPONSE off -SX_STATION_NAME=My Station Name Here -VA_MASTODON_SERVER=airwaves.social -VA_MASTODON_ACCESS_TOKEN=9xxxxxxxxxxxxxxxxxxxxxxxxxxxo -VA_MASTODON_SKIP_FILTER=^[9]{2}[0-9]{7}$$|^[0-9]{7}$$ -VA_MASTODON_CUSTOM_FIELD=Join us! https://vesselalert.com -VA_DISCORD_NAME=My AIS - My Location, USA -VA_DISCORD_AVATAR_URL=https://files.airwaves.social/accounts/avatars/xxxxxxxx.jpeg -VA_DISCORD_WEBHOOKS= +# ShipFeeder receiver and webpage related parameters: +FEEDER_LAT=xx.xxxxxx +FEEDER_LONG=yy.yyyyyy +RTLSDR_DEVICE_SERIAL=DEVICE-SERIAL +RTLSDR_DEVICE_GAIN=xxx +RTLSDR_DEVICE_PPM=xxx +AISCATCHER_DECODER_AFC_WIDE=on +AISCATCHER_CHANNELS=AB CD +STATION_NAME=My Station Name +# +# keys and params for aggregators: +# If you aren't feeding a specific aggregator, leave the value EMPTY or remove the parameter +AIRFRAMES_STATION_ID=XX-XXXXXXX-AIS +AISCATCHER_FEEDER_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +AISHUB_UDP_PORT=xxxx +APRSFI_FEEDER_KEY=xxxxxxx +APRSFI_STATION_ID=MYCALL +BOATBEACON_SHAREDATA=true +HPRADAR_UDP_PORT=xxxx +MARINETRAFFIC_UDP_PORT=xxxxx +MYSHIPTRACKING_UDP_PORT=xxxxx +RADARVIRTUEL_FEEDER_KEY=xxxxxxxxx +RADARVIRTUEL_STATION_ID=xx +SHIPFINDER_SHAREDATA=true +SHIPPINGEXPLORER_UDP_PORT=xxxxx +SHIPXPLORER_SHARING_KEY=xxxxxxxxxxxxxxxxxxx +SHIPXPLORER_SERIAL_NUMBER=SXTRPI00xxxx +VESSELFINDER_UDP_PORT=xxxx +VESSELTRACKER_UDP_PORT=xxxx \ No newline at end of file diff --git a/config-examples/docker-compose.yml.sample b/config-examples/docker-compose.yml.sample index efa43c8..118d494 100644 --- a/config-examples/docker-compose.yml.sample +++ b/config-examples/docker-compose.yml.sample @@ -1,93 +1,58 @@ version: '3.8' - services: - shipxplorer: - image: ghcr.io/sdr-enthusiasts/shipxplorer - container_name: shipxplorer - hostname: shipxplorer - restart: unless-stopped + shipfeeder: + image: ghcr.io/sdr-enthusiasts/docker-shipfeeder + container_name: shipfeeder + hostname: shipfeeder + restart: always environment: - - STATION_NAME=${SX_STATION_NAME} - - SXFEEDER_LAT=${FEEDER_LAT} - - SXFEEDER_LON=${FEEDER_LONG} +# general parameters: + - VERBOSE_LOGGING= +# ais-catcher general and website related parameters - AISCATCHER_EXTRA_OPTIONS=${SX_EXTRA_OPTIONS} - - RTLSDR_DEVICE_GAIN=${SX_RTLSDR_GAIN} - - SERIAL_NUMBER=${SX_SERIAL_NUMBER} - - RTLSDR_DEVICE_SERIAL=${SX_RTLSDR_DEVICE_SERIAL} + - STATION_NAME=${STATION_NAME}${SHIPXPLORER_SERIAL_NUMBER} + - STATION_HISTORY=3600 + - BACKUP_INTERVAL=5 + - FEEDER_LONG=${FEEDER_LONG} + - FEEDER_LAT=${FEEDER_LAT} + - SITESHOW=on + - PROMETHEUS_ENABLE=on + - REALTIME=on +# ais-catcher receiver related parameters + - RTLSDR_DEVICE_SERIAL=${RTLSDR_DEVICE_SERIAL} + - RTLSDR_DEVICE_GAIN=${RTLSDR_DEVICE_GAIN} + - RTLSDR_DEVICE_PPM=${RTLSDR_DEVICE_PPM} + - RTLSDR_DEVICE_BANDWIDTH=${RTLSDR_DEVICE_BANDWIDTH} + - AISCATCHER_DECODER_AFC_WIDE=${AISCATCHER_DECODER_AFC_WIDE} +# aggregrators related parameters + - AIRFRAMES_STATION_ID=${AIRFRAMES_STATION_ID} + - AISCATCHER_FEEDER_KEY=${AISCATCHER_FEEDER_KEY} + - AISHUB_UDP_PORT=${AISHUB_UDP_PORT} + - APRSFI_FEEDER_KEY=${APRSFI_FEEDER_KEY} + - BOATBEACON_SHAREDATA=${BOATBEACON_SHAREDATA} + - HPRADAR_UDP_PORT=${HPRADAR_UDP_PORT} + - MARINETRAFFIC_UDP_PORT=${MARINETRAFFIC_UDP_PORT} + - MYSHIPTRACKING_UDP_PORT=${MYSHIPTRACKING_UDP_PORT} + - RADARVIRTUEL_FEEDER_KEY=${RADARVIRTUEL_FEEDER_KEY} + - RADARVIRTUEL_STATION_ID=${RADARVIRTUEL_STATION_ID} + - SHIPFINDER_SHAREDATA=${SHIPFINDER_SHAREDATA} + - SHIPPINGEXPLORER_UDP_PORT=${SHIPPINGEXPLORER_UDP_PORT} + - SHIPXPLORER_SHARING_KEY=${SHIPXPLORER_SHARING_KEY} + - SHIPXPLORER_SERIAL_NUMBER=${SHIPXPLORER_SERIAL_NUMBER} + - VESSELFINDER_UDP_PORT=${VESSELFINDER_UDP_PORT} + - VESSELTRACKER_UDP_PORT=${VESSELTRACKER_UDP_PORT} - UDP_FEEDS=${SX_UDP_FEEDS} - - SHARING_KEY=${SX_SHARING_KEY} +# incoming UDP data related parameters: + - AISCATCHER_UDP_INPUTS=${AISCATCHER_UDP_INPUTS} ports: - 90:80 - devices: - - /dev/bus/usb + - 9988:9988/udp + device_cgroup_rules: + - 'c 189:* rwm' tmpfs: - /tmp volumes: - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" - "/opt/ais/shipxplorer/data:/data" - - /opt/ais/shipxplorer/cpuinfo/cpuinfo:/proc/cpuinfo - labels: - - com.centurylinklabs.watchtower.scope=ais - - ais-screenshot: - image: ghcr.io/sdr-enthusiasts/screenshot:aiscatcher - tty: true - container_name: ais-screenshot - hostname: ais-screenshot - restart: always - shm_size: 1gb - environment: - - LOAD_SLEEP_TIME=15 - - BASE_URL=http://shipxplorer - - MAXTIME=60 - - MAP_ARGS=map=OpenStreetMap - ports: - - 5043:5042 - labels: - - com.centurylinklabs.watchtower.scope=ais - - vesselalert: - image: ghcr.io/sdr-enthusiasts/vesselalert - container_name: vesselalert - hostname: vesselalert - restart: always - environment: - - AIS_URL=https://shipxplorer - - MASTODON_SERVER=${VA_MASTODON_SERVER} - - MASTODON_ACCESS_TOKEN=${VA_MASTODON_ACCESS_TOKEN} - - MASTODON_SKIP_FILTER=${VA_MASTODON_SKIP_FILTER} - - NOTIFICATION_MIN_DIST=8 - - MASTODON_CUSTOM_FIELD=${VA_MASTODON_CUSTOM_FIELD} - - MASTODON_LINK_SHIPXPLORER=on - - MASTODON_LINK_MARINETRAFFIC=on - - MASTODON_LINK_VESSELFINDER=on - - MASTODON_ONLY_NEW_ON_STARTUP=on - - MASTODON_THROTTLE=on - - NOTIFICATION_MAPURL=on - - DISCORD_NAME=${VA_DISCORD_NAME} - - DISCORD_AVATAR_URL=${VA_DISCORD_AVATAR_URL} - - DISCORD_WEBHOOKS=${VA_DISCORD_WEBHOOKS} - - SCREENSHOT_URL=http://ais-screenshot:5042 - tmpfs: - - /tmp - volumes: - - /opt/ais/vesselalert/data:/data - - "/etc/localtime:/etc/localtime:ro" - - "/etc/timezone:/etc/timezone:ro" - labels: - - com.centurylinklabs.watchtower.scope=ais - - watchtower: - image: containrrr/watchtower - container_name: watchtower-ais - environment: - - TZ=Europe/London - - WATCHTOWER_CLEANUP=true - - WATCHTOWER_ROLLING_RESTART=true - hostname: watchtower-ais - volumes: - - /var/run/docker.sock:/var/run/docker.sock - command: --interval 1800 --scope ais - labels: - - com.centurylinklabs.watchtower.scope=ais \ No newline at end of file + - /dev:/dev:rw \ No newline at end of file