- Registriert
- 18. Februar 2017
- Beiträge
- 1.847
- Lösungen
- 3
- Reaktionspunkte
- 1.678
- Punkte
- 1.970
Mit Version 3.0 habe ich komplett von CLI zu einem echten Webinterface umgestellt.
Die bekannten Funktionen aus der CLI Version sind erhalten geblieben, in den meisten Fällen allerdings noch mal angepasst worden.
Da es jetzt deutlich mehr Abhängigkeiten gibt, habe ich mich dazu entschlossen ab Version 3.0.0, nur noch als Docker Image zu veröffentlichen. Das macht alles einfacher, da die Abhängigkeiten im Docker Image immer gegeben sind. Und somit der Support, bzw. Fehlerbehebung einfacher wird.
Installation:
Mit Docker Compose lässt sich die Anwendung sehr einfach starten. Dafür werden nur zwei Dateien benötigt:
docker-compose.yml und .env.
Im Folgenden wird erklärt, wie ihr alles Schritt für Schritt im Terminal einrichtet.
Voraussetzungen
Öffnet ein Terminal und erstellt einen Ordner für das Projekt:
Der Ordnername ist frei wählbar. Empfehlenswert ist ein Ordner im Home-Verzeichnis.
Schritt 2: Eigene Benutzer-ID (UID) und Gruppen-ID (GID) ermitteln
Diese Werte werden später in der .env Datei benötigt.
Gebt im Terminal ein:
Die Ausgabe sieht ungefähr so aus:
Wichtig: Dieser Schritt macht keinen Sinn, wenn ihr als root eingeloggt seid.
Schritt 3: docker-compose.yml erstellen
Erstellt die Datei docker-compose.yml:
Erstellt nun die .env Datei:
Startet die Anwendung mit:
Docker lädt beim ersten Start automatisch alle benötigten Images herunter. Das kann ein paar Minuten dauern.
Schritt 6: Webinterface öffnen
Nach erfolgreichem Start ist das Webinterface im Browser erreichbar unter:
Neben dem nichts sagendem Image Namen und der Repo ohne jegliche Beschreibung, habe ich noch eine Besonderheit in das Image eingebaut. Und zwar startet dieses nur, wenn als Variable ein "Token" mitgegeben wird. Folgendes muss in der .env eingefügt werden.
Die bekannten Funktionen aus der CLI Version sind erhalten geblieben, in den meisten Fällen allerdings noch mal angepasst worden.
Da es jetzt deutlich mehr Abhängigkeiten gibt, habe ich mich dazu entschlossen ab Version 3.0.0, nur noch als Docker Image zu veröffentlichen. Das macht alles einfacher, da die Abhängigkeiten im Docker Image immer gegeben sind. Und somit der Support, bzw. Fehlerbehebung einfacher wird.
Installation:
Mit Docker Compose lässt sich die Anwendung sehr einfach starten. Dafür werden nur zwei Dateien benötigt:
docker-compose.yml und .env.
Im Folgenden wird erklärt, wie ihr alles Schritt für Schritt im Terminal einrichtet.
Voraussetzungen
- Docker ist installiert
- Docker Compose ist verfügbar
- Ihr seid nicht als root angemeldet
Öffnet ein Terminal und erstellt einen Ordner für das Projekt:
Code:
mkdir portal-manager
cd portal-manager
Schritt 2: Eigene Benutzer-ID (UID) und Gruppen-ID (GID) ermitteln
Diese Werte werden später in der .env Datei benötigt.
Gebt im Terminal ein:
Code:
id
Die Ausgabe sieht ungefähr so aus:
Code:
uid=1000(username) gid=1000(username)
Schritt 3: docker-compose.yml erstellen
Erstellt die Datei docker-compose.yml:
Code:
nano docker-compose.yml
- Fügt den Inhalt aus dem Beispiel unten ein
- Ersetzt alle Stellen mit !!!ERSETZEN!!! durch eure eigenen Werte
- Tragt hier eure zuvor ermittelte UID (PUID) und GID (PGID) ein
- Speichern mit STRG + O, bestätigen mit Enter, beenden mit STRG + X
Erstellt nun die .env Datei:
Code:
nano .env
- Fügt den Inhalt aus dem Beispiel unten ein
- Ersetzt alle Stellen mit !!!ERSETZEN!!! durch eure eigenen Werte
- Speichern und schließen wie oben beschrieben
Startet die Anwendung mit:
Code:
docker compose up -d
Schritt 6: Webinterface öffnen
Nach erfolgreichem Start ist das Webinterface im Browser erreichbar unter:
Code:
http://<IP-Adresse>:8000
Code:
name: portal-manager
services:
portal-manager:
image: teminvictus/spm:latest
container_name: portal-manager
restart: unless-stopped
ports:
- "8000:8080"
env_file:
- .env
environment:
- PUID=!!!ERSETZEN!!!
- PGID=!!!ERSETZEN!!!
- APP_ENV=${APP_ENV}
- STARTUP_LOG_MODE=${STARTUP_LOG_MODE}
- STARTUP_SECRET=${STARTUP_SECRET}
- PRODUCTION_TLS_TERMINATED=${PRODUCTION_TLS_TERMINATED}
- ALLOW_INSECURE_DEFAULTS=${ALLOW_INSECURE_DEFAULTS}
- ADMIN_USER=${ADMIN_USER}
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
- SESSION_TTL_MINUTES=${SESSION_TTL_MINUTES}
- SESSION_COOKIE_NAME=${SESSION_COOKIE_NAME}
- SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE}
- SESSION_COOKIE_DOMAIN=${SESSION_COOKIE_DOMAIN}
- MAINTENANCE_ENABLED=${MAINTENANCE_ENABLED}
- MAINTENANCE_INTERVAL_MINUTES=${MAINTENANCE_INTERVAL_MINUTES}
- MAINTENANCE_JOB_RETENTION_DAYS=${MAINTENANCE_JOB_RETENTION_DAYS}
- WORKER_JOB_TIMEOUT_SECONDS=${WORKER_JOB_TIMEOUT_SECONDS}
- WORKER_JOB_MAX_ATTEMPTS=${WORKER_JOB_MAX_ATTEMPTS}
- WORKER_HEARTBEAT_INTERVAL_SECONDS=${WORKER_HEARTBEAT_INTERVAL_SECONDS}
- WORKER_HEARTBEAT_STALE_SECONDS=${WORKER_HEARTBEAT_STALE_SECONDS}
volumes:
- portal_manager_data:/opt/app/backend/data
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8080/ >/dev/null && curl -fsS http://127.0.0.1:8000/ >/dev/null || exit 1"]
interval: 30s
timeout: 5s
start_period: 25s
retries: 3
volumes:
portal_manager_data:
Code:
# -------------------------------------------------------------------
# App environment and startup logging
# -------------------------------------------------------------------
# APP_ENV: "dev" or "production" (also accepts "prod")
APP_ENV=dev
# STARTUP_LOG_MODE: "compact" (recommended) or "verbose"
STARTUP_LOG_MODE=compact
# Mandatory startup guard:
# Must exactly match the release startup secret required by the image.
STARTUP_SECRET=!!!ERSETZEN!!!
# Production safety guard:
# Must be true when APP_ENV=production and HTTPS is terminated in front of this container.
PRODUCTION_TLS_TERMINATED=false
# Credential safety override:
# Keep false in production. Set true only for temporary lab/testing bypass.
ALLOW_INSECURE_DEFAULTS=false
# -------------------------------------------------------------------
# Admin account and session/cookie behavior
# -------------------------------------------------------------------
# Admin login username.
# Production startup guard rejects the default username (admin) unless override is enabled.
ADMIN_USER=!!!ERSETZEN!!!
# Set to a strong password before deployment (production requires >= 12 chars).
ADMIN_PASSWORD=!!!ERSETZEN!!!
# Session lifetime in minutes (12h default)
SESSION_TTL_MINUTES=720
SESSION_COOKIE_NAME=pm_session
# In production, cookies are automatically forced to Secure + SameSite=Strict.
# Set SESSION_COOKIE_SECURE=true only if you want Secure cookies outside production too.
SESSION_COOKIE_SECURE=false
# Optional cookie domain. Leave empty for host-only cookies.
SESSION_COOKIE_DOMAIN=
# -------------------------------------------------------------------
# Automatic maintenance (job/session cleanup)
# -------------------------------------------------------------------
MAINTENANCE_ENABLED=true
MAINTENANCE_INTERVAL_MINUTES=60
MAINTENANCE_JOB_RETENTION_DAYS=30
# -------------------------------------------------------------------
# Worker behavior
# -------------------------------------------------------------------
WORKER_JOB_TIMEOUT_SECONDS=1800
WORKER_JOB_MAX_ATTEMPTS=2
WORKER_HEARTBEAT_INTERVAL_SECONDS=10
WORKER_HEARTBEAT_STALE_SECONDS=30
Neben dem nichts sagendem Image Namen und der Repo ohne jegliche Beschreibung, habe ich noch eine Besonderheit in das Image eingebaut. Und zwar startet dieses nur, wenn als Variable ein "Token" mitgegeben wird. Folgendes muss in der .env eingefügt werden.
Code:
STARTUP_SECRET=M9v2Qk7rL4cX8nP1tF6bH3wZ5yD0sJ2uR7aN4eC9
You must be registered for see images attach
You must be registered for see images attach
You must be registered for see images attach
You must be registered for see images attach
- 3.0.3
- base image
- 3.1.0
- Leistung: MAC-Massenoperationen sind jetzt echte Batch-Anfragen
- Backend-Massenendpunkte für MAC-Erstellung/Aktualisierung/Löschung hinzugefügt
- Portal-UI-Massenimport/-bearbeitung/-löschung aktualisiert, um Batch-APIs mit einer einzigen Anfrage anstelle einer Anfrage pro MAC zu verwenden
- Reduzierter Anfrageaufwand und verbesserte Geschwindigkeit für große MAC-Listen
- UX: Der Benachrichtigungsverlauf enthält jetzt den Herkunftskontext
- Benachrichtigungseinträge wurden um Quellmetadaten ergänzt
- Portalaktionen versehen Benachrichtigungen jetzt mit dem Namen des Portals
- Die Benachrichtigungsseite zeigt diese Quelle an, sodass Benutzer sofort sehen können, woher die einzelnen Nachrichten stammen
- Benachrichtigungen
- Globale Benachrichtigungen über den Abschluss asynchroner Aufträge wurden hinzugefügt
- Auftragsaktionen, die zuvor nur in die Warteschlange gestellt wurden, geben nun nach Abschluss (erfolgreich/fehlgeschlagen/abgebrochen) Folge-Statusmeldungen und Einträge im Benachrichtigungsverlauf aus
- Abschlussbenachrichtigungen enthalten, sofern verfügbar, den Portal-Kontext, wodurch die Rückverfolgbarkeit über mehrere Portale hinweg verbessert wird
- Automatische Auswahl der primären MAC-Adresse (neu)
- Es wurde eine neue Einstellungsoption hinzugefügt, um die primäre MAC-Adresse des Portals automatisch anhand der höchsten TV+VOD-Kategoriedeckung auszuwählen
- Wenn diese Option aktiviert ist, behält das System nun die primäre MAC-Adresse mit der besten Abdeckung bei (vorzugsweise aktive MAC-Adressen)
- Die automatische Auswahl wird angewendet:
- unmittelbar nach Aktivierung der Einstellung
- nach MAC-Prüfungen
- Wenn diese Option deaktiviert ist, bleibt das Verhalten der primären MAC-Adresse wie bisher manuell
- Verbesserungen der Benutzererfahrung bei der Protokollierung von Aufträgen
- Verbesserte Reaktionsfähigkeit des Live-Auftragsprotokolls für check_macs, fetch_categories und generate_playlist
- Kritische Ergebniszeilen werden nun sofort geschrieben (anstatt auf den Batch-Flush zu warten), sodass der endgültige Status/die Zusammenfassung in Echtzeit angezeigt wird
- Ausführliche Schrittprotokolle werden gebündelt, um unnötigen Schreibaufwand zu vermeiden und gleichzeitig reibungslose Live-Aktualisierungen zu gewährleisten
- Leistung: MAC-Massenoperationen sind jetzt echte Batch-Anfragen
Moin zusammen,
aus Neugierde und Interesse mehr zu verstehen, wie die ganze Stalker Geschichte funktioniert, habe ich mir ein eigenes Stalker Portal gebaut. Das ist natürlich deutlich inspiriert von @clever999 und @salidos, ist aber schlanker aufgebaut. Und auch Dankeschön an beide, bei Fragen immer geholfen.
Kurz zusammengefasst könnt ihr Portale hinzufügen, Kategorien auswählen und euch daraus eine Playlist erstellen lassen. Diese erstellte Playlist verweist auf einen nginx Webserver, welcher dann eine passende MAC auswählt und dem Player den passenden Link zurück sendet.
Getestet habe ich die ganze Sache auf einer Ubuntu VM. Ich bin kein Sicherheitsexperte, die ganze Sache gehört somit nicht auf öffentliche Server, sondern ins eigene Heimnetz. Am besten noch in Verbindung mit einem VPN, aber das kann jeder halten, wie er möchte.
Zum Starten das Archiv auf den Server kopieren, entpacken und das Hauptskript ausführen:
Nginx-Konfiguration
Der nginx‑Webserver kann über den Menüpunkt „3. Proxy Settings“ automatisch installiert und konfiguriert werden. Dabei werden die benötigten Konfigurationsdateien erstellt bzw. angepasst. Diese Option sollte nur verwendet werden, wenn die VM ausschließlich für diesen Zweck genutzt wird. Erfahrene Nutzer können die notwendigen Anpassungen auch manuell vornehmen und die Konfiguration in eine bestehende nginx‑Installation integrieren.
Grundablauf
Im „Portal Menu“ empfiehlt sich folgender Ablauf:
„7. Check MACs“ muss immer ausgeführt werden, sobald neue MAC‑Adressen hinzugefügt oder Kategorien geändert wurden.
Hintergrund: Beim Aufruf eines Kanals prüft das Skript, ob
Playlist abrufen
Nach der Generierung kann die Playlist auf zwei Arten genutzt werden:
Webinterface
Es gibt eine simple Website, die über
aus Neugierde und Interesse mehr zu verstehen, wie die ganze Stalker Geschichte funktioniert, habe ich mir ein eigenes Stalker Portal gebaut. Das ist natürlich deutlich inspiriert von @clever999 und @salidos, ist aber schlanker aufgebaut. Und auch Dankeschön an beide, bei Fragen immer geholfen.
Kurz zusammengefasst könnt ihr Portale hinzufügen, Kategorien auswählen und euch daraus eine Playlist erstellen lassen. Diese erstellte Playlist verweist auf einen nginx Webserver, welcher dann eine passende MAC auswählt und dem Player den passenden Link zurück sendet.
Getestet habe ich die ganze Sache auf einer Ubuntu VM. Ich bin kein Sicherheitsexperte, die ganze Sache gehört somit nicht auf öffentliche Server, sondern ins eigene Heimnetz. Am besten noch in Verbindung mit einem VPN, aber das kann jeder halten, wie er möchte.
Zum Starten das Archiv auf den Server kopieren, entpacken und das Hauptskript ausführen:
Code:
unzip portal-manager-tem_invictus.zip
cd portal-manager-tem_invictus/
./main.sh
Nginx-Konfiguration
Der nginx‑Webserver kann über den Menüpunkt „3. Proxy Settings“ automatisch installiert und konfiguriert werden. Dabei werden die benötigten Konfigurationsdateien erstellt bzw. angepasst. Diese Option sollte nur verwendet werden, wenn die VM ausschließlich für diesen Zweck genutzt wird. Erfahrene Nutzer können die notwendigen Anpassungen auch manuell vornehmen und die Konfiguration in eine bestehende nginx‑Installation integrieren.
Grundablauf
- „3. Set Proxy Hostname“
- Zuerst den Proxy‑Hostname setzen.
- Dieser Wert wird später zur Erstellung der Playlist verwendet.
- „1. Add new portal“
- Neues Portal anlegen (Name, URL usw.).
- Die Eingaben sind weitgehend selbsterklärend.
- „2. Edit Portal“
- Das gewünschte Portal auswählen und bei Bedarf anpassen.
Im „Portal Menu“ empfiehlt sich folgender Ablauf:
- „3. Select Categories“
- Zuerst die gewünschten Kategorien auswählen.
- Andere Funktionen hängen von dieser Auswahl ab.
- „6. Add MAC address“
- Pro Zeile eine MAC‑Adresse eintragen.
- Doppelte Einträge werden automatisch entfernt.
- Ungültige MAC‑Formate werden verworfen.
- „7. Check MACs“
- Führt verschiedene Prüfungen gegen das Portal durch:
- Gültigkeit der MAC‑Adresse
- Ablaufdatum der MAC
- Anzahl der für diese MAC freigeschalteten Kategorien
- Abgleich, ob die ausgewählten Kategorien für diese MAC verfügbar sind
- Führt verschiedene Prüfungen gegen das Portal durch:
- „5. Generate M3u“
- Erstellt die Playlist (.m3u) mit den zuvor ausgewählten Kategorien.
„7. Check MACs“ muss immer ausgeführt werden, sobald neue MAC‑Adressen hinzugefügt oder Kategorien geändert wurden.
Hintergrund: Beim Aufruf eines Kanals prüft das Skript, ob
- die MAC noch gültig ist (Ablaufdatum) und
- die Kategorie für diese MAC freigeschaltet ist.
Playlist abrufen
Nach der Generierung kann die Playlist auf zwei Arten genutzt werden:
- Direkt vom Server-Dateisystem, z.B. aus
/var/www/stalker/PORTAL/
Die Dateien heißen:
proxy_PORTAL.m3u
(wobei PORTAL durch den jeweiligen Portalnamen ersetzt wird). - Per HTTP-Aufruf, z.B. in VLC:
You must be registered for see links
You must be registered for see links
Webinterface
Es gibt eine simple Website, die über
You must be registered for see links
aufgerufen werden kann.
You must be registered for see images attach
You must be registered for see images attach
You must be registered for see images attach
You must be registered for see images attach
VERSION:
- 1.0
- base version
- 1.1
- kleine Anpassung an den Scripten
- "7. Check MACs" kann man jetzt auswählen, ob "All MACs" oder "Only new MACs". Bei "Only new MACs", werden nur MACs geprüft, die vorher noch nicht geprüft worden sind. Sprich, wenn man neue MACs hinzufügt müssen nicht alle alten noch mal den Check durchlaufen.
- 1.2
- hatte den check nach Doppelten MACs beim hinzufügen neuer MACs kaputt gemacht in der letzten Version. fixed
- außerdem hatte ich auch die Anzeige der MAC Adressen im Portal Menu zerstört. fixed
- 1.3
- Skripte laufen jetzt größtenteils ohne "sudo" Rechte, was die Sache sicherer macht. Um dies zu erreichen, wird der User zur Gruppe www-data hinzugefügt. Das wird durch das main.sh Script beim Start gecheckt.
- 1.4
- noch mal an den Berechtigungen rumgebastelt, sollte jetzt noch mal "besser" sein
- iptv_proxy.sh Script angepasst. Es wird jetzt ein Logfile geschrieben, um besser zu verstehen, was das Portal an Rückmeldung gibt. Außerdem die Überprüfung der Stream Links ausgebaut. Einen gültigen Stream Link bekommt man jetzt mit deutlich höherer Wahrscheinlichkeit.
- 1.41
- vergessen was vom testen rauszunehmen, wodurch bei einigen Portalen nicht mehr alles funktioniert. fixed
- 1.5
- main.sh Script checkt am Anfang wieder die benötigten Pakete und fragt, ob diese installiert werden sollen, wenn nicht vorhanden
- 1.6
- ein paar kleinere Anpassung, wo ich schon wieder vergessen habe, was es genau war
- das iptv_proxy.sh Script angepasst. Bisher hat das script so lange zufällig MAC Adressen ausgewählt, bis es eine funktionierende hat. Das kann zu Situationen führen, wo so viele Adressen probiert werden, bis man vom server gesperrt wird. Jetzt werden Standardmäßig nur 5 MAC Adressen probiert. Im Menü gibt es eine neue Option "Proxy Script Setup", hier kann man diesen Wert (Max MAC Attempts per request) abändern.
Außerdem neu, es wird pro MAC Adresse eine Art Statistik angelegt in der Datei "mac_stats.txt. Hier wird festgehalten, bei wie vielen Anfragen eine MAC benutzt wurde und wie viele davon erfolgreich waren. Daraus wird ein Wert ermittelt und "erfolgreiche" MACs werden bevorzugt benutzt. Dazu kann man einstellen, ab wann dieser Wert benutzt werden soll. Standardmäßig erst wenn eine MAC für mindestens 10 Anfragen genutzt wurde. Auch diesen Wert (Min Stats Attempts Threshold) kann man ändern unter "Proxy Script Setup".
- 1.7
- ein paar Optische Anpassungen. (am besten die Datei dialogrc_custom löschen)
- neue Option, um ein paar System Informationen anzuzeigen
- neue Option, Portal Statistiken anzuzeigen
- neue Option, pro Portal kann man sich ansehen, wie "erfolgreich" eine MAC Adresse ist
- 1.8
- Wieder ein paar optische Anpassungen. Vor allem Portal Info mit mehr Informationen ausgestattet.
- Das erstellen der m3u Playlist angepasst. Zum einem ist die Erstellung jetzt schneller, da immer 5 Kanäle parallel abgefragt werden.
Manche Portale antworten anders auf die Kanal Abfrage, so dass die Erstellung manchmal nicht klappt. Eine Überprüfung hinzugefügt, die jetzt hoffentlich immer erkennt, wie die Daten vom Portal bereitgestellt werden und darauf reagiert.
- 1.81
- Portal Info Anzeige korrigiert
- 1.82
- wenn keine Kanäle gefunden werden, wird keine Playlist mehr erstellt
- 1.90
- hier und da Bugs entfernt, kann mich aber nicht an alle erinnern
- VOD hinzugefügt
- Man kann sich jetzt pro Portal auch M3U Listen für VOD Inhalte erstellen lassen. Ich habe das nur rudimentär mit 2 Portalen getestet. Die VOD M3U ist dann erreichbar unter "
You must be registered for see links"
- Man kann sich jetzt pro Portal auch M3U Listen für VOD Inhalte erstellen lassen. Ich habe das nur rudimentär mit 2 Portalen getestet. Die VOD M3U ist dann erreichbar unter "
- Ablaufdatum
- es gibt wohl Portale die ein hartes Limit haben, was Anfragen zu verschiedenen MACs und deren Ablaufdatum haben. Beim erstellen von einem Portal, wird man jetzt nach einem "MAC check delay" gefragt. Hier muss man ausprobieren, wie tief man damit gehen kann. Bei vielen Portalen ist auch 0 kein Problem.
- um das für vorhandene Portale zu aktiveren, entweder einmal Portal löschen und neu hinzufügen oder die eigene "portals.list" anpassen. Und zwar ganz am Ende, hinter der MAC, folgendes einfügen "|1" (die 1 würde hier jetzt für 1 Sekunde Delay stehen)
- wenn vom Portal keine Infos zum Ablaufdatum kommt, wird die MAC jetzt trotzdem berücksichtigt, solange weiterhin die Kategorie verfügbar ist
- Routing durch ein bestimmtes Netzwerkinterface
- ACHTUNG -> die Funktion funktioniert zwar, aber ob dann wirklich alles sauber durch das bestimmte Interface läuft, garantiere ich nicht
- im gleichen Ordner, wie das Script eine Datei erstellen "vpn_interface.conf". Hier dann einfach sein gewünschtes Netzwerk Interface reinschreiben
- die Funktion ist völlig optional, man kann die Datei auch einfach weglassen oder leer lassen
- 1.91
- XMLTV Funktion hinzugefügt.
- Live TV M3U wird jetzt mit tvg-id="" und tvg-chno="" erstellt, wenn die Daten beim Portal vorhanden sind
- VOD M3U wird jetzt mit vg-logo="" erstellt, wenn die Daten beim Portal vorhanden sind
- XMLTV Funktion hinzugefügt.
- 2.00
- alle scripts noch mal angepasst und aufgeräumt
- simples Webinterface hinzugefügt
- aufrufbar über den eingestellten Proxy Hostname (Beispiel
You must be registered for see links)
- aufrufbar über den eingestellten Proxy Hostname (Beispiel
- 2.01
- kleiner hotfix
- 2.10
- kleine Anpassungen Log Ausgabe
- Für die Auswahl der MACs stehen jetzt drei Verschiedene Verfahren zur Auswahl, diese werden automatisch vom iptv_proxy.sh ausgewählt. Diese sind aufgeteilt in Q > B > R. Um die Systemlast zu mindern, wurde dafür ein kleines Python helper script erstellt.
- Q = Qualifizierte MACs, die sowohl die Schwellenwerte für die Anzahl der Versuche als auch für die Erfolgsquote erfüllen; sie werden nach der Quote absteigend sortiert und zuerst ausgegeben.
- B = Best-Effort-MACs: Sobald keine Q-Einträge mehr vorhanden sind (Schwellenwerte nicht erreicht), versucht der Proxy diese nach Erfolgsquote geordnete B-Liste als Fallback, bevor er auf die reine Zufallsliste zurückgreift.
- R = Zufällige Fallback-MACs, denen entweder Statistiken fehlen oder die die Schwellenwerte nicht erreicht haben; sie werden dennoch ausgegeben, damit der Proxy sie gemischt anhängen kann, wenn keine qualifizierten MACs funktionieren.
- iptv_proxy.sh sammelt die Q-Zeilen und mischt sie pro Anfrage. Wenn die Q-Liste leer ist, aber B-Einträge vorhanden sind, behandelt es diese als geordnete Liste. Unabhängig davon werden R-Zeilen immer gemischt und nach dem priorisierten Satz angehängt, wodurch sichergestellt wird, dass jede Anfrage zuerst die besten MACs ausprobiert, aber dennoch über einen deterministischen Fallback-Pfad verfügt.
- "3. Proxy Settings" -> "4. Proxy Script Setup" ->
- "Min Stats Attempts Threshold", hier wird ein Minimum festgelegt, ab wie vielen Abfragen die Statistik rangezogen wird.
- "Min Success Rate (0-1)", hier wird in Prozent angegeben, wie erfolgreich eine MAC sein soll, um berücksichtigt zu werden. (z.B. 0.8 = 80%)
- 2.20
- Anpassungen an der stats website
- div. Scripte noch mal angepasst und mögliche Fehler Quellen beseitigt
- die Auswahl der MAC Adresse angepasst
- die Änderungen in der letzten Version konnten dazu führen, dass sich Clients gegenseitig aus dem Stream werfen, da dieselbe MAC für jede Anfrage genommen wurde. Hier einige Funktionen eingebaut, die das verhindern sollten
- 2.21
- Berechtigungen werden jetzt vom main.sh script "besser" geprüft und ggf. angepasst
- "Configure Nginx for Proxy" fixed
- hier waren Fehler drin
- Logging verbessert, damit man direkt sieht, wenn es Fehler in der Ausführung gibt
- "Proxy Script Setup" überarbeitet und mehr Einstellmöglichkeiten hinzugefügt
- über "MAC Cooldown seconds" kann man die Zeit einstellen, wie lange MACs nach einem Erfolg gesperrt werden sollen. Mit 0 Sekunden deaktiviert man die Funktion
- "MAC Usage Stats" hat eine neue Funktion "Remove Low Success MACs"
- hiermit kann man MACs aus seiner Liste (pro Portal) entfernen, die nicht gut genug performen
- man kann angeben, mit welcher Erfolgsquote und wie vielen Versuchen eine MAC entfernt werden soll
- 2.22
- Prüfung auf nötige Pakte ausgeweitet, rsync wird jetzt auch geprüft
- System Information zeigt jetzt alle nötigen Pakete und Version an
- iptv_proxy.sh hat ein paar checks dazu bekommen
Anhänge
You must be registered for see attachments list
Zuletzt bearbeitet:
