Skip to main content

Ports

This page lists the practical ports you need for installation, troubleshooting, Home Assistant, Docker, streaming, and processing servers.

For installation commands, use the installation guides. For full configuration behavior, the dedicated configuration reference will be written separately.

Quick reference

PortProtocolUsed byPublic by defaultNotes
8000TCP / HTTPToposync origin UI and APIYes in Docker, local-only in Python unless bound to 0.0.0.0Default toposync serve port.
49321TCP / HTTPProcessing server APIOnly if you bind/publish itDefault toposync processing-serve port.
18756TCP / HTTPHome Assistant add-on direct UI/API proxyNoOptional host mapping for browser/mobile direct access.
18757TCP / HTTPHome Assistant add-on internal backend/ingressNoSupervisor ingress target, not meant for direct LAN use.
18758TCP / RTSPHome Assistant add-on RTSP outputNoOptional streaming mapping.
18759TCP / HLSHome Assistant add-on direct HLS engineNoInternal/diagnostic. Normal HLS goes through 18756 proxy.
18760TCP / HTTPHome Assistant add-on WebRTC/WHEP signalingNoOptional streaming mapping.
18761TCP / HTTPHome Assistant add-on MediaMTX APINoInternal; do not publish by default.
18762UDPHome Assistant add-on WebRTC mediaNoOptional WebRTC mapping.
18763TCP / HTTPDocumentation site local previewLocal development onlyUsed by npm run docs:start and npm run docs:serve.
18764TCP / HTTP/WebSocketStreaming MSE sidecar APIInternalUsed by the streaming extension when MSE sidecar is enabled.
50000-50001UDPMediaMTX RTP/RTCP pairDepends on engine exposureAutomatically moved if unavailable.

Origin server

The origin server is the main Toposync process:

toposync serve

Defaults:

SettingDefault
Bind host127.0.0.1
Port8000
HealthcheckGET /api/health
UIGET /
APIGET /api/...

Expose it on the local network:

toposync serve --host 0.0.0.0 --port 8000

Change the default port through environment:

TOPOSYNC_BACKEND_PORT=8080 toposync serve

Docker maps the same internal port through TOPOSYNC_PORT:

TOPOSYNC_PORT=8080 docker compose up -d --build

Processing server

The processing server is used for distributed pipelines:

toposync processing-serve --host 0.0.0.0 --port 49321

Defaults:

SettingDefault
Bind host127.0.0.1
Port49321
Healthcheck/statusGET /api/processing/status
AuthenticationOff unless TOPOSYNC_PROCESSING_USERNAME or TOPOSYNC_PROCESSING_PASSWORD is set

Change the default port:

TOPOSYNC_PROCESSING_PORT=49322 toposync processing-serve

If the processing server is remote, the origin must be able to reach:

http://processing-host:49321

Use Basic Auth on real networks:

TOPOSYNC_PROCESSING_USERNAME=toposync \
TOPOSYNC_PROCESSING_PASSWORD='<strong-password>' \
toposync processing-serve --host 0.0.0.0 --port 49321

Docker

The local Docker image listens on 8000 inside the container.

Default Compose mapping:

ports:
- "${TOPOSYNC_PORT:-8000}:8000"

Examples:

docker compose up -d --build
TOPOSYNC_PORT=8080 docker compose up -d --build

Healthcheck inside the image:

http://127.0.0.1:8000/api/health

Home Assistant add-on

The add-on uses a project-owned port range to avoid common collisions.

PortPublished in add-on configRole
18756/tcpOptional mappingDirect Toposync UI/API proxy for browsers and mobile apps.
18757/tcpInternal ingress portMain Toposync backend behind Home Assistant ingress.
18758/tcpOptional mappingRTSP streaming output.
18759/tcpInternal onlyDirect HLS engine; normal public HLS should use the proxy.
18760/tcpOptional mappingWebRTC/WHEP signaling.
18761/tcpInternal onlyMediaMTX API.
18762/udpOptional mappingWebRTC media transport.

Direct access is disabled until the user maps 18756/tcp in the add-on Network section:

18756/tcp: 18756

Then use:

http://homeassistant.local:18756/
http://home-assistant-ip:18756/

Ingress uses 18757 internally. Do not try to open 18757 from the LAN.

Streaming outside Home Assistant

When the streaming extension runs outside the Home Assistant add-on, MediaMTX defaults are:

PortProtocolPurpose
8554TCP / RTSPRTSP output.
8888TCP / HTTPHLS output.
8889TCP / HTTPWebRTC/WHEP signaling.
9997TCP / HTTPMediaMTX API.
9998TCP / HTTPMediaMTX metrics, loopback-bound by default.
18762UDPWebRTC media transport.
50000-50001UDPRTP/RTCP pair.

The engine picks another free port when a preferred port is busy. Check the runtime status in the streaming settings or API if playback URLs do not match what you expect.

Development ports

PortUsed by
8000Development backend.
5173 or the webpack-selected next portFrontend dev server.
18763Documentation site.
49321Processing server when testing distributed pipelines.

The development script reads .env by default, or another file set through TOPOSYNC_ENV_FILE.

Troubleshooting

Connection refused

Confirm that the process is bound to a network-visible host. For a remote machine, use --host 0.0.0.0, not the default 127.0.0.1.

Port already in use

For the origin:

toposync serve --port 8080

For Docker:

TOPOSYNC_PORT=8080 docker compose up -d

For processing:

toposync processing-serve --port 49322

Home Assistant direct port does not open

Mapping a port in the add-on config is required. Declared ports are not automatically exposed on the host.

HLS works in the sidebar but not outside Home Assistant

Start with 18756/tcp. HLS normally goes through the Toposync HTTP proxy there. Do not publish 18759/tcp unless you are doing advanced diagnostics.