Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f8bb6c4
Unified Linux Install for Debian / RHEL based distros
thehack904 Oct 16, 2025
01e29ba
Update retroiptv_linux.sh
thehack904 Oct 16, 2025
df1b785
Update retroiptv_linux.sh
thehack904 Oct 16, 2025
84ef237
Updates for 3.4.0
thehack904 Oct 17, 2025
033f1af
Updates for 3.4.0
thehack904 Oct 17, 2025
7b2b687
Update retroiptv_linux.sh
thehack904 Oct 18, 2025
3f181ab
Update retroiptv_linux.sh
thehack904 Oct 18, 2025
80e2b8f
Update retroiptv_linux.sh
thehack904 Oct 18, 2025
f9e43fd
Update retroiptv_linux.sh
thehack904 Oct 18, 2025
1fc5934
Update retroiptv_linux.sh
thehack904 Oct 18, 2025
1240d97
Update retroiptv_linux.sh
thehack904 Oct 18, 2025
e84ce0a
Update retroiptv_linux.sh
thehack904 Oct 18, 2025
96e263e
Update retroiptv_linux.sh
thehack904 Oct 18, 2025
425acc7
Update install.bat
thehack904 Oct 19, 2025
c089578
Update install.bat
thehack904 Oct 19, 2025
915e0af
Update retroiptv_windows.ps1
thehack904 Oct 19, 2025
78b1af1
Update install.bat
thehack904 Oct 19, 2025
5051c97
Update install.bat
thehack904 Oct 19, 2025
8d1bf69
Update install.bat
thehack904 Oct 19, 2025
527ec97
Update retroiptv_windows.ps1
thehack904 Oct 19, 2025
e857c1f
Update retroiptv_windows.ps1
thehack904 Oct 19, 2025
44bfcef
Update install.bat
thehack904 Oct 19, 2025
33225e2
Update install.bat
thehack904 Oct 19, 2025
4d436d2
Update retroiptv_windows.ps1
thehack904 Oct 19, 2025
8d855d5
Update retroiptv_windows.ps1
thehack904 Oct 19, 2025
1330163
Updates to version 3.4.0 for Windows
thehack904 Oct 19, 2025
5b378ff
Update retroiptv_windows.ps1
thehack904 Oct 19, 2025
d4969e7
Update retroiptv_windows.ps1
thehack904 Oct 19, 2025
32b4c3e
v4.0.0 Unified Installers Update
thehack904 Oct 19, 2025
85f6d23
v4.0.0 Unified Installers Update
thehack904 Oct 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 37 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,36 @@ All notable changes to this project will be documented here.
Format based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
This project follows [Semantic Versioning](https://semver.org/).


## v4.0.0 — 2025-10-19
**Status:** Public Release (Feature Complete)

### Major Changes
- Introduced unified cross-platform installers:
- `retroiptv_linux.sh` replaces all legacy shell installers
- `retroiptv_windows.ps1` adds native PowerShell support
- `retroiptv_rpi.sh` updated for Ubuntu 24.04.2 ARM builds
- Added Android/Fire/Google TV mode with glowing CRT-style header and TV-optimized layout
- Added `manage_users.html` for integrated user creation, management, and deletion
- Updated `app.py` for unified configuration handling, improved session persistence, and tuner logic cleanup
- Modernized UI templates: `guide.html`, `login.html`, `about.html`, `logs.html`, `change_password.html`, and `change_tuner.html`
- Refreshed `CHANGELOG.md`, `README.md`, and `ROADMAP.md` to match unified architecture

### Removed / Consolidated
- Removed legacy install/uninstall scripts (`install.*`, `uninstall.*`, `iptv-server.service`)
- Consolidated multiple user templates (`add_user.html`, `new_user.html`, etc.) into `manage_users.html`

### Known Limitations
- HTTPS mode remains experimental (local/internal network use recommended)
- Android TV session persistence under further testing
- Performance optimization ongoing for large EPG datasets

### Upcoming Development
- Optional HTTPS + token authentication
- Per-user tuner assignment system
- PlutoTV / custom tuner aggregation features
- Enhanced guide refresh logic for long-running sessions

---

## [Unreleased]
Expand Down Expand Up @@ -32,7 +62,8 @@ This project follows [Semantic Versioning](https://semver.org/).

---

## v3.2.0 - 2025-10-11

## [v3.2.0] - 2025-10-11
### Added
- **Containerization & TrueNAS Deployment Support**
- Added official Dockerfile and `docker-compose.yml` for cross‑platform container deployments.
Expand All @@ -50,7 +81,6 @@ This project follows [Semantic Versioning](https://semver.org/).
### Fixed
- Corrected GHCR tag formatting for TrueNAS (eliminated `:latest:latest` errors).
- Fixed workflow permissions with explicit `packages: write` and PAT authentication.

---

## v3.1.0 - 2025-10-09
Expand Down Expand Up @@ -102,8 +132,10 @@ This project follows [Semantic Versioning](https://semver.org/).
- Prevented guide from displaying outdated EPG after tuner change.
- Corrected case where missing XML data produced empty grid.


---


## [3.0.0] - 2025-10-03
### Added
- **Windows Support**:
Expand Down Expand Up @@ -132,8 +164,6 @@ This project follows [Semantic Versioning](https://semver.org/).
- Consistent logging of user agreement and installer actions.
- Ensured firewall rule removal on Windows during uninstall.

---

## [2.3.2] - 2025-09-26
### Added
- Introduced unified **Themes submenu** (Light, Dark, AOL/CompuServe, TV Guide Magazine) across all admin and user pages.
Expand Down Expand Up @@ -209,7 +239,9 @@ This project follows [Semantic Versioning](https://semver.org/).
- Fixed alignment of tuner forms with consistent dropdowns and validation.
- Ensured flash messages and logging work consistently across all tuner operations.

## [v2.0.0] 2025-09-24


## [v2.0.0] – 2025-09-24
### Added
- Tuner URL validation: new validate_tuner_url() function checks XML/M3U inputs before saving.
- Detects invalid/empty URLs, unresolvable hostnames, and distinguishes between public vs. private IPs.
Expand Down
179 changes: 75 additions & 104 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# Installation Guide

**Version:** v3.2.0
**Last Updated:** 2025-10-11
**Version:** v4.0.0
**Last Updated:** 2025-10-19

## Requirements
---

## 🧰 Requirements
- Python 3.10+ (Linux) / Python 3.12+ (Windows)
- **Linux (Debian/Ubuntu with systemd)**, **Windows 10/11**, or **Raspberry Pi 3 / 4 / 5 (Headless OS) / Docker**
- Administrative privileges:
Expand All @@ -12,134 +14,103 @@

---

## Installation
## 🛠 Installation

Clone the repository and run the installer. Choose the command based on your OS.
### 🧱 Docker (Generic Linux / macOS / Windows)

### Linux / WSL
## 🐳 Quick Docker Run

The fastest way to launch **RetroIPTVGuide v3.2.0**:

#### One-liner
```bash
git clone https://github.com/thehack904/RetroIPTVGuide.git && cd RetroIPTVGuide && sudo chmod +x install.sh && sudo ./install.sh
docker pull ghcr.io/thehack904/retroiptvguide:latest
docker run -d --name retroiptvguide -p 5000:5000 -e TZ=America/Chicago -e SECRET_KEY=$(openssl rand -hex 32) -v $(pwd)/config:/app/config -v $(pwd)/logs:/app/logs -v $(pwd)/data:/app/data ghcr.io/thehack904/retroiptvguide:latest
```

**What the installer does (Linux/WSL):**
- Detects Linux/WSL environment
- Ensures script is run with sudo
- Creates a system user `iptv`
- Installs into `/home/iptv/iptv-server`
- Ensures `python3-venv` is installed
- Creates Python virtual environment and installs dependencies
- Creates and enables the `iptv-server` systemd service
- Starts the service
- Logs the install to `install_YYYY-MM-DD_HH-MM-SS.log`

---

### Windows 10 / 11

Run this one-liner from an **Administrator PowerShell** prompt:
#### Using Docker Compose

```powershell
Invoke-WebRequest https://github.com/thehack904/RetroIPTVGuide/archive/refs/heads/main.zip -OutFile RetroIPTVGuide.zip ; tar -xf RetroIPTVGuide.zip ; cd RetroIPTVGuide-main ; .\install.bat
```bash
git clone https://github.com/thehack904/RetroIPTVGuide.git
cd RetroIPTVGuide/docker
cp .env.example .env
docker compose up -d
```

**What the installer does (Windows):**
- Bootstraps Chocolatey (if missing)
- Installs dependencies: `python`, `git`, `nssm`
- Registers Windows App Paths for `python` / `python3`
- Adds Python to Git Bash (`~/.bashrc`)
- Clones RetroIPTVGuide and runs `install.sh` under Git Bash to set up venv + requirements
- Creates an NSSM service to run `venv\Scripts\python.exe app.py`
- Opens Windows Firewall port 5000
- Starts the RetroIPTVGuide service
- Logs the install to `install_YYYY-MM-DD_HH-MM-SS.log`

---

### Raspberry Pi 3 / 4 / 5 (Headless Edition)

#### Interactive install
### 🐧 Linux
#### Automated
```bash
curl -sSL https://raw.githubusercontent.com/thehack904/RetroIPTVGuide/refs/heads/main/retroiptv_rpi.sh | sudo bash -s install
curl -sSL https://raw.githubusercontent.com/thehack904/RetroIPTVGuide/main/retroiptv_linux.sh | sudo bash -s install --agree --yes
```

#### Unattended / non-interactive
#### Manual
```bash
curl -sSL https://raw.githubusercontent.com/thehack904/RetroIPTVGuide/refs/heads/main/retroiptv_rpi.sh | sudo bash -s install --yes --agree
wget https://raw.githubusercontent.com/thehack904/RetroIPTVGuide/main/retroiptv_linux.sh
sudo bash ./retroiptv_linux.sh install
```

**What the installer does (Raspberry Pi):**
- Detects Pi model (3 / 4 / 5)
- Installs required packages (`python3-venv`, `ffmpeg`, `git`, etc.) using `apt-get`
- Creates user `iptv` and installs into `/home/iptv/iptv-server`
- Configures GPU memory automatically (128 MB on Pi 3 / 256 MB on Pi 4/5)
- Sets up Python virtual environment and dependencies
- Creates systemd service `retroiptvguide`
- Performs post-install HTTP check (localhost:5000) with up-to-15 s polling
- Logs all activity to `/var/log/retroiptvguide/install-TIMESTAMP.log`
- Optionally reboots to apply GPU memory changes

**Requirements**
- Raspberry Pi OS (Bookworm or later)
- Minimum 8 GB SD card and 1 GB RAM (512 MB swap recommended)
- SSH or console access with sudo

---

## 🚀 Containerized Deployment

RetroIPTVGuide v3.2.0 introduces **official Docker and TrueNAS SCALE App support**, allowing one‑click installation and persistent storage.

### 🧱 Docker (Generic Linux / macOS / Windows)

#### Using Docker Compose

### 🍓 Raspberry Pi
#### Automated
```bash
git clone https://github.com/thehack904/RetroIPTVGuide.git
cd RetroIPTVGuide/docker
cp .env.example .env
docker compose up -d
curl -sSL https://raw.githubusercontent.com/thehack904/RetroIPTVGuide/main/retroiptv_rpi.sh | sudo bash -s install --agree --yes
```


## 🐳 Quick Docker Run

The fastest way to launch **RetroIPTVGuide v3.2.0**:

#### Manual
```bash
docker pull ghcr.io/thehack904/retroiptvguide:latest
docker run -d --name retroiptvguide -p 5000:5000 -e TZ=America/Chicago -e SECRET_KEY=$(openssl rand -hex 32) -v $(pwd)/config:/app/config -v $(pwd)/logs:/app/logs -v $(pwd)/data:/app/data ghcr.io/thehack904/retroiptvguide:latest
wget https://raw.githubusercontent.com/thehack904/RetroIPTVGuide/main/retroiptv_rpi.sh
sudo bash ./retroiptv_rpi.sh install
```

---

## Access
### 🪟 Windows (PowerShell)
#### Automated
```powershell
Set-ExecutionPolicy Bypass -Scope Process -Force
Invoke-WebRequest https://raw.githubusercontent.com/thehack904/RetroIPTVGuide/main/retroiptv_windows.ps1 -OutFile retroiptv_windows.ps1
.\retroiptv_windows.ps1 install
```

#### Manual
1. Download `retroiptv_windows.ps1` from the GitHub repository.
2. Open **PowerShell as Administrator**.
3. Navigate to the folder containing the script.
4. Run:
```powershell
Set-ExecutionPolicy Bypass -Scope Process -Force
.\retroiptv_windows.ps1 install
```

Once installed, open your browser:
---

## 🌐 Access
After installation:
```
http://<server-ip>:5000
🌐 RetroIPTVGuide Web Interface: http://<server-ip>:5000
🔑 Default Login: admin / strongpassword123
```

Default login: **admin / strongpassword123**
⚠️ This is a **BETA** build for internal network use only.
> ⚠️ **Beta Notice:**
> This version is feature-complete and stable, but still displays a *Beta* disclaimer during installation for liability protection.
> Do not expose your instance directly to the public Internet.

---

## 🔄 Updating

### Linux / WSL
### 🐧 Linux
```bash
sudo -u iptv bash -H -c "cd /home/iptv/iptv-server && git fetch --all && git reset --hard origin/main" && sudo systemctl daemon-reload && sudo systemctl restart iptv-server.service
sudo retroiptv_linux.sh update
```

### Raspberry Pi
### 🍓 Raspberry Pi
```bash
sudo -u iptv bash -H -c "cd /home/iptv/iptv-server && git fetch --all && git reset --hard origin/main" && sudo systemctl daemon-reload && sudo systemctl restart retroiptvguide.service
sudo retroiptv_rpi.sh update
```

### Windows 10 / 11
### 🪟 Windows
**Alignment with Linux/Pi currently on track for v4.0.1 release**
```powershell
git fetch --all ; git reset --hard origin/main ; Restart-Service RetroIPTVGuide
```
Expand All @@ -151,23 +122,21 @@ docker compose pull && docker compose up -d

---

## Uninstallation
## 📘 Uninstall

### Linux / WSL
### 🐧 Linux
```bash
sudo -u iptv bash -H -c "cd /home/iptv/iptv-server" && sudo bash /home/iptv/iptv-server/uninstall.sh
sudo retroiptv_linux.sh uninstall
```

### Raspberry Pi
### 🍓 Raspberry Pi
```bash
curl -sSL https://raw.githubusercontent.com/thehack904/RetroIPTVGuide/refs/heads/main/retroiptv_rpi.sh | sudo bash -s uninstall --yes
sudo retroiptv_rpi.sh uninstall
```

### Windows
From an Administrator PowerShell prompt:
```powershell
.\uninstall_windows.ps1
```
### 🪟 Windows
1. Double-click or right-click on `retroiptv_windows.bat` and select **Run as Administrator**
2. Select **Uninstall**

#### Docker
```bash
Expand All @@ -178,10 +147,12 @@ docker compose down -v
⚠️ To completely remove the project, manually delete the project folder after uninstalling.
---

## License
Licensed under CC BY-NC-SA 4.0. See `LICENSE` for details.
## ⚙️ Notes
- All installers log activity with timestamps (stored in the same directory or `/var/log/retroiptvguide/`).
- Uninstallers remove services and dependencies cleanly but preserve user data unless explicitly deleted.
- These scripts are intended for **local or internal networks only**.

---

⚠️ **Initial BETA Notice**
This project is currently in **BETA** and should **not** be exposed directly to the Internet or used in production without additional hardening.
## License
Licensed under **CC BY-NC-SA 4.0**. See `LICENSE` for details.
Loading