Go service handling IP camera provisioning, integration of a media streaming server for RTMP/RTSP ingestion and WebRTC playback, CGI client for IP cameras, REST API, pgx/v5 with embedded SQL migrations.
Go was chosen for the backend for its performance in concurrent and network processing. The service manages the full camera lifecycle: registration, remote configuration via the cameras' CGI protocol, and supervision of active streaming sessions.
The media ingestion service is the core of the streaming system. The cameras push their stream over RTMP, and the server makes them available over RTSP for recording and over WebRTC for browser playback. Source management is done entirely through its REST API, with callbacks (on_publish/on_unpublish) to maintain session state in PostgreSQL.
The data layer uses pgx/v5 with direct SQL, no ORM, for full control over queries and performance. The SQL migrations are embedded in the Go binary. Deployment on AWS uses Docker Compose with PostgreSQL 16, nginx as a reverse proxy with SSL, and a Makefile centralizing build, tests and linting.
Go 1.22 service: REST API for camera provisioning (RTMP push + RTSP pull), external portal API client with automatic token refresh.
Integration of a media streaming server: RTSP source management via REST API, RTMP ingestion from cameras, WebRTC playback for browsers.
CGI client for IP cameras: remote RTMP configuration, WiFi setup, recording parameters.
PostgreSQL via pgx/v5 with direct SQL (no ORM), embedded migrations, streaming session tracking.
AWS deployment with Docker Compose, PostgreSQL 16, nginx reverse proxy, SSL. Makefile with build/test/vet/lint.
Ingest-server callbacks (on_publish/on_unpublish), background status poller, health checks, graceful shutdown.
pgx/v5 direct SQL, embedded migrations
RTMP ingestion, RTSP sources, WebRTC playback
IP camera automation via the CGI protocol
A brief, a repo, or a quick call - whatever works.