-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathdocker-compose.example.yml
More file actions
124 lines (116 loc) · 5.18 KB
/
Copy pathdocker-compose.example.yml
File metadata and controls
124 lines (116 loc) · 5.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# ADS-B 3D Viewer - Deployment Example
#
# Three ways to run this:
#
# 1. Single station, live-only → use the adsb-3d service as-is
# 2. Single station, with history → also enable track-service + timescaledb-adsb
# 3. Multi-feed (network of receivers) → add FEED2_*, FEED3_*, ... blocks
#
# Adding a new remote feed = 4 env vars (NAME, URL, LAT, LON). The entrypoint
# wires up nginx proxies, the frontend feed switcher, and FEED_MODE for you.
services:
adsb-3d:
image: ghcr.io/hook-365/adsb-3d:latest
container_name: adsb-3d
restart: unless-stopped
environment:
# ── Local station ────────────────────────────────────────────────
- LATITUDE=45.0000
- LONGITUDE=-90.0000
- ALTITUDE=1000
- LOCATION_NAME=My Station
- FEEDER_URL=http://ultrafeeder
# ── Optional features ────────────────────────────────────────────
- ENABLE_HISTORICAL=false # true to enable historical playback
- ENABLE_ACARS=false # true to enable ACARS (needs acars-service)
- HIDE_TOWER=false # true to hide home tower (privacy)
# ── Voice scanner (opt-in, requires a voice-services stack) ──────
# When ENABLE_VOICE=true the frontend renders a call-feed Voice panel
# (one clip per transmission) and nginx proxies /voice/calls + /voice/ws
# to the voice-events sidecar. Stand up rtl_airband + Icecast + the
# voice-events sidecar yourself (see docs/VOICE.md); leave disabled if
# you don't run that stack.
# - ENABLE_VOICE=false
# - VOICE_EVENTS_HOST=voice-events:8001 # sidecar — /voice/calls + /voice/ws
# - VOICE_STREAM_HOST=voice-icecast:8000 # Icecast host (nginx compat only;
# # the frontend plays calls, not the stream)
# ── Multi-feed (uncomment to enable feed switching) ──────────────
# One block per remote receiver. Slot 1 is THIS station (local) — its
# LAT/LON/NAME override the values above when set. Slots 2+ are remote
# adsb-3d instances reachable over HTTP; FEED{N}_URL is just host:port.
#
# - FEED1_NAME=Home Station
# - FEED1_LAT=45.0000 # overrides LATITUDE above when set
# - FEED1_LON=-90.0000
# - FEED1_ALT=1000
#
# - FEED2_NAME=Remote Site A
# - FEED2_URL=192.0.2.10:8086
# - FEED2_LAT=43.0000
# - FEED2_LON=-89.0000
# - FEED2_COLOR=#ff8c4c # optional badge color
# - FEED2_ACARS=true # optional, enable ACARS for this feed
#
# - FEED3_NAME=Remote Site B
# - FEED3_URL=192.0.2.20:8086
# - FEED3_LAT=43.0000
# - FEED3_LON=-87.0000
ports:
- "8086:80"
# Uncomment for historical mode:
# depends_on:
# - track-service
# ── Historical mode (uncomment to enable) ──────────────────────────────
# The DB password below uses ${DB_PASSWORD} — set it ONCE in a .env file
# next to this compose file (see .env.example). Docker Compose substitutes
# it into all three DB services, so the credential can never drift.
# track-service:
# image: ghcr.io/hook-365/adsb-track-service:latest
# container_name: track-service
# restart: unless-stopped
# environment:
# - FEEDER_URL=http://ultrafeeder
# - DB_HOST=timescaledb-adsb
# - DB_PORT=5432
# - DB_NAME=adsb_tracks
# - DB_USER=adsb
# - DB_PASSWORD=${DB_PASSWORD:?set DB_PASSWORD in your .env file}
# - COLLECTION_INTERVAL=5
# ports:
# - "8087:8000"
# depends_on:
# - timescaledb-adsb
# timescaledb-adsb:
# image: timescale/timescaledb:2.17.2-pg16
# container_name: timescaledb-adsb
# restart: unless-stopped
# environment:
# - POSTGRES_DB=adsb_tracks
# - POSTGRES_USER=adsb
# - POSTGRES_PASSWORD=${DB_PASSWORD:?set DB_PASSWORD in your .env file}
# volumes:
# - timescaledb-data:/var/lib/postgresql/data
# ports:
# - "5433:5432"
# ── ACARS service (uncomment to enable) ────────────────────────────────────
# Requires an external acarshub stack (or acarsdec) feeding TCP port 15550.
# Run that stack yourself; this service connects to it by hostname/IP.
# Also set ENABLE_ACARS=true on the adsb-3d service above.
# acars-service:
# image: ghcr.io/hook-365/adsb-acars-service:latest
# container_name: acars-service
# restart: unless-stopped
# environment:
# - ACARS_HOST=acarshub # hostname or IP of your acarshub/acarsdec
# - ACARS_PORT=15550
# - STATION_ID=MY_STATION
# - DB_HOST=timescaledb-adsb
# - DB_PORT=5432
# - DB_NAME=adsb_tracks
# - DB_USER=adsb
# - DB_PASSWORD=${DB_PASSWORD:?set DB_PASSWORD in your .env file}
# depends_on:
# - timescaledb-adsb
# Uncomment for historical mode:
# volumes:
# timescaledb-data: