Implement Tuner v1 — Go backend, React frontend, Docker setup
- Go backend: REST API, M3U parser, FFmpeg/MediaMTX process manager - React/Vite frontend: HLS player, admin panel, channel browser (dark theme) - MediaMTX config for RTMP ingest + HLS output - Multi-stage Dockerfile (Go + Bun + Alpine runtime) - docker-compose.yml for single-container deployment - Sample M3U playlist with test streams Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
31
backend/models/types.go
Normal file
31
backend/models/types.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package models
|
||||
|
||||
// Channel represents a single IPTV channel parsed from an M3U playlist.
|
||||
type Channel struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Group string `json:"group"`
|
||||
LogoURL string `json:"logo_url"`
|
||||
StreamURL string `json:"stream_url"`
|
||||
}
|
||||
|
||||
// StreamStatus represents the current streaming state.
|
||||
type StreamStatus struct {
|
||||
Source string `json:"source"` // "obs" or "iptv"
|
||||
ChannelName string `json:"channel_name"` // current IPTV channel name (empty if OBS)
|
||||
Live bool `json:"live"`
|
||||
}
|
||||
|
||||
// ProcessInfo represents the status of a managed child process.
|
||||
type ProcessInfo struct {
|
||||
Running bool `json:"running"`
|
||||
PID int `json:"pid"`
|
||||
Uptime string `json:"uptime"`
|
||||
Error string `json:"error,omitempty"`
|
||||
}
|
||||
|
||||
// SystemStatus holds status for all managed processes.
|
||||
type SystemStatus struct {
|
||||
MediaMTX ProcessInfo `json:"mediamtx"`
|
||||
FFmpeg ProcessInfo `json:"ffmpeg"`
|
||||
}
|
||||
Reference in New Issue
Block a user