Servers and connections¶
Open Settings → Server to manage the services Swiftcam uses. Tap + to add a server, select its type, and give it a name. Server names are case-insensitively unique within each type.
Swiftcam uses a dynamic configuration model instead of one fixed Frigate, go2rtc, WHEP, or Swiftcam Server (Deprecated) endpoint:
- A server represents one logical service and has a type such as go2rtc, WHEP Server, Frigate, Swiftcam Server (Deprecated), or HTTP Server.
- A connection stores one way to reach that server, including its URL, authentication, and connection-specific options.
- A connection set selects a connection, or disables the server, for one or more servers at the same time.
For example, a server named Home might have separate Local, Mobile, and VPN connections. Cameras reference the server rather than a fixed endpoint, so changing its active connection does not require editing the cameras.
Connections¶
Each server can contain multiple connections, but only one connection can be active at a time. All cameras assigned to that server use its active connection. Switching the active connection therefore changes the endpoint and credentials together without requiring camera edits.
The first connection added to a server becomes active automatically. To switch manually, open an inactive connection and select Activate Connection. Activating a Connection Set, either manually or automatically, can also activate its mapped connections or disable mapped servers. A disabled server keeps its camera assignments and settings and becomes available again when one of its connections is activated.
Connection names must be unique within their server. Removing an active connection switches the server to another available connection. Removing the last connection disables the server.
Use the network button in Edit Connection to test a saved connection. The test checks an endpoint appropriate to the server type. For an HTTP Server, it tests the base URL.
Server types¶
go2rtc¶
Use go2rtc for WebRTC live streams and snapshot images. Cameras can select a go2rtc server independently for streaming and snapshots.
Connections support no authentication or HTTP Basic authentication. Prefer Sub Stream makes cameras use their configured sub stream while that connection is active; cameras without a sub stream continue to use the main stream.
Enter the complete go2rtc API base URL, including /api, for example http://go2rtc.local:1984/api. Swiftcam does not add /api; it only appends individual routes such as streams, frame.jpeg, or ws.
WHEP Server¶
Use WHEP Server for standards-based WebRTC playback. It supports video, optional audio, and a per-camera main or sub WHEP path; it does not provide snapshots or stream discovery.
Enter the WHEP server base URL. Each camera supplies a main WHEP path and, optionally, a sub WHEP path. An empty main path uses /whep/<camera name>. Prefer Sub Stream uses the sub path when configured. Connections support no authentication or HTTP Basic authentication.
WHEP is tested when a camera connects because the request requires that camera's path and an SDP offer; it cannot be tested from the server connection alone.
Frigate¶
Use Frigate for snapshots, Review and event data, recordings, and history playback. Items loaded from multiple Frigate servers retain their source server for later actions.
Connections support no authentication, HTTP Basic authentication, or Frigate Login with a username and password. Enable Query for Review on each server whose items should appear in Review. The Review tab is hidden when no configured Frigate server is enabled for Review.
Enter the complete Frigate API base URL, including /api, for example http://frigate.local:5000/api or https://frigate.local:8971/api. Swiftcam does not add /api; it only appends individual routes such as events, config, or a camera snapshot path.
Swiftcam Server (Deprecated)¶
Swiftcam Server is deprecated. Existing connections continue to support low-latency snapshot streaming over its WebSocket snapshot cache. Cameras identify the stream by camera name or their configured Swiftcam Server identifier.
Connections support no authentication or HTTP Basic authentication. Enter the complete Swiftcam Server API base URL, including /api, for example https://swiftcam-server.local:8090/api. Swiftcam does not add /api; it only appends individual routes such as health, metrics, ws, or snapshot.
See Swiftcam Server (Deprecated) for server installation and reverse-proxy configuration.
HTTP Server¶
Use HTTP Server for camera images hosted at arbitrary HTTP(S) endpoints. The connection defines a shared base URL, authentication, and optional headers. It can optionally use {stream} and {camera_name} to construct a per-camera base URL; each camera supplies an image path relative to that base URL.
Connections support no authentication, HTTP Basic authentication, or HTTP Digest authentication. Custom headers are added to every image request. Ignore Certificate Errors is available for HTTPS connections, but disables certificate validation and should be limited to trusted networks.
Connection sets¶
Create a Connection Set under Settings → Server and add the server connections that belong to the set. Each server can appear once and can select one of its saved connections or Disabled. Activating the set applies every selection atomically, keeps camera assignments unchanged, and synchronizes the resolved camera endpoints to Apple Watch if applicable.
Activate a set manually with Activate Connection Set in its editor, or use one of the automatic methods below.
Switch by Wi-Fi network¶
Under Activation conditions, add exact Wi-Fi network names:
- Connecting activates the set when the device joins a Wi-Fi network.
- Disconnecting activates the set after leaving a Wi-Fi network, including when moving to cellular or another Wi-Fi network that is not listed.
Swiftcam evaluates these conditions while the app is active. Reading the current Wi-Fi network name requires While Using the App and Precise Location permission on iOS. Swiftcam requests this permission only when a Wi-Fi condition is added and does not read the SSID when no saved Wi-Fi conditions exist. It does not collect coordinates or monitor location in the background. See App Permissions for details.
Switch with Shortcuts¶
If you do not want to grant Swiftcam location permission, use the Activate Connection Set action with an iOS Shortcuts automation. When adding the action, select the saved connection set that it should activate. The action changes all mapped server connections without opening Swiftcam and can be run manually, with Siri, or from a personal automation.
Shortcuts owns the automation trigger. A Wi-Fi, location, or Bluetooth personal automation does not grant Swiftcam access to that information, but iOS may display a system Running your automation notification when such a trigger runs. Swiftcam cannot suppress that notification.