Vertex uses config/sources.yml to define operator-managed feeds and local source endpoints.
Start from the template:
cp config/sources.example.yml config/sources.ymlThis file is meant for dynamic source inventory rather than infrastructure configuration.
Use it for:
- radio streams
- RSS and alert feeds
- local network endpoints for sensor or decoder services
- default weather alert zones
Do not use it for:
- API keys
- database or Redis URLs
Region bounding boxes are supported here under regions and are the preferred way to define one or more monitored regions.
API keys and infrastructure values belong in .env.
- The poller hot-reloads this file in roughly five seconds.
- The backend mounts it read-write so UI-created sources can be persisted.
- Entries written by the UI typically use
source: user. - Hand-authored file entries typically use
source: config.
| Section | Purpose |
|---|---|
radio_streams |
Audio feeds for the tactical audio panel |
news_feeds |
RSS or Atom feeds shown in the news panel |
alert_feeds |
High-priority emergency or incident feeds |
poller_sources |
Local or remote machine endpoints for ingestion workers |
alert_zones |
Default NWS alert zone configuration |
regions |
One or more region BBOX definitions used by compatible pollers |
regions in sources.yml is the first-choice geographic scope definition.
Behavior:
- If one or more enabled
regionsentries exist, compatible pollers iterate those region BBOX values. - If
regionsis missing or empty, pollers fall back to.envBBOX_MIN_LAT,BBOX_MAX_LAT,BBOX_MIN_LON, andBBOX_MAX_LON.
Example:
regions:
- id: "home"
name: "Tualatin Valley"
bbox:
min_lat: 44.8
max_lat: 45.9
min_lon: -123.5
max_lon: -121.8
enabled: trueMost source records use a common shape:
| Field | Meaning |
|---|---|
name |
Display label in the UI or logs |
url |
Feed endpoint or host reference |
enabled |
Turns the entry on or off |
source |
Origin marker such as config or user |
Some sections also include format or type to identify how the source should be parsed.
radio_streams defines live audio sources used by the radio panel.
Example:
radio_streams:
- name: "Local P25"
url: "http://192.168.1.x:8000/radio.mp3"
format: mp3
enabled: true
source: configSupported example formats in the template:
mp3oggaac
news_feeds and alert_feeds are used for RSS-like content.
Template formats include:
rssflashalert_xml
Use alert_feeds for high-priority emergency sources and news_feeds for general context feeds.
poller_sources connects Vertex to local services or upstream endpoints used by specific pollers.
Supported example type values in the current template:
adsbaisp25meshcorefireaprs
Example:
poller_sources:
- type: adsb
name: "Primary ADS-B"
url: "http://192.168.1.x:8080/data/aircraft.json"
enabled: true
source: configGuidance by type:
adsb: typically a tar1090 or readsbaircraft.jsonendpointais: typically a WebSocket served by AIS-catcherp25: typically an OP25 metadata endpointmeshcore: typically a MeshCore bridge WebSocketfire: open wildfire feed endpointaprs: APRS-IS host and port ortcp://URI
alert_zones provides default NWS weather alert coverage.
Example:
alert_zones:
nws_zones:
- "ORZ006"
- "ORZ005"
source: configThese zone codes should match the region configured in .env.
- Keep disabled entries in the file when you want quick toggling without losing the endpoint.
- Prefer descriptive
namevalues because they appear in the UI and logs. - Use
source: configfor committed defaults and let the UI keepsource: userfor runtime additions. - Keep
.envandsources.ymlaligned when relocating to a new region.
For environment-level settings, see Environment Configuration.