510 lines
11 KiB
Markdown
510 lines
11 KiB
Markdown
|
|
# StreamFlow Desktop - Installation & Setup Guide
|
||
|
|
|
||
|
|
## Quick Start
|
||
|
|
|
||
|
|
### For End Users
|
||
|
|
|
||
|
|
1. **Download** the latest AppImage from the releases page
|
||
|
|
2. **Make it executable**:
|
||
|
|
```bash
|
||
|
|
chmod +x StreamFlow-*.AppImage
|
||
|
|
```
|
||
|
|
3. **Run it**:
|
||
|
|
```bash
|
||
|
|
./StreamFlow-*.AppImage
|
||
|
|
```
|
||
|
|
|
||
|
|
That's it! The application will guide you through the server connection setup.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Detailed Installation
|
||
|
|
|
||
|
|
### System Requirements
|
||
|
|
|
||
|
|
**Minimum:**
|
||
|
|
- Linux kernel 3.10+ (2013+)
|
||
|
|
- GLIBC 2.28+ (Ubuntu 18.04+, Debian 10+, Fedora 28+)
|
||
|
|
- 2 GB RAM
|
||
|
|
- 200 MB disk space
|
||
|
|
- X11 or Wayland display server
|
||
|
|
|
||
|
|
**Recommended:**
|
||
|
|
- Linux kernel 5.0+
|
||
|
|
- 4 GB+ RAM
|
||
|
|
- GPU with hardware acceleration (Intel QSV, AMD VA-API, or NVIDIA NVDEC)
|
||
|
|
- 1920x1080 display
|
||
|
|
|
||
|
|
### FUSE Requirement
|
||
|
|
|
||
|
|
AppImage requires FUSE to run. Most modern Linux distributions have it installed by default.
|
||
|
|
|
||
|
|
**Ubuntu/Debian:**
|
||
|
|
```bash
|
||
|
|
sudo apt update
|
||
|
|
sudo apt install fuse libfuse2
|
||
|
|
```
|
||
|
|
|
||
|
|
**Fedora:**
|
||
|
|
```bash
|
||
|
|
sudo dnf install fuse fuse-libs
|
||
|
|
```
|
||
|
|
|
||
|
|
**Arch Linux:**
|
||
|
|
```bash
|
||
|
|
sudo pacman -S fuse2
|
||
|
|
```
|
||
|
|
|
||
|
|
**openSUSE:**
|
||
|
|
```bash
|
||
|
|
sudo zypper install fuse libfuse2
|
||
|
|
```
|
||
|
|
|
||
|
|
### Alternative: Extract and Run
|
||
|
|
|
||
|
|
If FUSE is not available or you prefer not to use it:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./StreamFlow-*.AppImage --appimage-extract
|
||
|
|
cd squashfs-root
|
||
|
|
./AppRun
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Desktop Integration
|
||
|
|
|
||
|
|
### Method 1: Using AppImageLauncher (Recommended)
|
||
|
|
|
||
|
|
AppImageLauncher automatically integrates AppImages with your desktop environment.
|
||
|
|
|
||
|
|
**Ubuntu/Debian:**
|
||
|
|
```bash
|
||
|
|
sudo add-apt-repository ppa:appimagelauncher-team/stable
|
||
|
|
sudo apt update
|
||
|
|
sudo apt install appimagelauncher
|
||
|
|
```
|
||
|
|
|
||
|
|
After installation, just double-click the AppImage, and AppImageLauncher will offer to integrate it.
|
||
|
|
|
||
|
|
### Method 2: Manual Integration
|
||
|
|
|
||
|
|
**Step 1: Create application directory**
|
||
|
|
```bash
|
||
|
|
sudo mkdir -p /opt/streamflow
|
||
|
|
./StreamFlow-*.AppImage --appimage-extract
|
||
|
|
sudo mv squashfs-root/* /opt/streamflow/
|
||
|
|
```
|
||
|
|
|
||
|
|
**Step 2: Create desktop entry**
|
||
|
|
```bash
|
||
|
|
sudo tee /usr/share/applications/streamflow.desktop > /dev/null << EOF
|
||
|
|
[Desktop Entry]
|
||
|
|
Name=StreamFlow
|
||
|
|
Comment=Stream IPTV content
|
||
|
|
Exec=/opt/streamflow/AppRun
|
||
|
|
Icon=/opt/streamflow/streamflow.png
|
||
|
|
Type=Application
|
||
|
|
Categories=AudioVideo;Player;TV;
|
||
|
|
Terminal=false
|
||
|
|
StartupNotify=true
|
||
|
|
EOF
|
||
|
|
```
|
||
|
|
|
||
|
|
**Step 3: Update desktop database**
|
||
|
|
```bash
|
||
|
|
sudo update-desktop-database
|
||
|
|
```
|
||
|
|
|
||
|
|
**Step 4: Create symlink (optional)**
|
||
|
|
```bash
|
||
|
|
sudo ln -s /opt/streamflow/AppRun /usr/local/bin/streamflow
|
||
|
|
```
|
||
|
|
|
||
|
|
Now you can launch StreamFlow from your application menu or by running `streamflow` in terminal.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## First Launch Configuration
|
||
|
|
|
||
|
|
When you first launch StreamFlow Desktop, you'll see the server connection window.
|
||
|
|
|
||
|
|
### Step 1: Enter Server URL
|
||
|
|
|
||
|
|
Enter the full URL of your StreamFlow server, including the protocol:
|
||
|
|
- `https://streamflow.example.com` (recommended)
|
||
|
|
- `http://192.168.1.100:3000` (local network)
|
||
|
|
- `http://localhost:3000` (local development)
|
||
|
|
|
||
|
|
### Step 2: Test Connection
|
||
|
|
|
||
|
|
Click **"Test Connection"** to verify that:
|
||
|
|
- The server is reachable
|
||
|
|
- The URL is correct
|
||
|
|
- No firewall is blocking the connection
|
||
|
|
|
||
|
|
### Step 3: Enter Credentials
|
||
|
|
|
||
|
|
Once the connection test succeeds:
|
||
|
|
1. Enter your **username** (or email)
|
||
|
|
2. Enter your **password**
|
||
|
|
3. (Optional) Check **"Remember credentials"** for automatic login
|
||
|
|
|
||
|
|
**Security Note:** Credentials are encrypted and stored locally on your device using Electron's secure storage.
|
||
|
|
|
||
|
|
### Step 4: 2FA Authentication (if enabled)
|
||
|
|
|
||
|
|
If you have Two-Factor Authentication enabled:
|
||
|
|
1. Complete the username/password login
|
||
|
|
2. You'll be automatically redirected to the web app's 2FA page
|
||
|
|
3. Enter your 6-digit authenticator code
|
||
|
|
4. Or use one of your 8-character backup codes
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Configuration Management
|
||
|
|
|
||
|
|
### Changing Servers
|
||
|
|
|
||
|
|
To connect to a different server:
|
||
|
|
1. Go to **File → Change Server** in the menu bar
|
||
|
|
2. Enter the new server URL
|
||
|
|
3. Test connection and enter credentials
|
||
|
|
|
||
|
|
### Clearing Stored Credentials
|
||
|
|
|
||
|
|
If you want to stop auto-login:
|
||
|
|
1. Go to **File → Change Server**
|
||
|
|
2. Uncheck **"Remember credentials"**
|
||
|
|
3. Connect again
|
||
|
|
|
||
|
|
Or delete the config file:
|
||
|
|
```bash
|
||
|
|
rm ~/.config/streamflow-config/config.json
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Codec Support
|
||
|
|
|
||
|
|
StreamFlow Desktop includes native support for all modern video and audio codecs through Electron's Chromium engine.
|
||
|
|
|
||
|
|
### Supported Video Codecs
|
||
|
|
- H.264 (AVC)
|
||
|
|
- H.265 (HEVC) - with hardware acceleration
|
||
|
|
- VP8
|
||
|
|
- VP9
|
||
|
|
- AV1
|
||
|
|
|
||
|
|
### Supported Audio Codecs
|
||
|
|
- AAC
|
||
|
|
- MP3
|
||
|
|
- Opus
|
||
|
|
- Vorbis
|
||
|
|
- AC3 / E-AC3
|
||
|
|
|
||
|
|
### Hardware Acceleration
|
||
|
|
|
||
|
|
Hardware acceleration is automatically enabled when available:
|
||
|
|
|
||
|
|
**Intel (Quick Sync):**
|
||
|
|
- Supported on 2nd gen Core processors and newer
|
||
|
|
- Automatically detected via VA-API
|
||
|
|
|
||
|
|
**AMD:**
|
||
|
|
- Supported on all modern Radeon GPUs
|
||
|
|
- Automatically detected via VA-API
|
||
|
|
|
||
|
|
**NVIDIA:**
|
||
|
|
- Supported on Maxwell (GTX 900 series) and newer
|
||
|
|
- Requires proprietary NVIDIA drivers with NVDEC support
|
||
|
|
|
||
|
|
To verify hardware acceleration is working:
|
||
|
|
1. Open Chrome/Chromium's internal page in StreamFlow (Developer Tools)
|
||
|
|
2. Navigate to `chrome://gpu`
|
||
|
|
3. Check "Video Acceleration Information"
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### AppImage doesn't start
|
||
|
|
|
||
|
|
**Problem:** Double-clicking does nothing, or shows "Permission denied"
|
||
|
|
|
||
|
|
**Solution:**
|
||
|
|
```bash
|
||
|
|
chmod +x StreamFlow-*.AppImage
|
||
|
|
./StreamFlow-*.AppImage
|
||
|
|
```
|
||
|
|
|
||
|
|
**Problem:** Error: `fuse: device not found`
|
||
|
|
|
||
|
|
**Solution:** Install FUSE (see installation section above) or extract and run manually.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Connection Issues
|
||
|
|
|
||
|
|
**Problem:** "Connection refused" error
|
||
|
|
|
||
|
|
**Possible causes and solutions:**
|
||
|
|
|
||
|
|
1. **Server is not running**
|
||
|
|
- Verify the server is running: `docker ps` (if using Docker)
|
||
|
|
- Check server logs for errors
|
||
|
|
|
||
|
|
2. **Incorrect URL**
|
||
|
|
- Ensure you included `http://` or `https://`
|
||
|
|
- Verify the port number is correct
|
||
|
|
- Try accessing the URL in a web browser first
|
||
|
|
|
||
|
|
3. **Firewall blocking connection**
|
||
|
|
- Check local firewall: `sudo ufw status`
|
||
|
|
- Check server firewall settings
|
||
|
|
- If using Docker, ensure ports are exposed
|
||
|
|
|
||
|
|
4. **SSL/TLS certificate issues**
|
||
|
|
- For self-signed certificates, the browser will show a warning
|
||
|
|
- Accept the certificate in the browser first
|
||
|
|
- Or use HTTP instead (not recommended for production)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Video Playback Issues
|
||
|
|
|
||
|
|
**Problem:** Video stutters or lags
|
||
|
|
|
||
|
|
**Solutions:**
|
||
|
|
1. Enable hardware acceleration (should be automatic)
|
||
|
|
2. Close other applications using GPU
|
||
|
|
3. Check your internet connection speed
|
||
|
|
4. Lower video quality in server settings
|
||
|
|
|
||
|
|
**Problem:** No video, only audio (or vice versa)
|
||
|
|
|
||
|
|
**Solutions:**
|
||
|
|
1. Check codec support in `chrome://gpu`
|
||
|
|
2. Update your GPU drivers
|
||
|
|
3. Try a different browser to verify it's not a server issue
|
||
|
|
4. Check server transcoding settings
|
||
|
|
|
||
|
|
**Problem:** Black screen
|
||
|
|
|
||
|
|
**Solutions:**
|
||
|
|
1. Check if hardware acceleration is causing issues:
|
||
|
|
- Disable it temporarily in Chrome flags
|
||
|
|
- Launch with: `./StreamFlow-*.AppImage --disable-gpu`
|
||
|
|
2. Update GPU drivers
|
||
|
|
3. Check server stream format
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 2FA Issues
|
||
|
|
|
||
|
|
**Problem:** 2FA code always shows as invalid
|
||
|
|
|
||
|
|
**Solutions:**
|
||
|
|
1. **Check system time synchronization:**
|
||
|
|
```bash
|
||
|
|
timedatectl status
|
||
|
|
```
|
||
|
|
|
||
|
|
If time is not synchronized:
|
||
|
|
```bash
|
||
|
|
sudo timedatectl set-ntp true
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Verify authenticator app time:**
|
||
|
|
- Ensure your phone's time is set to automatic
|
||
|
|
- Time zone should match your location
|
||
|
|
|
||
|
|
3. **Use a backup code:**
|
||
|
|
- If you saved backup codes during 2FA setup
|
||
|
|
- Use one of the 8-character codes instead
|
||
|
|
|
||
|
|
**Problem:** Lost 2FA device and no backup codes
|
||
|
|
|
||
|
|
**Solution:** Contact your server administrator to disable 2FA for your account.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Language/Translation Issues
|
||
|
|
|
||
|
|
**Problem:** UI appears in wrong language
|
||
|
|
|
||
|
|
**Solution:**
|
||
|
|
1. Change language in the connection window
|
||
|
|
2. Or change it in the web app settings after logging in
|
||
|
|
3. Language preference is saved automatically
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Performance Issues
|
||
|
|
|
||
|
|
**Problem:** High CPU usage
|
||
|
|
|
||
|
|
**Solutions:**
|
||
|
|
1. Ensure hardware acceleration is enabled
|
||
|
|
2. Close unnecessary browser tabs in the app
|
||
|
|
3. Lower video quality settings
|
||
|
|
4. Check for background processes
|
||
|
|
|
||
|
|
**Problem:** High memory usage
|
||
|
|
|
||
|
|
**Solutions:**
|
||
|
|
1. Close and reopen the application
|
||
|
|
2. Clear browser cache (in web app settings)
|
||
|
|
3. Reduce number of simultaneous streams
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Advanced Configuration
|
||
|
|
|
||
|
|
### Custom Launch Parameters
|
||
|
|
|
||
|
|
You can pass additional parameters to Electron:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Disable GPU acceleration
|
||
|
|
./StreamFlow-*.AppImage --disable-gpu
|
||
|
|
|
||
|
|
# Enable verbose logging
|
||
|
|
./StreamFlow-*.AppImage --enable-logging --v=1
|
||
|
|
|
||
|
|
# Use different config directory
|
||
|
|
./StreamFlow-*.AppImage --user-data-dir=/path/to/config
|
||
|
|
```
|
||
|
|
|
||
|
|
### Development Mode
|
||
|
|
|
||
|
|
To enable developer tools:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./StreamFlow-*.AppImage --dev
|
||
|
|
```
|
||
|
|
|
||
|
|
Then press `Ctrl+Shift+I` to open DevTools.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Uninstallation
|
||
|
|
|
||
|
|
### If installed via AppImageLauncher
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Remove from applications
|
||
|
|
appimagelauncherd --uninstall StreamFlow
|
||
|
|
|
||
|
|
# Delete the AppImage
|
||
|
|
rm ~/Applications/StreamFlow-*.AppImage
|
||
|
|
```
|
||
|
|
|
||
|
|
### If manually integrated
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Remove desktop entry
|
||
|
|
sudo rm /usr/share/applications/streamflow.desktop
|
||
|
|
sudo update-desktop-database
|
||
|
|
|
||
|
|
# Remove application files
|
||
|
|
sudo rm -rf /opt/streamflow
|
||
|
|
|
||
|
|
# Remove symlink
|
||
|
|
sudo rm /usr/local/bin/streamflow
|
||
|
|
```
|
||
|
|
|
||
|
|
### Remove configuration
|
||
|
|
|
||
|
|
```bash
|
||
|
|
rm -rf ~/.config/streamflow-config
|
||
|
|
rm -rf ~/.config/StreamFlow # Electron user data
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Getting Help
|
||
|
|
|
||
|
|
1. **Check the documentation** in `/docs`
|
||
|
|
2. **Search for similar issues** on GitHub
|
||
|
|
3. **Enable debug logging** and check logs
|
||
|
|
4. **Contact your server administrator** for server-specific issues
|
||
|
|
5. **Open an issue** on GitHub with:
|
||
|
|
- OS version and distribution
|
||
|
|
- AppImage version
|
||
|
|
- Error messages or logs
|
||
|
|
- Steps to reproduce
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Security Best Practices
|
||
|
|
|
||
|
|
1. **Always use HTTPS** when connecting to remote servers
|
||
|
|
2. **Enable 2FA** on your account for additional security
|
||
|
|
3. **Don't share credentials** or backup codes
|
||
|
|
4. **Keep the application updated** to get security patches
|
||
|
|
5. **Only download AppImages** from official sources
|
||
|
|
6. **Verify checksums** of downloaded AppImages
|
||
|
|
7. **Use strong passwords** (minimum 12 characters)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Network Configuration
|
||
|
|
|
||
|
|
### Using with Reverse Proxy (nginx, Apache)
|
||
|
|
|
||
|
|
If your StreamFlow server is behind a reverse proxy, ensure WebSocket connections are properly proxied.
|
||
|
|
|
||
|
|
**nginx example:**
|
||
|
|
```nginx
|
||
|
|
location / {
|
||
|
|
proxy_pass http://localhost:3000;
|
||
|
|
proxy_http_version 1.1;
|
||
|
|
proxy_set_header Upgrade $http_upgrade;
|
||
|
|
proxy_set_header Connection "upgrade";
|
||
|
|
proxy_set_header Host $host;
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Using with VPN
|
||
|
|
|
||
|
|
StreamFlow Desktop works seamlessly with VPN connections. If your server is on a VPN:
|
||
|
|
|
||
|
|
1. Connect to your VPN first
|
||
|
|
2. Use the VPN IP address or hostname in the server URL
|
||
|
|
3. Ensure the VPN allows the necessary ports
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Updating
|
||
|
|
|
||
|
|
### AppImage Updates
|
||
|
|
|
||
|
|
AppImage doesn't have automatic updates. To update:
|
||
|
|
|
||
|
|
1. Download the new AppImage
|
||
|
|
2. Replace the old one
|
||
|
|
3. Your configuration and credentials are preserved
|
||
|
|
|
||
|
|
### Checking for Updates
|
||
|
|
|
||
|
|
Check the releases page periodically for new versions:
|
||
|
|
- Bug fixes
|
||
|
|
- New features
|
||
|
|
- Security updates
|
||
|
|
- Performance improvements
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Credits
|
||
|
|
|
||
|
|
Built with:
|
||
|
|
- **Electron** - Cross-platform desktop framework
|
||
|
|
- **Node.js** - JavaScript runtime
|
||
|
|
- **Chromium** - Web rendering engine
|
||
|
|
- **electron-builder** - Application packaging
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
For more information, visit the project documentation or contact your system administrator.
|