Initial commit: StreamFlow IPTV platform
This commit is contained in:
commit
73a8ae9ffd
1240 changed files with 278451 additions and 0 deletions
296
desktop-app/README.md
Normal file
296
desktop-app/README.md
Normal file
|
|
@ -0,0 +1,296 @@
|
|||
# StreamFlow Desktop Application
|
||||
|
||||
Linux AppImage application for StreamFlow IPTV streaming platform.
|
||||
|
||||
## Features
|
||||
|
||||
- 🔐 Secure server connection with credential management
|
||||
- 🔑 Full 2FA (Two-Factor Authentication) support
|
||||
- 🌍 Multi-language support (English, Romanian)
|
||||
- 🎬 Native media codec support for smooth playback
|
||||
- 🔄 Automatic feature parity with web application
|
||||
- 💾 Encrypted credential storage
|
||||
- 🎨 Native desktop experience
|
||||
- 🔔 System tray integration with quick actions
|
||||
- ⬆️ Auto-update functionality with progress tracking
|
||||
- 📺 Picture-in-Picture mode for multitasking
|
||||
- 📡 Offline mode with content caching
|
||||
- 📱 Chromecast support for streaming to TV
|
||||
|
||||
## Installation
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Linux distribution (Ubuntu 18.04+, Debian 10+, Fedora 30+, etc.)
|
||||
- GLIBC 2.28 or newer
|
||||
- X11 or Wayland display server
|
||||
|
||||
### Install from AppImage
|
||||
|
||||
1. Download the latest `.AppImage` file from releases
|
||||
2. Make it executable:
|
||||
```bash
|
||||
chmod +x StreamFlow-*.AppImage
|
||||
```
|
||||
3. Run the application:
|
||||
```bash
|
||||
./StreamFlow-*.AppImage
|
||||
```
|
||||
|
||||
### Optional: Desktop Integration
|
||||
|
||||
To integrate with your desktop environment:
|
||||
|
||||
```bash
|
||||
# Using AppImageLauncher (recommended)
|
||||
sudo apt install appimagelauncher # Ubuntu/Debian
|
||||
# Then run the AppImage - it will be automatically integrated
|
||||
|
||||
# Or manually
|
||||
./StreamFlow-*.AppImage --appimage-extract
|
||||
sudo mv squashfs-root /opt/streamflow
|
||||
sudo ln -s /opt/streamflow/AppRun /usr/local/bin/streamflow
|
||||
```
|
||||
|
||||
## Building from Source
|
||||
|
||||
### Development Setup
|
||||
|
||||
1. Install Node.js 18+ and npm
|
||||
2. Navigate to the desktop-app directory:
|
||||
```bash
|
||||
cd desktop-app
|
||||
```
|
||||
3. Install dependencies:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
4. Run in development mode:
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Building AppImage
|
||||
|
||||
To build the AppImage for distribution:
|
||||
|
||||
```bash
|
||||
# Build for current architecture
|
||||
npm run build:appimage
|
||||
|
||||
# The AppImage will be created in the dist/ directory
|
||||
```
|
||||
|
||||
To build for multiple architectures:
|
||||
|
||||
```bash
|
||||
# Build for x64
|
||||
npm run build:linux -- --x64
|
||||
|
||||
# Build for arm64
|
||||
npm run build:linux -- --arm64
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### First Launch
|
||||
|
||||
1. Launch the application
|
||||
2. Enter your StreamFlow server URL (e.g., `https://your-server.com`)
|
||||
3. Click "Test Connection" to verify server accessibility
|
||||
4. Enter your username and password
|
||||
5. (Optional) Check "Remember credentials" for automatic login
|
||||
6. Click "Connect"
|
||||
|
||||
### 2FA Authentication
|
||||
|
||||
If you have 2FA enabled on your account:
|
||||
|
||||
1. Complete the standard login (username/password)
|
||||
2. You'll be automatically prompted for your 2FA code
|
||||
3. Enter your 6-digit authenticator code
|
||||
4. Or use one of your 8-character backup codes
|
||||
|
||||
### Changing Server
|
||||
|
||||
To connect to a different server:
|
||||
|
||||
1. Go to **File** → **Change Server** in the menu
|
||||
2. Enter the new server URL
|
||||
3. Test connection and enter credentials
|
||||
|
||||
### System Tray
|
||||
|
||||
The application minimizes to the system tray instead of closing:
|
||||
|
||||
- **Show/Hide**: Click tray icon or use menu to toggle window visibility
|
||||
- **Picture-in-Picture**: Open floating PiP window from tray menu
|
||||
- **Check for Updates**: Manually check for app updates
|
||||
- **Quit**: Completely exit the application
|
||||
|
||||
### Auto-Updates
|
||||
|
||||
StreamFlow Desktop checks for updates automatically:
|
||||
|
||||
- Update checks run on startup (after 5-second delay)
|
||||
- Manual check: **Help** → **Check for Updates**
|
||||
- Download progress shown with percentage
|
||||
- User prompted to restart after download completes
|
||||
|
||||
### Picture-in-Picture Mode
|
||||
|
||||
Watch content in a floating window while working:
|
||||
|
||||
1. **Open PiP**: **View** → **Picture-in-Picture** (or from tray menu)
|
||||
2. PiP window stays on top of other windows
|
||||
3. **Close PiP**: Click close button on PiP window or use **View** → **Close Picture-in-Picture**
|
||||
|
||||
### Offline Mode
|
||||
|
||||
Cache content for offline playback:
|
||||
|
||||
- **Toggle Offline Mode**: **File** → **Toggle Offline Mode**
|
||||
- Cached content expires after 24 hours (configurable)
|
||||
- Clear cache: **File** → **Clear Offline Cache**
|
||||
- Cache stored in: `~/.config/streamflow-desktop/offline-cache.json`
|
||||
|
||||
### Chromecast
|
||||
|
||||
Stream to Chromecast devices on your network:
|
||||
|
||||
1. **Discover Devices**: **Playback** → **Discover Chromecast Devices**
|
||||
2. Available devices shown in notification
|
||||
3. Cast media from web interface when Chromecast detected
|
||||
4. 5-second scan timeout for device discovery
|
||||
|
||||
## Codec Support
|
||||
|
||||
The AppImage includes native codec support for:
|
||||
|
||||
- **Video Codecs**: H.264, H.265 (HEVC), VP8, VP9, AV1
|
||||
- **Audio Codecs**: AAC, MP3, Opus, Vorbis, AC3, E-AC3
|
||||
- **Containers**: MP4, MKV, WebM, TS, M3U8 (HLS)
|
||||
|
||||
Hardware acceleration is automatically enabled when available:
|
||||
|
||||
- **Intel**: VA-API (Quick Sync)
|
||||
- **AMD**: VA-API
|
||||
- **NVIDIA**: NVDEC (if proprietary drivers installed)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### AppImage won't run
|
||||
|
||||
**Error: "cannot execute binary file"**
|
||||
```bash
|
||||
# Make sure it's executable
|
||||
chmod +x StreamFlow-*.AppImage
|
||||
```
|
||||
|
||||
**Error: "FUSE not installed"**
|
||||
```bash
|
||||
# Install FUSE
|
||||
sudo apt install fuse libfuse2 # Ubuntu/Debian
|
||||
sudo dnf install fuse fuse-libs # Fedora
|
||||
```
|
||||
|
||||
**Or extract and run manually:**
|
||||
```bash
|
||||
./StreamFlow-*.AppImage --appimage-extract
|
||||
cd squashfs-root
|
||||
./AppRun
|
||||
```
|
||||
|
||||
### Connection Issues
|
||||
|
||||
1. Verify server URL is correct (must include `http://` or `https://`)
|
||||
2. Check firewall settings allow connection to server
|
||||
3. Ensure server is running and accessible
|
||||
4. Try accessing server URL in a web browser first
|
||||
|
||||
### Video Playback Issues
|
||||
|
||||
**Choppy playback:**
|
||||
- Enable hardware acceleration in your desktop settings
|
||||
- Close other applications using GPU resources
|
||||
- Check server encoding settings
|
||||
|
||||
**No video/audio:**
|
||||
- Verify codec support: `ffmpeg -codecs`
|
||||
- Check audio output device in system settings
|
||||
- Ensure server stream format is compatible
|
||||
|
||||
### 2FA Not Working
|
||||
|
||||
1. Ensure time synchronization is correct:
|
||||
```bash
|
||||
timedatectl status
|
||||
```
|
||||
2. If time is off, sync it:
|
||||
```bash
|
||||
sudo timedatectl set-ntp true
|
||||
```
|
||||
3. Try using a backup code instead
|
||||
|
||||
## Security
|
||||
|
||||
- Credentials are encrypted using electron-store
|
||||
- All communication with server uses HTTPS (recommended)
|
||||
- Session tokens expire after 7 days
|
||||
- Automatic logout on window close (if credentials not saved)
|
||||
|
||||
## Language Support
|
||||
|
||||
Supported languages:
|
||||
- English (en)
|
||||
- Romanian (ro)
|
||||
|
||||
To change language:
|
||||
- Use the language selector in the connection window
|
||||
- Or in the web interface settings
|
||||
|
||||
## System Requirements
|
||||
|
||||
### Minimum
|
||||
- **CPU**: Dual-core 1.6 GHz
|
||||
- **RAM**: 2 GB
|
||||
- **Disk**: 200 MB for app + storage for recordings
|
||||
- **Display**: 1024x768
|
||||
|
||||
### Recommended
|
||||
- **CPU**: Quad-core 2.0 GHz+ with hardware video decode
|
||||
- **RAM**: 4 GB+
|
||||
- **Disk**: 500 MB + storage for recordings
|
||||
- **Display**: 1920x1080
|
||||
- **GPU**: Hardware acceleration support (VA-API, NVDEC)
|
||||
|
||||
## Known Issues
|
||||
|
||||
- Some older GPUs may not support hardware acceleration for H.265
|
||||
- Wayland may have issues with screen sharing/recording features
|
||||
- Some distributions require manual FUSE installation
|
||||
|
||||
## Contributing
|
||||
|
||||
Found a bug or want to contribute? Please open an issue or pull request in the main repository.
|
||||
|
||||
## License
|
||||
|
||||
MIT License - See LICENSE file for details
|
||||
|
||||
## Support
|
||||
|
||||
For support:
|
||||
1. Check the documentation at `/docs`
|
||||
2. Open an issue on GitHub
|
||||
3. Contact your server administrator
|
||||
|
||||
## Version History
|
||||
|
||||
### 1.0.0 (2024-12-12)
|
||||
- Initial release
|
||||
- Server connection management
|
||||
- 2FA support
|
||||
- Multi-language support (EN, RO)
|
||||
- Native codec support
|
||||
- Credential encryption
|
||||
Loading…
Add table
Add a link
Reference in a new issue