arkavo-org / arkavo-org/app

chore: NTDF-RTMP Production Deployment Checklist

Open
#199 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
0
Forks
0
Avg merge
1h 41m
Merged PRs (30d)
1

Description

## Summary
Production deployment checklist for NTDF-RTMP encrypted streaming on arkavo-rs.

## Server Requirements

### arkavo-rs Configuration
- [ ] RTMP_PORT=1935 configured in production/start.sh
- [ ] KAS EC private key deployed (`recipient_private_key.pem`)
- [ ] Redis server running for manifest caching
- [ ] NATS server running for pub/sub messaging
- [ ] TLS certificates configured for HTTPS KAS endpoint

### Network/Firewall
- [ ] Port 1935 (RTMP) open for inbound connections
- [ ] Port 443 (HTTPS) open for KAS public key endpoint
- [ ] Consider RTMPS (TLS-encrypted RTMP) for additional transport security

### Monitoring
- [ ] RTMP connection logging enabled
- [ ] Stream start/stop events logged
- [ ] Error tracking for encryption failures
- [ ] Redis manifest cache monitoring

## Client Requirements (ArkavoKit)

### Publisher
- [ ] KASPublicKeyService configured with production KAS URL
- [ ] NTDFStreamingManager handles network errors gracefully
- [ ] Reconnection logic for dropped connections
- [ ] Stream key validation

### Integration
- [ ] Camera capture → H.264 encoding → NTDF encryption pipeline
- [ ] Audio capture → AAC encoding → NTDF encryption pipeline
- [ ] Sequence headers (SPS/PPS, AudioSpecificConfig) sent unencrypted

## Testing Checklist

### Functional
- [x] KAS public key fetch from production server
- [x] NanoTDF Collection creation
- [x] RTMP handshake and connect
- [x] Metadata with ntdf_header transmission
- [x] Encrypted frame transmission
- [ ] Real H.264/AAC content streaming
- [ ] Multi-viewer scenario

### Performance
- [ ] Encryption latency < 1ms per frame
- [ ] Total encode-to-wire latency < 100ms
- [ ] Stable bitrate over extended streaming

### Error Handling
- [ ] Network disconnect recovery
- [ ] KAS server unavailable handling
- [ ] Invalid stream key rejection

## Deployment Steps
1. Build arkavo-rs with `./build-release.sh`
2. Deploy binary to production server
3. Configure environment variables in `production/start.sh`
4. Start with `sudo -E ./production/start.sh`
5. Verify RTMP listening: `netstat -an | grep 1935`
6. Test with `ntdf-test` CLI

## Rollback Plan
- Keep previous arkavo-rs binary available
- Redis manifest data is ephemeral (no migration needed)
- Monitor logs for first 24 hours post-deployment

Contributor guide

No contributing guide indexed for this repository

Research direction

Review production/start.sh and build-release.sh first, then use the deployment steps to inspect the arkavo-rs production setup and run the ntdf-test CLI. Confirm the server, client, functional, performance, error-handling, monitoring, and rollback checklist items, with real H.264/AAC streaming and multi-viewer testing completed before marking the checklist done.

Written by the indexing model from the issue text.

Assessment

Tech stack
redis, rust, shell, swift
Domain
audio-video-rtc, devops, infrastructure, security
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.