Wallabag auf dem Uberspace

Update: 18.02.2015

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.

Zur Updateanleitung bitte runterscrollen!

Erste Installation:

# ins Homeverzeichnis wechseln
cd /home/$USER

# ein Verzeichnis für den Code erstellen
mkdir live.wallabag.code
cd live.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 Version. Dazu suchen wir in dieser Liste die neuste Versionsnummer und bauen sie in den folgenden Befehl ein. (Derzeit 1.9)

# neuste version auschecken
git checkout 1.9

# composer (php dependency management) installieren
curl -s http://getcomposer.org/installer | php

# composer die benötigten componenten installieren lassen
# (ins /vendor verzeichnis)
php composer.phar install

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

# config bearbeiten:
# In die beiden '' nach 'SALT' gehören viele, zufällige Zeichen
#    (ohne das '-Zeichen innerhalb der äußeren '' zu verwenden ;)
#    ( das würde nur eine weiße Seite erzeugen)
nano inc/poche/config.inc.php
# In nano speichert man mit Strg+O , Enter und schließt mit Strg+X

# db-datei kopieren (bei Verwendung von sqlite)
cp install/poche.sqlite db/

# db Datei für php schreibbar machen
chmod g+w db/poche.sqlite

# installverzeichnis löschen (meckert sonst)
rm -r install

Jetzt müssen die Theme-Dateien und die index.php von außen erreichbar sein.

Ich benutze für wallabag eine Subdomain, aber ein Unterverzeichnis in ~/html geht natürlich auch.

# Für die Subdomain legt man ein neues Verzeichnis mit dem Domainnamen an
mkdir /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

Jetzt kommt eine index.php-Datei ins Hautverzeichnis, die die orginal index.php aufruft. Ebenfalls braucht man eine Kopie des themes-Ordners (symlinks gehen bei der uberspace apache config nicht).

Da man das Theme-Verzeichnis nach jedem update kopieren sollte, empfehle ich den folgenden Code im Homeverzeichnis als ~/live.wallabag.updatewebdir.sh abzulegen. Das hilft, sich im Updatefall an das Ordnerkopieren zu erinnern.

#!/bin/bash

# nach Update bitte auch ausführen, damit
# neue/geänderte Themedateien auch verfügbar sind 

rm -r /home/$USER/live.wallabag/themes
cp -r /home/$USER/live.wallabag.code/themes /home/$USER/live.wallabag/themes

echo "<?php 
chdir('/home/$USER/live.wallabag.code');
require('/home/$USER/live.wallabag.code/index.php'); 
 ?>" > /home/$USER/live.wallabag/index.php

jetzt ein

chmod 770 ~/live.wallabag.updatewebdir.sh

und ein

~/live.wallabag.updatewebdir.sh

zum Ausführen des Scripts.

Hat man eine ältere Version dieser Anleitung befolgt, erhält man beim Aufruf der Internetseite die Meldung
The directory "cache" must be writeable by your web server user.
Diese Meldung ist etwas verwirrend und resultiert daraus, dass Wallabag das cache-Verzeichnis nicht findet.
Zur Lösung des Problems: Entweder symlinkt man die Verzeichnisse aus ~/live.wallabag.code nach ~/live.wallabag ODER man nimmt die neue Version der Ersatz-index.php-Datei bzw des live.wallabag.updatewebdir.sh-Scripts. Die neue index.php-Datei führt vor dem require() der Orginal index.php-Datei ein chdir() (=change working directory) aus, damit Wallabag das cache-Verzeichnis später an der richtigen Stelle sucht.

Voila, eine sichere Installation.

Update

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

cd ~/live.wallabag.code
git pull
git checkout 1.9
rm -r install
~/live.wallabag.updatewebdir.sh

13 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.)

Schreib einen Kommentar

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