streamflow/docs/QUICK_REFERENCE.md
2025-12-17 00:42:43 +00:00

6.4 KiB

StreamFlow IPTV - Quick Reference

🚀 Quick Start Commands

# Start the application
./start.sh
# or
docker-compose up -d

# Stop the application
./stop.sh
# or
docker-compose down

# View logs
docker-compose logs -f

# Restart
docker-compose restart

# Rebuild
docker-compose build --no-cache

🌐 URLs

🔑 Default Configuration

Setting Value
Port 12345
Database SQLite (/app/data/streamflow.db)
User appuser (UID 1001)
Max Upload 50MB
JWT Expiry 7 days

📡 API Endpoints

Authentication

POST   /api/auth/register      # Register new user
POST   /api/auth/login         # Login
GET    /api/auth/verify        # Verify token

Playlists

GET    /api/playlists          # List playlists
POST   /api/playlists/url      # Add from URL
POST   /api/playlists/upload   # Upload M3U
DELETE /api/playlists/:id      # Delete
PATCH  /api/playlists/:id      # Rename
POST   /api/playlists/bulk-delete  # Bulk delete

Channels

GET    /api/channels           # List channels
GET    /api/channels/groups    # List groups

🔧 Environment Variables

# Required
PORT=12345
JWT_SECRET=your_secret_here
SESSION_SECRET=your_secret_here

# Optional
NODE_ENV=production
MAX_RECORDING_SIZE=10GB
EPG_UPDATE_INTERVAL=3600000
LOG_LEVEL=info

🐳 Docker Commands

# Build
docker-compose build

# Start (detached)
docker-compose up -d

# Start (foreground)
docker-compose up

# Stop
docker-compose down

# Stop and remove volumes
docker-compose down -v

# View logs
docker-compose logs -f streamflow

# Execute command in container
docker-compose exec streamflow sh

# List running containers
docker-compose ps

# Restart specific service
docker-compose restart streamflow

📦 NPM Scripts

# Root scripts
npm start                    # Start application
npm run install:all          # Install all dependencies
npm run docker:build         # Build Docker image
npm run docker:up            # Start containers
npm run docker:down          # Stop containers
npm run docker:logs          # View logs

# Backend scripts (cd backend)
npm install                  # Install dependencies
npm start                    # Start server
npm run dev                  # Start with nodemon

# Frontend scripts (cd frontend)
npm install                  # Install dependencies
npm run dev                  # Start dev server (port 3000)
npm run build                # Build for production
npm run preview              # Preview production build

🗃️ Database Tables

  • users - User accounts
  • profiles - User profiles
  • playlists - M3U playlists
  • channels - TV channels
  • custom_groups - User groups
  • group_channels - Group assignments
  • epg_data - EPG information
  • epg_sources - EPG sources
  • recordings - Recording data
  • watch_history - View history
  • favorites - Favorite channels
  • settings - User settings
  • api_tokens - API tokens
  • logo_cache - Logo cache

🌍 Languages

Code Language Flag
en English 🇬🇧
ro Română 🇷🇴

🎨 Theme

  • Light Theme: Default
  • Dark Theme: Toggle in Settings
  • Auto-save: Theme preference persisted

📁 File Locations

/app/data/                  # Persistent data
  ├── streamflow.db        # Database
  ├── playlists/           # Uploaded playlists
  ├── recordings/          # Recorded content
  ├── logos/               # Channel logos
  ├── epg/                 # EPG cache
  └── uploads/             # User uploads

/app/logs/                 # Application logs
  ├── error.log           # Error logs
  └── combined.log        # All logs

🔒 Security Features

  • Non-root container user (UID 1001)
  • JWT authentication (7-day expiry)
  • Bcrypt password hashing (10 rounds)
  • Rate limiting (5 login attempts/15min)
  • Helmet security headers
  • Input validation
  • CORS protection
  • No privilege escalation
  • Capability dropping
  • Health checks

🐛 Troubleshooting

Container won't start

docker-compose logs

Port already in use

# Edit docker-compose.yml, change:
ports:
  - "8080:12345"  # Change 8080 to free port

Permission denied

# Fix permissions
sudo chown -R 1001:1001 ./data ./logs

Reset database

# WARNING: Deletes all data
docker-compose down -v
docker-compose up -d

Can't connect

# Check if running
docker-compose ps

# Check logs
docker-compose logs -f

# Test health
curl http://localhost:12345/api/health

📊 Monitoring

# View container stats
docker stats streamflow-app

# Check health status
docker inspect --format='{{.State.Health.Status}}' streamflow-app

# View recent logs
docker-compose logs --tail=100 streamflow

🔄 Backup & Restore

Backup

# Backup data volume
docker run --rm \
  -v streamflow-data:/data \
  -v $(pwd)/backup:/backup \
  alpine tar czf /backup/backup-$(date +%Y%m%d).tar.gz /data

Restore

# Restore data volume
docker run --rm \
  -v streamflow-data:/data \
  -v $(pwd)/backup:/backup \
  alpine tar xzf /backup/backup-YYYYMMDD.tar.gz -C /

🎯 Features Quick Access

Feature Page/Location
Watch Live TV Dashboard → Live TV
Listen Radio Dashboard → Radio
Add Playlist Settings or Sidebar
Schedule Recording Channel → Record button
Change Theme Settings → Theme toggle
Change Language Settings → Language dropdown
View Favorites Dashboard → Favorites
Manage Profiles Settings → Profiles

📱 Supported Features

  • Live TV streaming
  • Radio streaming
  • EPG (Electronic Program Guide)
  • Recording (scheduled & manual)
  • Picture-in-Picture (PiP)
  • Multi-device sync
  • User profiles
  • Favorites
  • Custom groups
  • Watch history
  • Multi-language (EN/RO)
  • Light/Dark themes
  • Responsive design
  • Project root: /home/iulian/projects/tv
  • Documentation: README.md, SETUP.md, ARCHITECTURE.md
  • Issue tracker: Contact development team
  • Health check: http://localhost:12345/api/health

Version: 1.0.0
Last Updated: December 2025