Overview
Discover what makes Screego powerful
Screego is a lightweight, self‑hosted screen‑sharing service designed for developers who need low‑latency, high‑resolution streaming without the overhead of full video conferencing suites. It exposes a minimal HTTP/WebRTC API that can be embedded into existing collaboration tools or used as a standalone demo server. The core idea is to provide a “screen‑sharing box” that can be started with a single binary or Docker image, and then integrated into any workflow via a simple URL.
Multi‑user screen sharing
Secure transfer via WebRTC
Low latency / High resolution
Integrated TURN
Overview
Screego is a lightweight, self‑hosted screen‑sharing service designed for developers who need low‑latency, high‑resolution streaming without the overhead of full video conferencing suites. It exposes a minimal HTTP/WebRTC API that can be embedded into existing collaboration tools or used as a standalone demo server. The core idea is to provide a “screen‑sharing box” that can be started with a single binary or Docker image, and then integrated into any workflow via a simple URL.
Key Features
- Multi‑user screen sharing – A single host can stream to multiple viewers simultaneously, with each viewer receiving a separate WebRTC peer connection.
- Secure transfer via WebRTC – All media streams are encrypted end‑to‑end; signalling is performed over HTTPS to avoid man‑in‑the‑middle attacks.
- Low latency / High resolution – Uses hardware‑accelerated video capture (X11/Wayland) and configurable codecs to keep latency under 200 ms even on modest hardware.
- Integrated TURN – Built‑in TURN server (STUN/TURN) for NAT traversal, reducing the need to provision external relay infrastructure.
- Docker / single binary – The application is distributed as a static Go binary and a ready‑to‑run Docker image, simplifying deployment on any Linux host.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Go 1.22 (static binary) |
| Transport | WebRTC (pion/webrtc), HTTP/HTTPS for signalling |
| Media Capture | X11/Xvfb, Wayland, or virtual framebuffer (headless) |
| TURN | pion/turn (self‑contained STUN/TURN server) |
| Persistence | None – all state is kept in memory; configuration via environment variables or JSON files |
| Packaging | Docker (official image screego/server), OCI‑compatible container registry support |
The codebase is intentionally minimal: a single HTTP endpoint serves the signalling JSON, while the Go WebRTC stack handles peer negotiation and media piping. No external database or message broker is required, which keeps the system highly portable.
Core Capabilities & APIs
- Signalling API –
/api/roomaccepts a JSON payload containing the screen‑capture parameters and returns an SDP offer. - WebSocket / HTTP long‑poll – Clients can connect over WebSocket for real‑time signalling or fall back to HTTP polling.
- Room management – Rooms are identified by UUIDs; the server automatically cleans up empty rooms after a configurable timeout.
- Custom codecs – Developers can override default VP8/VP9 settings via environment variables to balance bandwidth and quality.
- Metrics – Prometheus‑compatible
/metricsendpoint exposes connection counts, bitrate, and latency statistics.
Deployment & Infrastructure
- Self‑hosting – A single binary or Docker container runs on any Linux distribution. No privileged ports are needed; the server listens on standard HTTPS (443) and STUN/TURN ports (3478).
- Scalability – Each instance can handle dozens of concurrent streams; horizontal scaling is achieved by running multiple instances behind a load balancer that preserves session affinity.
- Containerization – The Docker image is built with
scratchbase, ensuring a small footprint (~30 MB). It can be deployed on Kubernetes, Docker‑Compose, or directly viadocker run. - Resource usage – CPU: 10–20 % per active stream on a modern CPU; RAM: ~100 MB base + 10–20 MB per stream.
Integration & Extensibility
- Plugin hooks – The signalling handler exposes a Go interface that can be implemented to add authentication, logging, or custom room‑creation logic.
- Webhooks – Optional HTTP callbacks can be configured to notify external services when a room starts or ends.
- SDK – A small JavaScript SDK (available on npm) abstracts the signalling and WebRTC setup, making it trivial to embed Screego into web applications.
- Customization – The UI is a static SPA; developers can replace it with their own front‑end or use the raw API directly.
Developer Experience
- Configuration – Environment variables (
Screego_prefix) control ports, TURN credentials, and media capture options. - Documentation – The official repo contains a comprehensive README, API reference, and deployment guides.
- Community – Active GitHub discussions and a public demo instance (
app.screego.net) provide quick feedback loops. - Licensing – MIT‑licensed, allowing unrestricted use in commercial or internal projects.
Use Cases
| Scenario | Why Screego Fits |
|---|---|
| Code reviews | Share a high‑resolution IDE window with minimal lag, perfect for pair programming. |
| Live demos | Quickly expose a screen to external stakeholders without installing bulky tools. |
| Remote support | Embed the viewer in a help‑desk portal; agents can see the user’s screen in real time. |
| Education | Deploy on a classroom server to broadcast lectures while preserving bandwidth. |
Advantages Over Alternatives
- Performance – Zero‑copy Go WebRTC implementation yields <200 ms latency on 100 Mbps links.
- Simplicity – No external media server or database; a single binary is all you need.
- Flexibility – Full control over codecs, TURN credentials, and room lifecycle through code or env vars.
- **Open‑
Open SourceReady to get started?
Join the community and start self-hosting Screego today
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Explore More Apps
Tiny File Manager
Lightweight web file manager in a single PHP file
Pangolin
Secure tunneled reverse proxy for any network
NymphCast
Turn any Linux device into a network media streamer
Graphweaver
Build a single GraphQL API from any data source
ZNC
Advanced IRC bouncer for persistent chat sessions
Gitea
Fast, lightweight self-hosted Git platform