{"id":35001871,"url":"https://github.com/h3rodev/livestream-app","last_synced_at":"2026-03-15T20:06:27.164Z","repository":{"id":325745327,"uuid":"1096331700","full_name":"h3rodev/livestream-app","owner":"h3rodev","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-23T04:55:00.000Z","size":19409,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-23T06:18:33.652Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h3rodev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-14T09:15:38.000Z","updated_at":"2025-11-23T04:55:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/h3rodev/livestream-app","commit_stats":null,"previous_names":["h3rodev/livestream-app"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/h3rodev/livestream-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3rodev%2Flivestream-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3rodev%2Flivestream-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3rodev%2Flivestream-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3rodev%2Flivestream-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h3rodev","download_url":"https://codeload.github.com/h3rodev/livestream-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h3rodev%2Flivestream-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30550787,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T15:03:43.933Z","status":"ssl_error","status_checked_at":"2026-03-15T15:03:37.630Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-27T03:58:06.469Z","updated_at":"2026-03-15T20:06:27.159Z","avatar_url":"https://github.com/h3rodev.png","language":"Vue","readme":"# 📡 Livestream App — Phase 1\n\nMulti-Camera WebRTC Livestreaming System (Admin + Mobile Camera)\nStatus: MVP Phase 1 Complete\nFeatures: HTTPS Signaling Server, Multi-Camera Discovery, Manual-Play WebRTC Streaming\n\n## 🚀 Overview\n\nLivestream App is a multi-camera livestreaming platform designed to use mobile phones as video sources and stream them to a browser-based Admin Dashboard in real time.\n\nThis project implements Phase 1 of the system:\n\n* Local HTTPS Signaling Server using Node.js + Socket.IO\n\n* Camera UI (mobile) → sends WebRTC video\n\n* Admin UI → receives stream (manual play)\n\n* Multiple cameras can join and be discovered by the admin\n\n* Secure origin support (mandatory for iOS Safari camera access)\n\nThis forms the foundation for future phases including multi-camera grid, recording per camera, shared SSD ingest, timestamp synchronization, OBS/SRT output, desktop admin app (Electron), and mobile app (Flutter).\n\n## 📦 Project Structure\n\nlivestream-app/\n├── server/\n│ ├── src/\n│ │ └── index.js (HTTPS signaling server with WebRTC + Socket.IO)\n│ ├── certs/ (local dev HTTPS certs — ignored by Git)\n│ └── package.json\n└── public/\n├── admin.html (Admin UI – receives WebRTC streams)\n├── camera.html (Camera UI – sends WebRTC stream)\n\n## 🔐 HTTPS Setup (Required for iOS Safari)\n\nSafari on iPhone/iPad requires HTTPS for camera/microphone access unless using localhost.\n\n1. Install mkcert\n\nbrew install mkcert nss\nmkcert -install\n\n2. Generate local certificates\n\ncd server/certs\nmkcert -cert-file cert.pem -key-file key.pem localhost 127.0.0.1 192.168.1.50\n(Replace 192.168.1.50 with your actual LAN IP)\n\n3. Git automatically ignores certificate files\n\nserver/certs/\n\n## ▶️ Running the Server\n\ncd server\nnpm install\nnpm run dev\n\nExpected output:\nHTTPS signaling server listening on https://localhost:3000\n\nAdmin UI: https://localhost:3000/admin.html\n\nCamera UI: https://localhost:3000/camera.html\n\n## 📱 Connecting a Camera (Mobile)\n\n* Connect phone to same Wi-Fi\n\nOpen in Safari/Chrome:\nhttps://\u003cyour-lan-ip\u003e:3000/camera.html\nExample:\nhttps://192.168.1.50:3000/camera.html\n\n* Accept HTTPS warning\n\n* Allow camera + microphone\n\n* Tap Start Streaming\n\n### 💻 Admin Viewer (Desktop)\n\nOpen:\nhttps://localhost:3000/admin.html\n\n* Accept certificate warning\n\n* Camera appears in the list\n\n* Video attaches automatically\n\n* Click Play manually (autoplay disabled intentionally)\n\n## 🧩 Phase 1 Features\n### ✔️ HTTPS Signaling Server\n\n* Camera join/leave\n\n* Admin join\n\n* WebRTC Offer/Answer\n\n* ICE candidate forwarding\n\n### ✔️ WebRTC Streaming\n\n* Safari → Chrome compatible\n\n* H.264 support\n\n* Manual playback avoids autoplay restrictions\n\n### ✔️ Multi-Camera Discovery\n\n* Real-time camera list updates\n\n* Attach stream per camera\n\n### ✔️ Secure Origin Support\n\n* Required for mobile Safari\n\n* mkcert certificates enable LAN HTTPS\n\n### 🛡 .gitignore Highlights\n\nserver/certs/\nnode_modules/\n.env\n\nThe certificate directory is excluded for safety.\n\n🧭 Roadmap (Next Phases)\n### Phase 2 — Multi-Camera Grid\n\n* Real-time layout\n\n* Auto-scaling\n\n* Camera indicators\n\n### Phase 3 — Recording\n\n* Per-camera MP4\n\n* NAS/SSD integration\n\n### Phase 4 — Sync + Timeline\n\n* Frame timestamps\n\n* Premiere/Resolve export\n\n### Phase 5 — Admin Desktop App (Electron)\n\n* OBS-style viewer\n\n* Scene management\n\n* RTMP/SRT outputs\n\n### Phase 6 — Mobile App (Flutter)\n\n* High bitrate\n\n* Manual controls\n\n* Battery + network monitoring\n\n### 🤝 Contributing\n\nPRs will be accepted starting Phase 2.\n\n### 📄 License\n\nTo be added once architecture stabilizes.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh3rodev%2Flivestream-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh3rodev%2Flivestream-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh3rodev%2Flivestream-app/lists"}