296 lines
7.2 KiB
Markdown
296 lines
7.2 KiB
Markdown
# 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
|