Debian JDownloader

Aus Wiki
Zur Navigation springen Zur Suche springen

Einleitung

JDownloader ist ein Downloadmanager für Rapidshare und Co. Aber auch FTP- und HTTP-Downloads stellen für JDownloader kein Problem dar. JDownloader basiert auf JAVA und stellt eine Graphische Oberfläche für die Bedienung bereit. Dies ist für die Anwendung auf einem Server eher ungünstig. Anstatt eines kompletten Desktops, reicht ein Windowmanager und VNC-Server aus, um die Graphsche Oberfläche auf einem Remote-PC per VNC zur Verfügung zu stellen. Weiterhin kann eine Weboberfläche als Plugin aktiviert werden.

Voraussetzung: VNC-Viewer auf dem Remote-PC (nicht Server) ist installiert. Dies ist nicht Teil dieser Anleitung.


User anlegen

Der JDownloader soll aus Sicherheitsgründen unter User-Rechten laufen, anstatt root. Zu diesem Zweck wird der User jdownloader angelegt:

adduser jdownloader


Installation

Installation von Java und VNC

Falls kein Desktop auf dem Server installiert ist, ist ein Windowmanager nötig, der für die Ausgabe der JDownloader Bedienoberfläche sorgt. Nur nötig, falls kein Desktop installiert ist:

apt-get install xfwm4

Java:

vi /etc/apt/sources.list

Die folgende Zeile sollte um den Eintrag “non-free” ergänzt werden.

deb http://ftp.at.debian.org/debian/ squeeze main

geändert in:

deb http://ftp.at.debian.org/debian/ squeeze main non-free

apt-get update
apt-get install sun-java6-bin sun-java6-jre

VNC-Server:

apt-get install vnc4server xterm

VNC-Server unter User jdownloader starten:

su jdownloader -c "vncserver :1"

Es wird nach einem Passwort für den Remotezugriff via VNC gefragt. Das gewünschte Passwort zweimal eingeben.

VNC-Server wieder beenden.

su jdownloader -c "vncserver -kill :1"
Bulbgraph.png Hinweis:

Das Password für den VNC-Zugriff kann jederzeit geändert werden:

su jdownloader -c "vncpasswd"


Installation JDownloader

Für JDownloader ist zwar kein Debian Paket verfügbar. Allerdings existiert ein relativ einfaches Donwloadscript:

mkdir /home/jdownloader/jd
cd /home/jdownloader/jd
wget http://212.117.163.148/jd.sh
chmod +x jd.sh

Downloadscript automatisch mit VNC-Server starten:

vi /home/jdownloader/.vnc/xstartup

Ans Ende folgende Zeile anhängen:

/home/jdownloader/jd/jd.sh

VNC-Server starten:

su jdownloader -c "vncserver :1"

Bei Bedarf kann das VNC Fenster an die Monitorauflösung angepasst werden.

su jdownloader -c "vncserver :1 -geometry 1920x1200 -depth 24"


Unter Windows/Linux auf dem Remote-PC den VNC-Viewer starten.

  • Als Server-Adresse: IP_Des_Server:5901 eingeben.
  • Es sollte nun ein X-Window Fenster erscheinen, in dem das Download-Script JDownloader downloadet und einrichtet.
  • Nach dem Download die gewünschte Sprache auswählen: Deutsch und OK anklicken
  • Die Frage zur Firefox-Integration mit Button "Abbrechen" beantworten
  • Anschließend erscheint das Hauptfenster von JDownloader

Konfiguration

  • VNC-Viewer starten, falls dieser nicht mehr laufen sollte, und als Adresse IP_Des_Server:5901 eingeben.
  • Den Reiter Einstellungen anwählen
  • Im linken Baum Download & Verbindungen auswählen
  • Evtl. das Downloadverzeichnis anpassen
  • Plugins&Addons/Erweiterungen anklicken
  • Den Haken vor Webinterface aktivieren
  • Unter Plugins&Addons/Erweiterungen/Webinterface evtl. den Port (Standard: 8765), auf dem das Webinterface lauscht anpassen und Username und Passwort vergeben.
  • Evtl. im Bereich Module/Reconnect das Routermodell konfigurieren, damit JDownloader automatisch die Internetverbindung trennen und wiederherstellen kann, um eine neue IP-Adresse zu erhalten


Funktionstest

Webbrowser öffnen und als Adresse: http://IP_des_Servers:Port eingeben. Username und Passwort eingeben. Das JDownloader Webinterface sollte angezeigt werden.


Startscript

Damit der VNC-Server inclusive JDownloader beim Start des Servers automatisch mitgestartet wird, muß noch ein Startscript angelegt werden. Dieses Script stammt von: http://service.jdownloader.net/old/wiki.jdownloader.org/indexd69d.html?title=Running_On_A_Headless_Linux_Server

vi /etc/init.d/jdownloader

Folgende Zeilen einfügen:

#! /bin/bash
### BEGIN INIT INFO
# Provides:          jdownloader
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      $network $syslog
# Should-Stop:       $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop jdownloader
# Description:       Start/stop JDownloader a Downloadmanager
### END INIT INFO

#The user that will run JDownloader
JD_USER=jdownloader

#Name of the session
NAME=jdownloader-VNC

#executable files in the following paths that are perhaps needed by the script
PATH=/bin:/usr/bin:/sbin:/usr/sbin

#Description
DESC="JDownload VNC Session"

#VNC Display ID
DISPID="1"

case "$1" in
start)
   if [ `su $JD_USER -c " ls /home/$JD_USER/.vnc/|grep :'$DISPID'.pid"` ]
      then
      if [ -n "`ps aux|grep jd.sh|grep -v grep`" ]
         then
         echo "Jdownloader is already running!"
      else
         echo "Corrupt $DESC found. Restarting $DESC: $NAME on display $DISPID"
         su $JD_USER -c "vncserver -kill :$DISPID"
         su $JD_USER -c "vncserver -name $NAME :$DISPID"
      fi
   else
      echo "Starting $DESC: $NAME on display $DISPID"
      su $JD_USER -c "vncserver -name $NAME :$DISPID"
   fi
   ;;
stop)
   if [ `su $JD_USER -c " ls /home/$JD_USER/.vnc/|grep :'$DISPID'.pid"` ]
      then
      echo -n "Stopping $DESC: $NAME on display $DISPID"
      su $JD_USER -c "vncserver -kill :$DISPID"
      echo " ... done."
   else
      echo "Coulnd't find a running $DESC"
   fi
   ;;
restart)
   if [ `su $JD_USER -c " ls /home/$JD_USER/.vnc/|grep :'$DISPID'.pid"` ]
       then
      echo -n "Stopping $DESC: $NAME on display $DISPID"
      su $JD_USER -c "vncserver -kill :$DISPID"
      echo " ... done."
   else
      echo "Coulnd't find a running $DESC on display $DISPID"
   fi
   echo "Starting $DESC: $NAME on display $DISPID"
      su $JD_USER -c "vncserver -name $NAME :$DISPID"
   echo " ... done."
   ;;
status)
   if [ `su $JD_USER -c " ls /home/$JD_USER/.vnc/|grep :'$DISPID'.pid"`  ]
      then
      echo "JDownloader is RUNNING on display $DISPID"
   else
      echo "JDownloader is DOWN on display $DISPID"
   fi
   ;;
*)
   echo "Usage: $0 {start|stop|status|restart}"
   exit 1
   ;;
esac
exit 0

Script ausführbar machen:

chmod +x /etc/init.d/jdownloader

Script beim Systemstart ausführen:

update-rc.d jdownloader defaults


Optional: Jdownloader als Virtualhost in Apache

Mittels Virtualhost/Reverse Proxy ist es möglich, das JDownloader Webinterface aus dem Internet per https-Verschlüsselung zu betreiben. Die Adresse könnte dann z.B. lauten: https://jdownloader.domain.org.

Voraussetzung: → Apache2

Analog der Anleitung wird ein Apache Virtualhost als Reverse Proxy für JDownloader eingerichtet:

vi jdownloader_https.conf
  • Apache2.2:

Folgende Zeilen einfügen(Servername jdownloader.domain.org und IP_DES_SERVER anpassen):

<VirtualHost *:443>
ServerName jdownloader.domain.org

ProxyRequests Off
<Proxy *>
   Order allow,deny
   Allow from all
</Proxy>

SSLCertificateFile /etc/ssl/CA/certs/wildcard.pem
SSLEngine on
SSLProxyEngine On
ProxyPass / http://IP_DES_SERVER:8765/

<Location />
   ProxyPassReverse /
</Location>
</VirtualHost>

Apache2 neu starten:

/etc/init.d/apache2 restart
  • Apache2.4:

Folgende Zeilen einfügen(Servername jdownloader.domain.org und IP_DES_SERVER anpassen):

<VirtualHost *:443>
ServerName jdownloader.domain.org

ProxyRequests Off
<Proxy *>
   Require all granted
</Proxy>

SSLCertificateFile /etc/ssl/CA/certs/wildcard.pem
SSLEngine on
SSLProxyEngine On
ProxyPass / http://IP_DES_SERVER:8765/

<Location />
   ProxyPassReverse /
</Location>
</VirtualHost>

Apache2 neu starten:

/etc/init.d/apache2 restart


Bulbgraph.png Hinweis:
Es sollte unbendingt ein anderer Username und vor allem ein sicheres Passwort verwendet werden, wenn JDownloader aus dem Internet erreichbar ist.


Optional: Mozilla Firefox Integration

Es besteht die Möglichkeit, dass Downloads direkt von Firefox an JDownloader übergeben werden. Dies geschieht über das JDownloader Addon "Externes Interface" und das Firefox Addon "Flashgot".


Umstellen auf Nightly Build

Die aktuelle Final-Version von JDownloader unterstütz leider (noch) nicht die Übergabe von Downloads von einem entfernten PC (Remote). Die Schnittstelle lauscht nur auf dem lokalen PC. Im Falle unseres Servers bringt dies natürlich nichts.

Die Nightly Build Version bietet die Möglichkeit, dass das "externe Interface" auch Remote- Anfragen bearbeitet.


Bulbgraph.png Hinweis:
Die Nightly Build Version stellt immer den aktuellen Entwicklungsstand dar. Neben erwünschten Neuerungen (z.B. verbessertes Webinterface, Externes Interface) kann diese auch Stabilitätsprobleme aufweisen. Im schlimmsten Fall kann es sogar so weit gehen, dass JDownloader überhaupt nicht mehr startet.


  • VNC-Viewer starten, falls dieser nicht mehr laufen sollte, und als Adresse IP_Des_Server:5901 eingeben.
  • JDownloader beenden (Menü Datei/Beenden)
  • Im Terminalfenster (in der VNC-Sitzung) eingeben:
java -jar /home/jdownloader/.jd/jdupdate.jar -branch NIGHTLY

Dadurch wird JDownloader komplett auf das letzte Nightly Build umgestellt und am Ende neu gestartet.


Workaround für Webinterface

Falls das Webinterface nach dem Umstellen auf Nightly-Version bzw. nach einem Update nicht mehr funktionieren sollte liegt dies höchstwahrscheinlich an einem geänderten Filenamen des Webinterface Plugins. Nach dem Update sind dann zwei Files mit dem Webinterface vorhanden - das Originale (JDWebinterface.jar) und das Neue (JDwebinterface.jar). Diese Diskrepanz führt dazu, dass gar kein Webinterface zur Verfügung steht. Die Lösung ist relativ simpel: Löschen des Originalen Plugins. Dann wird das neue verwendet und funktioniert tadellos.

Löschen originales Webinterface:

rm /home/jdownloader/.jd/plugins/JDWebinterface.jar

JDownloader neu starten:

/etc/init.d/jdownloader restart


Externes Interface aktivieren

  • VNC-Viewer starten, falls dieser nicht mehr laufen sollte, und als Adresse IP_Des_Server:5901 eingeben.
  • In Jdownloader den Punkt Einstellungen aktivieren
  • Plugins&Addons/Erweiterungen anklicken
  • Externes Interface aktiveren (Haken setzen), falls noch nicht der Fall
  • Im linken Navigationsbaum Externes Interface anklicken
  • Den Haken bei Listen only on localhost entfernen, damit JDownloader Remote Anfragen entgegennimmt


Installation und Konfiguration lokaler PC

Damit Flashgot die Aktivierung des remote JDownloader erlaubt, ist ein kleiner "Trick" erforderlich. Eine Möglichkeit bestünde darin, den JDownloader auf dem lokalen PC zu installieren, es geht aber auch einfacher. Es reicht, auf dem lokalen PC eine Dummy "JDownloader.jar" Datei anzulegen.

Dummy-Datei unter Windows:

leere Datei mit Namen z.B. C:\JDownloader.jar erstellen

Dummy-Datei unter Linux:

touch /home/user/JDownloader.jar
  • Firefox starten und Addon Flashgot installieren, falls dies noch nicht installiert ist.
  • Evtl. Firefox neu starten, damit das Addon aktiviert wird
  • In Firefox die Adresse about:config eingeben und die Sicherheitsabfrage bestätigen.
    • Als Filter JDownloader eingeben
    • Den Eintrag flashgot.dmsopts.JDownloader.url doppelklicken
    • Die Url abändern in: http://IP_DES_Server:9666/flashgot und mit OK bestätigen
    • Den Eintrag flashgot.dmsopts.JDownloader.path doppelklicken
    • Pfad zur Dummy "JDownloader.jar" (C:\JDownloader.jar bzw. /home/user/JDownloader.jar) und mit OK bestätigen


  • Flashgot Einstellungen (Menü Extras/Flashgot/Weitere Einstellungen...) öffnen
    • Im Reiter Allgemein den Download-Manager JDownloader auswählen.
    • Falls Jdownloader nicht anwählbar (grau) sein sollte, dann Reiter Erweitert anwählen und Button Jetzt suchen anklicken. Anschließend sollte JDownloader im Reiter Allgemein auswählbar sein.
    • Im Reiter Allgemein den Haken vor Bestätigungsabfragen überspringen bei setzen.
    • Die Änderungen mit Button OK übernehmen.
  • Nun ist JDownloader und Firefox/Flashgot bereit, um Downloads direkt aus Firefox an JDownloader auf dem entfernten Server zu übergeben.