Last Updated: 2025-11-08 Status: Docker deployment complete, API compatibility notes
The datarhei-core container is the underlying engine for Restreamer:
# Deploy datarhei-core
docker run -d \
--name restreamer \
--restart unless-stopped \
-p 8080:8080 \
-p 8181:8181 \
-p 1935:1935 \
-p 6000:6000/udp \
datarhei/restreamer:latest
# Verify deployment
docker ps --filter "name=restreamer"
# Check logs
docker logs restreamer
# Test API
curl http://localhost:8080/apiDeployed Version: datarhei-core v16.16.0
Access Points:
- Web UI: http://localhost:8080
- API: http://localhost:8080/api
- RTMP: rtmp://localhost:1935
- SRT/UDP: localhost:6000
/api/v3/), but datarhei-core uses a different API structure (/api).
Differences:
| Feature | Restreamer UI API | datarhei-core API |
|---|---|---|
| Base Path | /api/v3/ |
/api |
| Connection Test | GET /api/v3/ |
GET /api |
| Process List | GET /api/v3/process |
GET /api/v3/process (core) |
| Authentication | HTTP Basic Auth | HTTP Basic Auth + Token |
Current Status:
- ✅ datarhei-core deployed successfully
- ✅ API accessible at http://localhost:8080/api
⚠️ Plugin API client uses/api/v3/endpoints- ✅ Mock server tests passing (validates API client functionality)
Two options for full integration testing:
The complete Restreamer UI wraps datarhei-core and provides the /api/v3/ endpoints:
# Stop current container
docker stop restreamer && docker rm restreamer
# Deploy full Restreamer UI (if available)
# Note: May require additional configuration
docker run -d \
--name restreamer \
--restart unless-stopped \
-p 8080:8080 \
-p 8181:8181 \
-p 1935:1935 \
-p 6000:6000/udp \
datarhei/restreamer-ui:latest # If this image existsModify the plugin's API client to work with datarhei-core's API structure:
- Change base path from
/api/v3/to/api/v3/(core uses this too) - Adjust authentication mechanism
- Map endpoint differences
# Download latest build artifacts
gh run download 19192437736
# Navigate to macOS build
cd obs-polyemesis-1.0.0-macos-universal-*
# Install plugin
cp -r obs-polyemesis.plugin ~/Library/Application\ Support/obs-studio/plugins/
# Launch OBS Studio
open -a OBS
# Verify installation
# 1. Check Tools menu for plugin entry
# 2. View → Docks → Restreamer Control
# 3. Add Source: + → Restreamer Source
# 4. Settings → Output → Restreamer Output# Build locally
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build
# Plugin is installed to:
# ~/Library/Application Support/obs-studio/plugins/obs-polyemesis.plugin# Download build artifacts
gh run download 19192437736
# Navigate to Ubuntu build
cd obs-polyemesis-1.0.0-ubuntu-24.04-x86_64-*
# Install plugin
mkdir -p ~/.config/obs-studio/plugins
cp -r obs-polyemesis ~/.config/obs-studio/plugins/
# Launch OBS
obs
# Verify same as macOS steps# Download build artifacts
gh run download 19192437736
# Navigate to Windows build
cd obs-polyemesis-1.0.0-windows-x64-*
# Install plugin
# Copy obs-polyemesis folder to:
# %APPDATA%\obs-studio\plugins\
# Launch OBS and verify- Connect to Restreamer from plugin
- Test with correct credentials
- Test with incorrect credentials
- Test connection error handling
- Add Restreamer Source to scene
- Configure source settings
- Test global vs per-source connection
- Verify stream preview
- Configure Restreamer Output
- Start streaming
- Verify stream appears in Restreamer
- Test stop/start cycling
- Open Restreamer Control dock
- Test connection configuration
- Test process list refresh
- Test process control buttons
- Verify real-time monitoring
- Configure orientation settings
- Add multiple destinations
- Test orientation-aware routing
- Verify filter generation
Container won't start:
# Check Docker daemon
docker info
# View container logs
docker logs restreamer
# Restart container
docker restart restreamerPort conflicts:
# Check if ports are in use
lsof -i :8080
lsof -i :1935
# Use different ports
docker run -d \
--name restreamer \
-p 9080:8080 \
-p 9935:1935 \
datarhei/restreamer:latestPlugin not appearing in OBS:
- Check installation path is correct
- Verify plugin file permissions
- Check OBS logs:
~/Library/Application Support/obs-studio/logs/ - Ensure OBS version is 28.0+
Plugin loads but crashes:
- Check dependency libraries are present
- Verify OBS architecture matches plugin (arm64 vs x86_64)
- Review crash logs in OBS log directory
System Resources:
- CPU usage (OBS + Restreamer)
- Memory consumption
- Network bandwidth
Streaming Quality:
- Video bitrate stability
- Audio sync
- Frame drops
- Latency measurements
Test Scenarios:
- Single stream (1080p60)
- Multistream to 3 destinations
- Multistream to 5+ destinations
- Long-running stability (4+ hours)
- Orientation conversion performance
macOS:
# CPU profiling with Instruments
instruments -t "Time Profiler" -D profile.trace obs
# Memory profiling
instruments -t "Allocations" -D memory.trace obsLinux:
# Valgrind for memory leaks
valgrind --leak-check=full obs
# perf for CPU profiling
perf record -g obs
perf reportWindows:
- Use Visual Studio Performance Profiler
- Windows Performance Analyzer
# 1. Create droplet (Ubuntu 24.04, $12/mo for 2GB RAM)
# 2. SSH into server
ssh root@your-server-ip
# 3. Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# 4. Deploy Restreamer
docker run -d \
--name restreamer \
--restart unless-stopped \
-p 8080:8080 \
-p 8181:8181 \
-p 1935:1935 \
-p 6000:6000/udp \
-v /var/restreamer:/core/data \
datarhei/restreamer:latest
# 5. Configure firewall
ufw allow 8080/tcp
ufw allow 1935/tcp
ufw allow 6000/udp
ufw enable
# 6. Optional: Set up HTTPS with nginx reverse proxy
apt install nginx certbot python3-certbot-nginx
# Configure nginx for port 8080 → 443
certbot --nginx -d restreamer.yourdomain.com- Credentials: Always use HTTPS in production
- Firewall: Only open required ports
- Updates: Keep Docker and containers updated
- Backups: Backup Restreamer configuration regularly
- Monitoring: Set up uptime monitoring
- Create installation packages (.pkg, .exe, .deb)
- Add UI tests for Qt dock panel
- Performance benchmarking
- Security audit
- Beta testing program
- OBS Plugin Browser submission
- Package repository setup
- Documentation website
Completed:
- ✅ Docker deployment working
- ✅ datarhei-core v16.16.0 running
- ✅ API accessible and responding
- ✅ All test suites passing (13/13 tests)
- ✅ CI/CD workflows building on all platforms
Pending:
- ⏳ Full Restreamer UI deployment (if needed)
- ⏳ Real-world streaming tests
- ⏳ Performance benchmarking
- ⏳ Installation package creation
Blockers:
- None (can proceed with packaging and testing)
Deployment ready for: ✅ Local testing, ✅ Development,