Wallabag auf dem Uberspace

Update: 5.08.2016 (Wallabag Version 2.0.5)

Wallabag (ehemals Poche) ist ein Open-Source-Ersatz für Pocket.

Wallabag wird auf dem eigenen Webserver installiert und kann dann von Überall verwendet werden. Hier die Anleitung zur Installation auf dem eigenen uberspace.

Vor dem Updaten von Version 1.0 auf 2.x die Datenbank exportieren!

Erste Installation:

* Php version testen (5.6.x ist gut): php -v. Ansonsten wie weiter unten beschrieben umstellen.
* Composer installieren. (Siehe weiter unten)

 # ins Webverzeichnis wechseln
cd /var/www/virtual/$USER

# ein Verzeichnis für den Code erstellen
mkdir wallabag.code
cd wallabag.code

# wallabag quellcode downloaden (nur einmal)
git clone https://github.com/wallabag/wallabag.git .

Mit Git wird der Quellcode verwaltet. Hierdurch hat man nicht nur Zugriff auf die aktuelle (instabile) Entwicklerversion sondern auch auf alle Softwareversionen davor. Wir wollen die neuste stabile Version. Dazu suchen wir in dieser Liste die neuste Versionsnummer und bauen sie in den folgenden Befehl ein. (Derzeit 2.0.5)

# neuste version auschecken
git checkout 2.0.5

# Der folgende Befehl fragt nach einiger Zeit:"Some parameters are missing. Please provide them."
# -> dann einfach immer wieder Enter drücken bis "secret(...):" erscheint.
# -> Dann wild auf der Tastatur herumtippen und mit Enter bestätigen. Noch ein paar mal Enter drücken.
# -> Ein paar grüne Haken und Balken sollten folgen.
# -> Alle gemachten Einstellungen lassen sich später in der Datei app/config/parameters.yml ändern.
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist

# Dieser Befehl fragt 
# -> nach dem Anlegen einer neuen Datenbank (y),
# -> ob ein neuer Adminuser angelegt werden soll (y),
# -> User, Passwort und Email des neuen Wallabag-Admins.
# -> Beim vertippen etc, den Befehl nochmal ausführen und dabei die Datenbank löschen.
php bin/console wallabag:install --env=prod

Ich benutze für wallabag eine Subdomain (wallabag.invisibletower.de), aber ein Unterverzeichnis in auf der Hauptdomain (z.B. /var/www/virtual/$USER/html/wallabag) geht natürlich auch.

# Für die Subdomain einfach das web-verzeichnis linken
ln -s /var/www/virtual/$USER/wallabag.code/web /var/www/virtual/$USER/wallabag.invisibletower.de

# und kreiert sich für den einfacheren
# Zugriff einen Link ins Homeverzeichnis
ln -s /var/www/virtual/$USER/wallabag.invisibletower.de /home/$USER/live.wallabag
ln -s /var/www/virtual/$USER/wallabag.code              /home/$USER/live.wallabag.code

Anmerkung: Im Gegensatz zur alten Anleitung liegt hier der Code wieder im Webverzeichnis und nicht im Homeverzeichnis. Er liegt allerdings im Verzeichnis wallabag.code, für das Apache keinen direkten Zugriff von außen bietet. (Es sei denn du besitzt die Domain wallabag.code).
Damit sollte die wallabag.sql-Datei mit den sensiblen Daten dennoch sicher sein.


Update

Wird eine neue Wallabag-Version veröffentlicht, kann man mittels git leicht updaten:

cd ~/live.wallabag.code
git pull
git pull --tags
git checkout 2.0.??????
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console cache:clear --env=prod


Auf neuere PHP-Version umstellen

Wallabag benötigt php in Version 5.5.x oder 5.6.x. Eventuell musst du deinen Uberspace account umstellen. (Kann u.u. Probleme bereiten, lässt sich dann aber einfach rückgängig machen).

Um zu testen, welche Version du verwendest: php -v

Um die verfügbaren Versionen zu sehen: ls -d /package/host/localhost/php*
Wie man sieht, verweisen die Versionen mit nur zwei Ziffern immer auf die aktuellste Unterversion.
Die beste Wahl ist wohl 5.6.

Version ändern via nano ~/etc/phpversion. Die Datei ist sehr einfach aufgebaut, einfach die zweite Zeile in PHPVERSION=5.6 ändern. Speichern geht mit Strg+O, Schließen mit Strg+X. Danach noch ein killall php-cgi ausführen, um alle laufenden php-Interpreter zu killen (die starten sich dann automatisch mit der neuen Versionseinstellung neu).
Jetzt die SSH Verbindung trennen und neu aufbauen. Test mit php -v. Evtl wieder ins richtige Verzeichnis wechseln cd ~/live.wallabag.code.


Composer im uberspace installieren

Am besten ins ~/bin Verzeichnis installieren, das ist praktisch, weil man den composer dann ohne Pfadangabe nutzen kann. (~/bin ist beim uberspace standardmäßig schon im $PATH).

curl -sS https://getcomposer.org/installer | php -- --filename=composer --install-dir=$HOME/bin

Falls schon installiert, kann man composer upgraden via

composer selfupdate


Update von Version 1 (Wenn installiert wie hier früher beschrieben wurde)

* Zunächst Daten via Webinterface als JSON exportiern.
* Alle Überbleibsel der letzten Installation einfach löschen 😀

rm -rf ~/live.wallabag.code ~/live.wallabag ~/live.wallabag.updatewebdir.sh 
rm -rf /var/www/virtual/$USER/wallabag.invisibletower.de

Und neu installieren. Danach Daten importieren.

20 comments

  1. […] sich der reparieren lässt, steht ebenda, eine bessere Installationsanleitung (für Uberspace) hat The Invisible Tower […]

  2. Sebastian sagt:

    Danke für die Anleitung! Ein Problem tritt bei mir dabei jedoch auf: Nachdem ich alle Schritte durchgeführt habe, bekomme ich beim Aufruf der Site ein „The directory „cache“ must be writeable by your web server user“. Was stimmt da nicht? Das Verzeichnis ~/live.wallabag.code/cache hat wie alle anderen Ordner die Rechte 755, das sollte doch in Ordnung sein, oder? Wäre für einen kleinen Tipp sehr dankbar!

    • Simon sagt:

      Ich habe selbiges Problem mit meinem uberspace und wallabag 1.8.1…
      konntest du das Problem lösen?

      • Der Bewohner sagt:

        Hey Simon.

        Ich habe die Anleitung aktualisiert und auch Nikos Anmerkungen (danke!) eingebaut,

        Es gibt jetzt einen Absatz über genau dieses Problem.

        Viele Grüße vom Bewohner des Turms

  3. Niko sagt:

    Hallo,

    danke für das Tutorial. Was mir noch aufgefallen ist, ist dass dem curl-Aufruf das „c“ fehlt 😉

    Außerdem wollte die aktuelle Version, 1.5.2, jeweils einen Ordner „cache“ und „db“ unter „/home/$USER/live.wallabag/“. Diese habe ich gegen das Code-Verzeichnis gesymlinkt.

    Und zu guter letzt ist da wo in deinem Beitrag der Aufruf des Update-Scripts stehen sollte nochmal das chmod aus der vorigen Zeile 😉

    Viele Grüße

    Niko

  4. […] an Invisibletower und für die hilfreiche […]

  5. MM sagt:

    Danke auch von mir für dein Tutorial 🙂

    Ich habe das heute mal probiert nachzuvollziehen, komme aber nicht weiter, da ich ein „An error occured: „db“ directory must be writeable for your web server user!“ Fehler bekommen.

    Um ehrlich zu sein komme ich arg durcheinander mit den ganzen Verzeichnissen die du nutzt:
    – ~/live.wallabag.code <- hier lebt der github code
    – /live.wallabag <- hier werden die veröffentlichten Dateien gespiegelt?
    – /var/www/virtual/$USER/wallabag.invisibletower.de <- ein Verzeichnis und Symlink?

    Ich weiß nicht so recht wo mein Fehler ist, ich habs beim zweiten mal vereinfacht indem ich direkt unter ~/html/wallabag eingerichtet habe. Nur wie kann ich denn da dein chdir emulieren? *grübel*

    • Der Bewohner sagt:
      • ~/live.wallabag.code < - hier lebt der github code
      • /live.wallabag < - hier werden die veröffentlichten Dateien gespiegelt? ## <- eigentlich nur die Dateien, auf die von außen zugegriffen werden muss, also der theme/ Ordner und die index.php, wobei die index.php quasi relayed und nicht kopiert wird. Das chdir() wechselt das Arbeitsverzeichnis, so dass die eigentliche index.php denkt, sie wäre als erstes aufgerufen worden und damit die vom Arbeitsverzeichnis abgeleiteten Dateipfade (Datenbank) stimmen. Das db-Verzeichnis zu symlinken ist keine gute Idee, denn dann ist die Datenbank ohne Passwortschutz von außen zu erreichen. Genau das zu Verhindern ist einer der zwei Hauptgründe für diese Konstruktion.
      • /var/www/virtual/$USER/wallabag.meinedomain.de < - ein Verzeichnis und Symlink? Nur ein Verzeichnis. Der Symlink ist /home/$USER/live.wallabag und zeigt auf /var/www/virtual/$USER/wallabag.meinedomain.de (nur der Faulheit wegen, siehe mein Kommentar zu morphs Antwort)
    • Der Bewohner sagt:

      Ich habe das heute mal probiert nachzuvollziehen, komme aber nicht weiter, da ich ein „An error occured: „db“ directory must be writeable for your web server user!“ Fehler bekommen.

      Das lässt sich ganz einfach lösen mit einem
      chmod g+w /home/$USER/live.wallabag.code/db/poche.sqlite

  6. morph sagt:

    Hallo,

    danke für das Tutorial!

    Bei mir funktioniert’s leider nicht – ich verstehe auch nicht ganz wie… ich erstelle einen Symlink von /var/www/virtual/$USER/#SUBDOMAIN# nach /home/$USER/live.wallabag, jedoch existiert letzterer Ordner gar nicht, zumindest wird im Tutorial nicht erwähnt dass ich diesen anlegen soll. Fehlt da ein Schritt?

    Danke und Grüße

    • Der Bewohner sagt:

      /home/$USER/live.wallabag existiert erst nachdem der Symlink angelegt wurde. In diesem Fall dann ein Symlink auf einen Ordner und nicht auf eine Datei, wie das häufiger der Fall ist. (-> also ne, da fehlt kein Schritt 🙂

      Außerdem dient der Symlink ins Homeverzeichnis nur der Faulheit, damit man einfacher das var-www-blablub-Verzeichnis bearbeiten kann. Es würde auch ohne gehen (wenn man die Befehle entsprechend anpasst).

  7. Marek sagt:

    Hi, ich habe die Schritte grade mit der aktuellen Version 1.9.1 umgesetzt, erhalte beim Aufruf meiner subdomain aber nur einen Fehler [105] Missing version directory – woran könnte das denn liegen?

  8. SF sagt:

    Vielen Dank für die super Anleitung. Leider bin ich noch nicht ganz ans Ziel gelangt. Bei mir wird die Installationsseite nicht angezeigt, sondern direkt die Login-Seite. Das ist natürlich etwas unpraktisch, wenn ich vorher noch keinen User anlegen konnte.
    Ich habe die aktuelle Stable Version 1.9.1-b installiert. Interessant ist, dass, wenn ich den install-Ordner nicht lösche, mir statt der Login-Seite die Installations-Seite angezeigt wird. Dort steht, dass das „Update“ erfolgreich gewesen ist und ich die nachfolgenden Felder ausfüllen soll. Nur werden keine Felder zum Ausfüllen angezeigt. Wenn ich auf die „Update erfolgreich“-Info klicke, wird der Install-Ordner automatisch gelöscht und ich gelange zur Login-Seite, natürlich ohne User.

    Irgendeine Idee wo der Fehler liegen könnte?
    (Noch eine Info: Composer hat alles installiert. Im Vendor Verzeichnis sind Twig etc. vorhanden.)

  9. knobhead sagt:

    Moin,

    danke für deine Anleitung. Kleines Update: Habe es gerade mit Version 1.9.1 versucht. Hier hat sich der name der Default-Config-Datei geändert

    Der Abschnitt

    > # config kopieren
    > mv inc/poche/config.inc.php.new inc/poche/config.inc.php

    müsste jetzt

    > # config kopieren
    > mv inc/poche/config.inc.default.php inc/poche/config.inc.php

    heißen.

    Viele Grüße

  10. azrael sagt:

    Hast du schon versucht auf Version 2.x zu migrieren? Upstream stellt leider nur eine VirtualHost Konfiguration bereit, die nutzt ja nicht viel (insbesondere, wenn wallabag in einem subdirectory statt einer subdomain laufen soll).
    Ich bin gescheitert, ich glaube weil sie neuerdings mehr als nur die index.php im „root“ benutzen (die ja das einzige ist, was dein require umbiegt).

    • Der Bewohner sagt:

      Ich habs auch nicht mehr ‚elegant‘ hingekriegt, aber so wie es jetzt beschrieben ist, sollte es auch mit Version 2 funktionieren. 😀

  11. Flonsini sagt:

    Mit Version 2 scheint vieles umgebaut worden sein, kannst du das Tutorial anpassen?

  12. Bernd sagt:

    Ich habe gemäß deiner Anleitung versucht, Wallabag (2.0.5/2.0.7) auf meinem Uberspace zu installieren. Wenn ich dann allerdings die Subdomain aufrufen will, erhalten ich nur eine weiße Seite ohne Inhalt. Hab leider nicht herausgefunden, was/warum nichts geladen wird und es erst einmal wieder sein lassen.

    Hattest du deine Anleitung als Neuinstallation mal getestet oder war deine Installation vielleicht ein Update von V1?

    • Der Bewohner sagt:

      Da man nicht direkt von V1.0 updaten kann, sondern den Umweg über das Exportieren wählen muss, war das quasi eine Neuinstallation.

      Schalte erst mal die error_logs an wie hier beschrieben: https://wiki.uberspace.de/webserver:logs

      Dann

      tail -f ~/logs/error_log

      und ruf dann die Seite auf. In der Konsole sollten live die Meldungen auftauchen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.