-
Notifications
You must be signed in to change notification settings - Fork 2
Troubleshooting
This page covers common problems and how to fix them.
Symptom: Running the installer prompts:
"The full RetroIPTVGuide repository was not detected in the current directory. The installer needs to clone it from GitHub…"
Cause: The installer checks for app.py and requirements.txt in the same
directory as the script. If those files are absent it assumes the full release was not
downloaded and offers to clone from GitHub.
Common causes and fixes:
| Situation | Fix |
|---|---|
Ran curl … | sudo bash — full repo was never downloaded |
Answer yes to let the installer clone, or use --yes to skip the prompt |
| Extracted the release ZIP but ran the script from a different directory |
cd into the extracted directory first, then re-run the script |
| Only the installer script was downloaded, not the full archive | Download the full .zip or .tar.gz from the Releases page and extract it, then run the script from inside that folder |
| Windows: running from a path other than the extracted folder | Open PowerShell inside the extracted folder and run .\retroiptv_windows.ps1 install
|
Symptom: http://<server-ip>:5000 does not load.
Checks:
- Confirm the container or service is running:
docker compose ps # or sudo systemctl status retroiptvguide - Confirm port 5000 is not blocked by a firewall:
sudo ufw status
- Confirm you are using the correct IP address of the server, not
localhostwhen accessing from another device. - If running Docker with a custom port mapping, use the mapped host port.
Symptom: The guide loads but shows no channels or programs.
Checks:
- Confirm at least one tuner is configured under Tuner Management.
- Verify the playlist URL is reachable from the server:
curl -I "http://your-playlist-url/playlist.m3u" - Verify the XMLTV EPG URL is reachable from the server:
curl -I "http://your-epg-url/epg.xml" - Trigger a manual refresh from Tuner Management and check the application logs for errors.
Symptom: Clicking a channel shows a black player or an error.
Checks:
- Confirm your IPTV backend provides HLS segmented streams (
.m3u8segment manifests), not MPEG-TS. RetroIPTVGuide relies on the browser's native HLS support orhls.jsfor playback and cannot play MPEG-TS streams directly. - Open the browser developer console (F12) and check the Console and Network tabs for errors.
- Confirm the stream URL is reachable from the client device (not just the server).
- Test the stream URL directly in VLC or another player.
- Try a different browser. Chromium-based browsers (Chrome, Edge) generally have the best HLS compatibility.
If the admin password is unknown it can be reset from the command line.
Linux / Raspberry Pi:
sudo -u iptv python3 /home/iptv/iptv-server/scripts/reset_admin_password.py \
--db /home/iptv/iptv-server/config/users.dbDocker:
docker compose exec retroiptvguide \
python3 /app/scripts/reset_admin_password.py --db /app/config/users.dbOn success the password is reset and the account is flagged to require a new password on next login.
If the script reports a database write error, run it as the user that owns the database file:
ls -la /home/iptv/iptv-server/config/users.db
sudo -u iptv python3 /home/iptv/iptv-server/scripts/reset_admin_password.py \
--db /home/iptv/iptv-server/config/users.dbIf the issue persists, check if the file has been made immutable:
lsattr /home/iptv/iptv-server/config/users.dbRemove the immutable flag if present:
sudo chattr -i /home/iptv/iptv-server/config/users.dbSymptom: A virtual channel loads but displays an error or empty content.
Checks:
-
Confirm the channel is enabled under Virtual Channels.
-
Confirm the channel has been configured (location for Weather, RSS URLs for News, region for Traffic, etc.).
-
Check that the relevant external API is reachable from the server. Many virtual channels rely on public internet APIs:
Channel External API Weather (conditions/forecast) api.open-meteo.comWeather (alerts, US only) api.weather.govWeather (radar) opengeo.ncep.noaa.govNews Configured RSS feed URLs Traffic overpass-api.deSports User-configured external data source (RSS feeds or JSON scores endpoint) NASA api.nasa.govOn This Day en.wikipedia.org -
Run Admin Diagnostics to check connectivity to each virtual channel data source.
Symptom: Tuners, settings, or users are lost after updating the container.
Cause: The data directory is not mounted as a persistent volume.
Fix: Mount /app/config as a Docker volume in docker-compose.yml:
volumes:
- ./config:/app/configAfter adding the volume, recreate the container:
docker compose down && docker compose up -dSymptom: Application logs show SQLite errors or schema migration warnings.
Checks:
- Confirm the data directory is writable by the application user.
- Check for disk space issues:
df -h
- If the database files are corrupt, stop the application, back up the files, and remove them. The application will recreate them on next start (you will need to reconfigure tuners and users).
Symptom: Program times in the guide are offset from the correct time.
Checks:
- Confirm the
TZenvironment variable (Docker) or system timezone matches your local timezone. - Confirm the XMLTV EPG source includes correct timezone offsets in its timestamps.
The built-in Admin Diagnostics page provides a comprehensive health check:
- Log in as an administrator.
- Navigate to Admin → Diagnostics.
- Review the status of each check, including virtual channel connectivity, database schema, and system health.
Diagnostics check virtual channel external service connectivity, database schema integrity, user account configuration, and more.
Check the application logs for additional error details:
# Docker
docker compose logs -f
# Linux (systemd)
journalctl -u retroiptvguide -fOpen an issue on GitHub with the RetroIPTVGuide version, installation type, relevant log output, and reproduction steps: https://github.com/thehack904/RetroIPTVGuide/issues