mirror of
https://github.com/Ap0dexMe0/o11pro-unpacked.git
synced 2026-07-15 18:30:02 +02:00
810 lines
19 KiB
Markdown
810 lines
19 KiB
Markdown
# O11 Pro WSL (Windows Subsystem for Linux) Setup Guide
|
|
|
|
Complete guide to running O11 Pro on Windows using WSL. This covers everything from installing WSL to running O11 as a background service with auto-start.
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
- **Windows 10** (Build 19041+) or **Windows 11**
|
|
- **WSL 2** with Ubuntu (recommended)
|
|
- At least **2 GB RAM** free for WSL
|
|
- **4 GB+ disk space** for O11 + dependencies
|
|
|
|
---
|
|
|
|
## Step 1 Install WSL 2
|
|
|
|
Open **PowerShell as Administrator** (right-click Start → Terminal (Admin)):
|
|
|
|
```powershell
|
|
wsl --install
|
|
```
|
|
|
|
This installs WSL 2 with Ubuntu by default. Restart your computer when prompted.
|
|
|
|
After restart, a Ubuntu terminal will open and ask you to create a username and password. This is your Linux user remember it.
|
|
|
|
> **If you already have WSL installed**, make sure you're on WSL 2:
|
|
> ```powershell
|
|
> wsl --set-default-version 2
|
|
> wsl --install Ubuntu
|
|
> ```
|
|
|
|
Verify your installation:
|
|
|
|
```powershell
|
|
wsl --list --verbose
|
|
```
|
|
|
|
You should see:
|
|
|
|
```
|
|
NAME STATE VERSION
|
|
* Ubuntu Running 2
|
|
```
|
|
|
|
If VERSION shows `1`, upgrade it:
|
|
|
|
```powershell
|
|
wsl --set-version Ubuntu 2
|
|
```
|
|
|
|
---
|
|
|
|
## Step 2 Update Ubuntu
|
|
|
|
Open WSL (search "Ubuntu" in Start menu or run `wsl` in PowerShell):
|
|
|
|
```bash
|
|
sudo apt update && sudo apt upgrade -y
|
|
```
|
|
|
|
---
|
|
|
|
## Step 3 Install Dependencies
|
|
|
|
O11 requires FFmpeg for transcoding and remuxing streams. Install it along with other useful tools:
|
|
|
|
```bash
|
|
sudo apt install -y ffmpeg curl wget nano unzip
|
|
```
|
|
|
|
Verify FFmpeg:
|
|
|
|
```bash
|
|
ffmpeg -version | head -1
|
|
```
|
|
|
|
You should see something like: `ffmpeg version 4.4.2-0ubuntu0.22.04.1`
|
|
|
|
---
|
|
|
|
## Step 4 Download O11 Pro
|
|
|
|
### Option A: From GitHub Release
|
|
|
|
```bash
|
|
# Create o11 directory
|
|
mkdir -p ~/o11 && cd ~/o11
|
|
|
|
# Download the latest unpacked binary
|
|
wget https://github.com/Ap0dexMe0/o11pro-unpacked/releases/latest/download/o11pro_unpacked -O o11pro_unpacked
|
|
|
|
# Make it executable
|
|
chmod +x o11pro_unpacked
|
|
```
|
|
|
|
### Option B: From Local Windows File
|
|
|
|
If you already downloaded the binary on Windows, you can access it from WSL. Windows drives are mounted under `/mnt/`:
|
|
|
|
```bash
|
|
# Example: file is in your Windows Downloads folder
|
|
mkdir -p ~/o11 && cd ~/o11
|
|
|
|
# Copy from Windows to WSL home
|
|
cp /mnt/c/Users/YOUR_USERNAME/Downloads/o11pro_unpacked ./
|
|
|
|
# Make it executable
|
|
chmod +x o11pro_unpacked
|
|
```
|
|
|
|
> **Replace `YOUR_USERNAME`** with your actual Windows username. Use tab-completion: type `/mnt/c/Users/` and press Tab.
|
|
|
|
### Option C: Using Windows Explorer
|
|
|
|
You can also drag and drop files directly into the WSL filesystem:
|
|
|
|
1. Open WSL terminal
|
|
2. Type `explorer.exe .` to open Windows Explorer at the current WSL directory
|
|
3. Copy `o11pro_unpacked` into the Explorer window
|
|
|
|
---
|
|
|
|
## Step 5 First Run
|
|
|
|
```bash
|
|
cd ~/o11
|
|
|
|
# Start with a port and credentials
|
|
./o11pro_unpacked -p 8080 -user admin -password mypass -stdout
|
|
```
|
|
|
|
You should see:
|
|
|
|
```
|
|
╔══════════════════════════════════════════════╗
|
|
║ o11 Pro Cracked [Nulled] ║
|
|
║ Unpacked Version [Ap0dexMe0] ║
|
|
╚══════════════════════════════════════════════╝
|
|
|
|
INFO: O11 is starting [version nulled!!]
|
|
INFO: loglevel set to 2
|
|
WARN: Use temporary account to login to Web UI: admin / OtoN4Fx0
|
|
INFO: streaming listening at 0.0.0.0:8080
|
|
INFO: webif http listening at 0.0.0.0:8080
|
|
INFO: loaded 0 provider(s)
|
|
```
|
|
|
|
> **If you get "Permission denied"**: Run `chmod +x o11pro_unpacked` again. If you get a "cannot execute binary file" error, make sure you're on WSL 2 (not WSL 1) and using an x86-64 Ubuntu.
|
|
|
|
Open your Windows browser and go to:
|
|
|
|
```
|
|
http://localhost:8080
|
|
```
|
|
|
|
Log in with `admin` / `mypass` (or the temporary credentials shown in the log).
|
|
|
|
Press `Ctrl+C` in the WSL terminal to stop O11.
|
|
|
|
---
|
|
|
|
## Step 6 Accessing the Web UI from Windows
|
|
|
|
WSL 2 automatically forwards ports to Windows. You can access O11 from your Windows browser using:
|
|
|
|
| URL | When to use |
|
|
|-----|-------------|
|
|
| `http://localhost:8080` | Works in most cases (automatic port forwarding) |
|
|
| `http://127.0.0.1:8080` | Same as above, explicit IP |
|
|
| `http://<WSL-IP>:8080` | If localhost doesn't work (find IP with `hostname -I` inside WSL) |
|
|
|
|
### Finding your WSL IP address
|
|
|
|
```bash
|
|
hostname -I | awk '{print $1}'
|
|
```
|
|
|
|
Example output: `172.26.155.210` then access `http://172.26.155.210:8080`
|
|
|
|
### Accessing from other devices on your LAN
|
|
|
|
By default, WSL 2 uses a NAT network. To allow other devices on your local network to access O11, you need to set up port forwarding on Windows:
|
|
|
|
Open **PowerShell as Administrator** and run:
|
|
|
|
```powershell
|
|
# Get WSL IP
|
|
$wslIP = wsl hostname -I
|
|
$wslIP = $wslIP.Trim()
|
|
|
|
# Forward port 8080 from Windows to WSL
|
|
netsh interface portproxy add v4tov4 address=0.0.0.0 port=8080 connectaddress=$wslIP connectport=8080
|
|
|
|
# Open Windows Firewall
|
|
New-NetFirewallRule -DisplayName "O11 Pro" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow
|
|
```
|
|
|
|
Now other devices can access O11 at `http://<YOUR_WINDOWS_IP>:8080`
|
|
|
|
> **Note**: The port proxy resets when WSL restarts (WSL gets a new IP). See the [Auto-Start section](#step-10--auto-start-on-windows-boot) for a permanent solution.
|
|
|
|
---
|
|
|
|
## Step 7 Running in Background
|
|
|
|
### Method A: Using `nohup` (Simple)
|
|
|
|
```bash
|
|
cd ~/o11
|
|
|
|
nohup ./o11pro_unpacked -p 8080 -user admin -password mypass \
|
|
-path ~/o11/data -stdout >> ~/o11/o11.log 2>&1 &
|
|
|
|
echo $! > ~/o11/o11.pid
|
|
echo "O11 started with PID $(cat ~/o11/o11.pid)"
|
|
```
|
|
|
|
To check if it's running:
|
|
|
|
```bash
|
|
ps -p $(cat ~/o11/o11.pid)
|
|
```
|
|
|
|
To stop it:
|
|
|
|
```bash
|
|
kill $(cat ~/o11/o11.pid)
|
|
```
|
|
|
|
To view logs:
|
|
|
|
```bash
|
|
tail -f ~/o11/o11.log
|
|
```
|
|
|
|
### Method B: Using `screen` (Recommended for Interactive)
|
|
|
|
```bash
|
|
# Install screen if not already
|
|
sudo apt install -y screen
|
|
|
|
# Create a named screen session
|
|
screen -S o11
|
|
|
|
# Start O11
|
|
cd ~/o11
|
|
./o11pro_unpacked -p 8080 -user admin -password mypass -path ~/o11/data
|
|
|
|
# Detach from screen: press Ctrl+A then D
|
|
# Reattach later:
|
|
screen -r o11
|
|
```
|
|
|
|
### Method C: Using `systemd` Service (Best for Production)
|
|
|
|
WSL 2 supports systemd (on Ubuntu 22.04+). Create a service file:
|
|
|
|
```bash
|
|
sudo nano /etc/systemd/system/o11.service
|
|
```
|
|
|
|
Paste the following (adjust paths and user):
|
|
|
|
```ini
|
|
[Unit]
|
|
Description=O11 Pro Streaming Server
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=YOUR_LINUX_USERNAME
|
|
WorkingDirectory=/home/YOUR_LINUX_USERNAME/o11
|
|
ExecStart=/home/YOUR_LINUX_USERNAME/o11/o11pro_unpacked -p 8080 -user admin -password mypass -path /home/YOUR_LINUX_USERNAME/o11/data
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
> **Replace `YOUR_LINUX_USERNAME`** with your WSL username (run `whoami` to check).
|
|
|
|
Enable and start:
|
|
|
|
```bash
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable o11
|
|
sudo systemctl start o11
|
|
```
|
|
|
|
Check status:
|
|
|
|
```bash
|
|
sudo systemctl status o11
|
|
```
|
|
|
|
View logs:
|
|
|
|
```bash
|
|
sudo journalctl -u o11 -f
|
|
```
|
|
|
|
Stop / restart:
|
|
|
|
```bash
|
|
sudo systemctl stop o11
|
|
sudo systemctl restart o11
|
|
```
|
|
|
|
> **If systemd doesn't work in WSL**, add this to `/etc/wsl.conf`:
|
|
> ```ini
|
|
> [boot]
|
|
> systemd=true
|
|
> ```
|
|
> Then restart WSL: `wsl --shutdown` in PowerShell, then reopen Ubuntu.
|
|
|
|
---
|
|
|
|
## Step 8 Setting Up with Working Directory
|
|
|
|
Use the `-path` flag to keep all O11 data organized:
|
|
|
|
```bash
|
|
mkdir -p ~/o11/data
|
|
|
|
./o11pro_unpacked -p 8080 -user admin -password mypass -path ~/o11/data
|
|
```
|
|
|
|
O11 will create its directory structure automatically:
|
|
|
|
```
|
|
~/o11/data/
|
|
├── hls/live/ # Live stream segments
|
|
├── hls/replay/ # Replay segments
|
|
├── hls/vod/ # VOD segments
|
|
├── dl/tmp/ # VOD download temp files
|
|
├── epg/ # EPG data
|
|
├── logos/ # Channel logos
|
|
├── logs/ # Log files
|
|
├── providers/ # Provider scripts & configs
|
|
├── scripts/ # Auto-generated o11.py
|
|
├── rec/ # Recordings
|
|
├── o11.cfg # Main config
|
|
├── o11-job.cfg # Jobs config
|
|
└── o11-rec.cfg # Recordings config
|
|
```
|
|
|
|
---
|
|
|
|
## Step 9 Adding Providers
|
|
|
|
### Via Web UI (Easiest)
|
|
|
|
1. Open `http://localhost:8080` in your Windows browser
|
|
2. Log in with your credentials
|
|
3. Click **"Add New Provider"** on the Providers page
|
|
4. Fill in the provider name and script settings
|
|
5. Click Save
|
|
|
|
### Via Provider Script
|
|
|
|
Place a Python script in the `providers/` directory:
|
|
|
|
```bash
|
|
nano ~/o11/data/providers/my_provider.py
|
|
```
|
|
|
|
Example provider script:
|
|
|
|
```python
|
|
#!/usr/bin/env python3
|
|
import requests, json
|
|
|
|
def get_channels():
|
|
# Return list of channels
|
|
return [
|
|
{"name": "Channel 1", "url": "https://example.com/stream1.m3u8", "type": "live"},
|
|
{"name": "Channel 2", "url": "https://example.com/stream2.m3u8", "type": "live"},
|
|
]
|
|
|
|
if __name__ == "__main__":
|
|
action = sys.argv[1] if len(sys.argv) > 1 else "channels"
|
|
if action == "channels":
|
|
print(json.dumps(get_channels()))
|
|
```
|
|
|
|
Make it executable:
|
|
|
|
```bash
|
|
chmod +x ~/o11/data/providers/my_provider.py
|
|
```
|
|
|
|
Then configure O11 to use this script through the Web UI → Config → Script section.
|
|
|
|
---
|
|
|
|
## Step 10 Auto-Start on Windows Boot
|
|
|
|
### Method A: Windows Task Scheduler
|
|
|
|
This is the most reliable method for auto-starting O11 when Windows boots.
|
|
|
|
1. Open **Task Scheduler** on Windows (search "Task Scheduler")
|
|
|
|
2. Click **Create Task** (not Basic Task)
|
|
|
|
3. **General tab**:
|
|
- Name: `O11 Pro Server`
|
|
- Select **Run whether user is logged on or not**
|
|
- Check **Run with highest privileges**
|
|
|
|
4. **Triggers tab**:
|
|
- Click **New**
|
|
- Begin the task: **At log on**
|
|
- Click OK
|
|
|
|
5. **Actions tab**:
|
|
- Click **New**
|
|
- Action: **Start a program**
|
|
- Program/script: `wsl`
|
|
- Add arguments:
|
|
```
|
|
-d Ubuntu -u YOUR_LINUX_USERNAME -- bash -c "cd ~/o11 && ./o11pro_unpacked -p 8080 -user admin -password mypass -path ~/o11/data -stdout >> ~/o11/o11.log 2>&1"
|
|
```
|
|
- Click OK
|
|
|
|
6. **Conditions tab**:
|
|
- Uncheck "Start the task only if the computer is on AC power"
|
|
|
|
7. **Settings tab**:
|
|
- Check "Run task as soon as possible after a scheduled start is missed"
|
|
- Click OK
|
|
|
|
### Method B: Windows Startup Script with Port Forwarding
|
|
|
|
Create a PowerShell script that starts WSL + sets up port forwarding:
|
|
|
|
Open Notepad and save this as `C:\o11-start.ps1`:
|
|
|
|
```powershell
|
|
# Start O11 in WSL
|
|
wsl -d Ubuntu -u YOUR_LINUX_USERNAME -- bash -c "cd ~/o11 && nohup ./o11pro_unpacked -p 8080 -user admin -password mypass -path ~/o11/data >> ~/o11/o11.log 2>&1 & echo $! > ~/o11/o11.pid"
|
|
|
|
# Wait for O11 to start
|
|
Start-Sleep -Seconds 3
|
|
|
|
# Set up port forwarding for LAN access
|
|
$wslIP = (wsl hostname -I).Trim()
|
|
netsh interface portproxy delete v4tov4 address=0.0.0.0 port=8080 2>$null
|
|
netsh interface portproxy add v4tov4 address=0.0.0.0 port=8080 connectaddress=$wslIP connectport=8080
|
|
|
|
# Open firewall
|
|
$rule = Get-NetFirewallRule -DisplayName "O11 Pro" -ErrorAction SilentlyContinue
|
|
if (-not $rule) {
|
|
New-NetFirewallRule -DisplayName "O11 Pro" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow
|
|
}
|
|
|
|
Write-Host "O11 Pro is running at http://localhost:8080"
|
|
Write-Host "LAN access: http://$((Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -notmatch 'Loopback|vEthernet' -and $_.IPAddress -notmatch '^169' } | Select-Object -First 1).IPAddress):8080"
|
|
```
|
|
|
|
Create a shortcut in the Startup folder:
|
|
|
|
1. Press `Win+R`, type `shell:startup`, press Enter
|
|
2. Right-click → New → Shortcut
|
|
3. Location: `powershell.exe -ExecutionPolicy Bypass -File "C:\o11-start.ps1"`
|
|
4. Name: `O11 Pro`
|
|
5. Right-click the shortcut → Properties → Advanced → Check **Run as administrator**
|
|
|
|
### Method C: WSL Boot Command
|
|
|
|
If using systemd (Ubuntu 22.04+), O11 starts automatically via the systemd service created in Step 7. You just need to ensure WSL starts on boot.
|
|
|
|
Create a Windows startup shortcut:
|
|
|
|
1. Press `Win+R`, type `shell:startup`, press Enter
|
|
2. Right-click → New → Shortcut
|
|
3. Location: `wsl -d Ubuntu`
|
|
4. Name: `Start WSL for O11`
|
|
|
|
Or use Task Scheduler as in Method A, but with simpler arguments:
|
|
|
|
```
|
|
wsl -d Ubuntu -- sudo systemctl start o11
|
|
```
|
|
|
|
---
|
|
|
|
## Step 11 HTTPS Setup
|
|
|
|
### Generate Self-Signed Certificates (for testing)
|
|
|
|
```bash
|
|
cd ~/o11
|
|
|
|
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt \
|
|
-days 365 -nodes -subj "/CN=localhost"
|
|
```
|
|
|
|
### Use Let's Encrypt (for production with a domain)
|
|
|
|
```bash
|
|
# Install certbot
|
|
sudo apt install -y certbot
|
|
|
|
# Get certificate (replace example.com and your email)
|
|
sudo certbot certonly --standalone -d o11.example.com --non-interactive --agree-tos -m your@email.com
|
|
|
|
# Copy certificates to o11 directory
|
|
sudo cp /etc/letsencrypt/live/o11.example.com/fullchain.pem ~/o11/server.crt
|
|
sudo cp /etc/letsencrypt/live/o11.example.com/privkey.pem ~/o11/server.key
|
|
```
|
|
|
|
Start with HTTPS:
|
|
|
|
```bash
|
|
./o11pro_unpacked -p 8443 -https -user admin -password mypass -path ~/o11/data
|
|
```
|
|
|
|
> **Note for WSL**: Windows Firewall will prompt you to allow the connection. Click **Allow**.
|
|
|
|
---
|
|
|
|
## Step 12 Network Configuration for WSL
|
|
|
|
### Port Forwarding Reference
|
|
|
|
If you need to expose multiple ports (streaming, EPG), forward each one:
|
|
|
|
```powershell
|
|
# Run in PowerShell as Administrator
|
|
$wslIP = (wsl hostname -I).Trim()
|
|
|
|
# Web UI
|
|
netsh interface portproxy add v4tov4 address=0.0.0.0 port=8080 connectaddress=$wslIP connectport=8080
|
|
|
|
# Streaming port
|
|
netsh interface portproxy add v4tov4 address=0.0.0.0 port=9090 connectaddress=$wslIP connectport=9090
|
|
|
|
# EPG port
|
|
netsh interface portproxy add v4tov4 address=0.0.0.0 port=9091 connectaddress=$wslIP connectport=9091
|
|
|
|
# Firewall rules
|
|
New-NetFirewallRule -DisplayName "O11 Pro Web" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow
|
|
New-NetFirewallRule -DisplayName "O11 Pro Stream" -Direction Inbound -LocalPort 9090 -Protocol TCP -Action Allow
|
|
New-NetFirewallRule -DisplayName "O11 Pro EPG" -Direction Inbound -LocalPort 9091 -Protocol TCP -Action Allow
|
|
```
|
|
|
|
### View Current Port Forwards
|
|
|
|
```powershell
|
|
netsh interface portproxy show all
|
|
```
|
|
|
|
### Remove Port Forwards
|
|
|
|
```powershell
|
|
netsh interface portproxy delete v4tov4 address=0.0.0.0 port=8080
|
|
```
|
|
|
|
---
|
|
|
|
## Step 13 Performance Tuning for WSL
|
|
|
|
### RAMFS for HLS Live Segments
|
|
|
|
By default, O11 uses `hls/live/` for live stream segments. On a real Linux system, this is typically a RAMFS for performance. On WSL, you can create one:
|
|
|
|
```bash
|
|
# Create a 512MB RAMFS
|
|
sudo mkdir -p ~/o11/data/hls/live
|
|
sudo mount -t tmpfs -o size=512m tmpfs ~/o11/data/hls/live
|
|
```
|
|
|
|
To make it persistent across reboots, add to `/etc/fstab`:
|
|
|
|
```bash
|
|
echo "tmpfs /home/YOUR_LINUX_USERNAME/o11/data/hls/live tmpfs defaults,size=512m 0 0" | sudo tee -a /etc/fstab
|
|
```
|
|
|
|
> If you skip RAMFS, use the `-noramfs` flag when starting O11:
|
|
> ```bash
|
|
> ./o11pro_unpacked -p 8080 -noramfs -path ~/o11/data
|
|
> ```
|
|
|
|
### WSL Memory Limits
|
|
|
|
Create or edit `%USERPROFILE%\.wslconfig` on Windows:
|
|
|
|
```ini
|
|
[wsl2]
|
|
memory=4GB
|
|
swap=2GB
|
|
processors=4
|
|
```
|
|
|
|
Apply changes:
|
|
|
|
```powershell
|
|
wsl --shutdown
|
|
```
|
|
|
|
Reopen Ubuntu. Check memory:
|
|
|
|
```bash
|
|
free -h
|
|
```
|
|
|
|
---
|
|
|
|
## Step 14 File Management Between Windows and WSL
|
|
|
|
### Accessing WSL Files from Windows
|
|
|
|
In Windows Explorer, navigate to:
|
|
|
|
```
|
|
\\wsl$\Ubuntu\home\YOUR_LINUX_USERNAME\o11
|
|
```
|
|
|
|
Or type this in Explorer's address bar:
|
|
|
|
```
|
|
\\wsl.localhost\Ubuntu\home\YOUR_LINUX_USERNAME\o11
|
|
```
|
|
|
|
You can also open Explorer from WSL:
|
|
|
|
```bash
|
|
explorer.exe ~/o11/data
|
|
```
|
|
|
|
### Accessing Windows Files from WSL
|
|
|
|
Windows drives are mounted under `/mnt/`:
|
|
|
|
| Windows Path | WSL Path |
|
|
|-------------|----------|
|
|
| `C:\` | `/mnt/c/` |
|
|
| `D:\` | `/mnt/d/` |
|
|
| `C:\Users\John\Downloads` | `/mnt/c/Users/John/Downloads` |
|
|
|
|
### Moving O11 Data to a Windows Drive (for larger storage)
|
|
|
|
If your `C:` drive is small, you can point `-path` to a Windows drive:
|
|
|
|
```bash
|
|
# Create data directory on D: drive (Windows)
|
|
mkdir -p /mnt/d/o11-data
|
|
|
|
# Start O11 with data on Windows drive
|
|
./o11pro_unpacked -p 8080 -path /mnt/d/o11-data -user admin -password mypass
|
|
```
|
|
|
|
> **Performance note**: WSL filesystem (`~/o11/`) is faster than Windows drives (`/mnt/d/`). For best performance, keep the binary and live HLS segments in WSL, and use Windows drives only for VOD downloads and recordings.
|
|
|
|
---
|
|
|
|
## Step 15 Troubleshooting
|
|
|
|
### "Permission denied" when running the binary
|
|
|
|
```bash
|
|
chmod +x ~/o11/o11pro_unpacked
|
|
```
|
|
|
|
If still failing, check if the file is on a Windows drive (NTFS doesn't support Linux permissions):
|
|
|
|
```bash
|
|
# Move to WSL filesystem
|
|
mv /mnt/c/Users/.../o11pro_unpacked ~/o11/
|
|
chmod +x ~/o11/o11pro_unpacked
|
|
```
|
|
|
|
### "cannot execute binary file: Exec format error"
|
|
|
|
You're likely on WSL 1 or ARM. Verify:
|
|
|
|
```powershell
|
|
wsl --list --verbose
|
|
```
|
|
|
|
Make sure VERSION is `2`. If not:
|
|
|
|
```powershell
|
|
wsl --set-version Ubuntu 2
|
|
```
|
|
|
|
### Port already in use
|
|
|
|
```bash
|
|
# Find what's using port 8080
|
|
sudo lsof -i :8080
|
|
|
|
# Kill the process
|
|
kill -9 <PID>
|
|
```
|
|
|
|
Or use a different port:
|
|
|
|
```bash
|
|
./o11pro_unpacked -p 8081 -path ~/o11/data
|
|
```
|
|
|
|
### Can't access from Windows browser
|
|
|
|
1. Check O11 is running: `curl http://localhost:8080` inside WSL
|
|
2. Check Windows Firewall it may be blocking the connection
|
|
3. Try the WSL IP directly: `http://$(wsl hostname -I).Trim():8080`
|
|
4. If using a specific bind address, try `-b 0.0.0.0`:
|
|
```bash
|
|
./o11pro_unpacked -p 8080 -b 0.0.0.0 -path ~/o11/data
|
|
```
|
|
|
|
### WSL keeps shutting down O11 when terminal closes
|
|
|
|
Use `nohup`, `screen`, or `systemd` as described in Step 7. The `nohup` method is simplest:
|
|
|
|
```bash
|
|
nohup ./o11pro_unpacked -p 8080 -path ~/o11/data >> ~/o11/o11.log 2>&1 &
|
|
```
|
|
|
|
### FFmpeg not found
|
|
|
|
```bash
|
|
sudo apt install -y ffmpeg
|
|
which ffmpeg
|
|
# Should output: /usr/bin/ffmpeg
|
|
|
|
# If using a custom path:
|
|
./o11pro_unpacked -p 8080 -f /usr/bin/ffmpeg -path ~/o11/data
|
|
```
|
|
|
|
### WSL port forwarding resets after reboot
|
|
|
|
This happens because WSL gets a new IP on each start. Use the PowerShell script from Step 10 (Method B) to automatically reconfigure port forwarding.
|
|
|
|
To manually fix right now:
|
|
|
|
```powershell
|
|
# PowerShell as Administrator
|
|
$wslIP = (wsl hostname -I).Trim()
|
|
netsh interface portproxy delete v4tov4 address=0.0.0.0 port=8080 2>$null
|
|
netsh interface portproxy add v4tov4 address=0.0.0.0 port=8080 connectaddress=$wslIP connectport=8080
|
|
```
|
|
|
|
---
|
|
|
|
## Quick Reference Card
|
|
|
|
### Start O11
|
|
|
|
```bash
|
|
cd ~/o11
|
|
./o11pro_unpacked -p 8080 -user admin -password mypass -path ~/o11/data
|
|
```
|
|
|
|
### Start in Background
|
|
|
|
```bash
|
|
cd ~/o11
|
|
nohup ./o11pro_unpacked -p 8080 -user admin -password mypass -path ~/o11/data >> ~/o11/o11.log 2>&1 &
|
|
echo $! > ~/o11/o11.pid
|
|
```
|
|
|
|
### Stop O11
|
|
|
|
```bash
|
|
kill $(cat ~/o11/o11.pid)
|
|
```
|
|
|
|
### View Logs
|
|
|
|
```bash
|
|
tail -f ~/o11/o11.log
|
|
```
|
|
|
|
### Check if Running
|
|
|
|
```bash
|
|
ps aux | grep o11pro
|
|
```
|
|
|
|
### Update Binary
|
|
|
|
```bash
|
|
cd ~/o11
|
|
wget https://github.com/Ap0dexMe0/o11pro-unpacked/releases/latest/download/o11pro_unpacked -O o11pro_unpacked
|
|
chmod +x o11pro_unpacked
|
|
```
|
|
|
|
### Complete Start with All Options
|
|
|
|
```bash
|
|
./o11pro_unpacked \
|
|
-p 8080 \
|
|
-streamport 9090 \
|
|
-epgport 9091 \
|
|
-user admin \
|
|
-password mysecretpass \
|
|
-jwtsecret my-secret-key-12345 \
|
|
-path ~/o11/data \
|
|
-f /usr/bin/ffmpeg \
|
|
-v 2 \
|
|
-noramfs \
|
|
-b 0.0.0.0
|
|
```
|