New article weekly. No noise. Subscribe

MoinCam

A Raspberry Pi–based livestream camera system I built for the Hamburg office, combining hardware control, real-time video streaming, and a web interface for shared remote access.

Goal

Build a small, self-contained livestream system that gives the Hamburg office a live view of the Elbe river, with shared remote control and real-time interaction.

The project combined physical hardware, backend services, and a browser-based frontend into a single deployable system.

Stack

MoinCam runs on a Raspberry Pi with a camera module and servo motors for pan control. The frontend is a React web app served via NGINX, while a Node.js + TypeScript Express API manages camera movement and session state.

The video stream itself is provided by the Motion daemon and reverse-proxied alongside the API. CI/CD pipelines in GitLab handle linting, testing, and deployment directly to the Pi.

Additional integrations pull live ship data from public maritime APIs and display it as an overlay in the UI.

Key Decisions

The system was designed around shared access rather than single-user control. To avoid conflicts, I implemented a server-side queue that grants temporary control to one user at a time, with automatic session expiry after 120 seconds or manual release.

Camera movement is handled directly through GPIO using pigpio, allowing the backend to validate session ownership before executing servo commands.

The frontend was intentionally kept lightweight, focusing on a central livestream view with simple overlaid controls and a dark mode toggle. Everything runs locally on the Raspberry Pi, exposed internally through NGINX with HTTPS and DNS routing.

I initially prototyped parts of the system in Python, but migrated to Node.js with TypeScript for better structure and long-term maintainability.

Outcome

MoinCam became a fully functional in-office system: a live camera feed with interactive control, real-time ship tracking, and a clean web interface accessible across the internal network.

The project brought together hardware assembly, backend infrastructure, frontend development, and deployment automation into a single cohesive setup.

Further Details

MoinCam was built end to end, from assembling the physical hardware (Pi, camera, servos, 3D-printed enclosure, tripod) to designing the control flow between users, API, and hardware.

It’s a practical example of integrating IoT-style hardware with modern web tooling, emphasizing reliability, shared access, and clean separation between streaming, control logic, and UI.

Project screenshot
Project screenshot
Project screenshot