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.

33 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

      • effpeh sagt:

        Moin,
        ich bekomme leider auch nur eine leere Seite nach der Installation

        Ich habe die Installation in ein Unterverzeichnis verlinkt: ln -s /var/www/virtual/$USER/wallabag.code/web /var/www/virtual/$USER/html/wallabag

        Mein error log liefert folgendes (USERNAME ist mein User Name):

        [Thu Sep 29 15:42:32 2016] [warn] [client 85.212.42.87] mod_fcgid: stderr: PHP Warning: simplexml_load_file(): I/O warning : failed to load external entity "/var/www/virtual/USERNAME/wallabag.code/vendor/friendsofsymfony/user-bundle/Resources/config/doctrine-mapping/User.orm.xml" in /var/www/virtual/USERNAME/wallabag.code/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php on line 814
        [Thu Sep 29 15:42:32 2016] [warn] [client 85.212.42.87] mod_fcgid: stderr: PHP Warning: simplexml_load_file(): I/O warning : failed to load external entity "/var/www/virtual/USERNAME/wallabag.code/vendor/friendsofsymfony/user-bundle/Resources/config/doctrine-mapping/User.orm.xml" in /var/www/virtual/USERNAME/wallabag.code/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php on line 814
        [Thu Sep 29 15:42:32 2016] [warn] [client 85.212.42.87] mod_fcgid: stderr: PHP Fatal error: Uncaught exception ‚Doctrine\\Common\\Persistence\\Mapping\\MappingException‘ with message ‚Invalid mapping file ‚FOS.UserBundle.Model.User.orm.xml‘ for class ‚FOS\\UserBundle\\Model\\User‘.‘ in /var/www/virtual/USERNAME/wallabag.code/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php:86
        [Thu Sep 29 15:42:32 2016] [warn] [client 85.212.42.87] mod_fcgid: stderr: Stack trace:
        [Thu Sep 29 15:42:32 2016] [warn] [client 85.212.42.87] mod_fcgid: stderr: #0 /var/www/virtual/USERNAME/wallabag.code/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/FileDriver.php(117): Doctrine\\Common\\Persistence\\Mapping\\MappingException::invalidMappingFile(‚FOS\\\\UserBundle\\\\…‘, ‚FOS.UserBundle….‘)
        [Thu Sep 29 15:42:32 2016] [warn] [client 85.212.42.87] mod_fcgid: stderr: #1 /var/www/virtual/USERNAME/wallabag.code/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php(58): Doctrine\\Common\\Persistence\\Mapping\\Driver\\FileDriver->getElement(‚FOS\\\\UserBundle\\\\…‘)
        [Thu Sep 29 15:42:32 2016] [warn] [client 85.212.42.87] mod_fcgid: stderr: #2 /var/www/virtual/USERNAME/wallabag.code/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriverChain.php(102): Doctrine\\ORM\\Mapping\\Driver\\XmlDriver->loadMetadataForClass(‚FOS\\\\UserBundle\\\\…‘, Object(Doctrine\\ORM\\M in /var/www/virtual/USERNAME/wallabag.code/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php on line 86

        Ich bin einfach noch nicht so im PHP Metier angekommen um das zu verstehen, oder blind 😉 Falls jemand eine Idee hat, wäre ich dankbar.

      • Max sagt:

        Hallo,
        ich erhalte leider auch nur eine weiße Seite. Anbei der Log: http://yourpart.eu/p/r.3144ba090ff029895f6d6257e7e4894a
        Ich sag schon mal danke!

    • tristank sagt:

      Ich scheitere leider auch. Wenn ich meine Subdomain aufrufe, erhalte ich folgende Fehlermeldung „You don’t have permission to access / on this server.“

      In der error_log steht:

      [Mon Oct 24 18:24:38 2016] [error] [client 37.5.83.213] Directory index forbidden by Options directive: /var/www/virtual/USERNAME/html/

      • tristank sagt:

        Sieht so aus als wäre der Unterordner web im wallabag root jetzt für das web interface zuständig. Wenn ich den Ordner aufrufe, kann mich einloggen. Leider gelingt es mir nicht in den Ordner zu symlinken. Ich bekomme dann wieder die gleiche Fehlermeldung wie zuvor.

        $ ln -s /home/$USERNAME/html/wallabag_v2/web/ wallabag.tristank.de

        [Mon Oct 24 20:03:56 2016] [error] [client 37.5.83.213] Directory index forbidden by Options directive: /var/www/virtual/klocke/html/

    • Max sagt:

      Bei meiner v2.08 und 2.1.1 musste jedesmal die xmldriver.php geändert werden damit keine leere Seite erschien, siehe workaround:

      http://support.wallabag.org/discussions/problems/478-v2-blank-page

  13. Ralph sagt:

    … danke für diese Anleitung. Hat alles funktioniert.
    Nur: ohne das Anlegen von Subdomains, etc. – wie rufe ich die Wallabag-Webseite auf?

    uberspacebenutzername.uberspaceserver.uberspace.de/wallabag?

    Man sieht ich habe wenig Ahnung…

  14. Daniel sagt:

    Hallo!

    Ich habe wallabag nach deiner Anleitung auf uberspace installiert. Nun scheitere ich aber am Aufruf der Seite: You don´t have the permission to access / on this server

    Du hast ja in der Anleitung geschrieben, dass es Probleme geben könnte. Aber wie bekomme ich nun Zugriff auf die Seite? Welche Rechte muss ich anpassen?

    Gruß
    Daniel

  15. oelauge sagt:

    Ich versuche die Version 2.0.8 zu installieren. Allerdings möchte ich später Wallabag nicht in einer Sub-Domäne laufen lassen, sondern in einem Verzeichnis unter $html.

    1. Der erste Schritt mit: „SYMFONY_ENV=prod composer install –no-dev -o –prefer-dist“ funktioniert. Es werden aber keine Daten abgefragt, sondern nit drei Zeilen beendet:

    Loading composer repositories with package information
    Updating dependencies
    Terminated

    2. Der nächste Schritt mit: „php bin/console wallabag:install –env=prod“ endet mit:
    PHP Warning: require(/home/…./wallabag/app/../vendor/autoload.php): failed to open stream: No such file or directory in /home/…./wallabag/app/autoload.php on line 9
    PHP Fatal error: require(): Failed opening required ‚/home/…./wallabag/app/../vendor/autoload.php‘ (include_path=‘.:/package/host/localhost/php-5.6.21/lib/php‘) in /home/…./wallabag/app/autoload.php on line 9

    Google brachte nicht ganz eine Lösung, daher habe ich die Hoffnung, dass ich vielleicht nicht der Einzige bin.

    Meine Fragen beziehen sich jetzt auf folgende Punkte:

    a) Die Datei autoload.php existiert ja im app-Verzeichnis. In der besagten Zeile 9 wird aber auf eine gleiche Datei bezogen, die nicht existiert. Erst Recht nicht im vendor-Verzeichnis:

    $loader = require __DIR__.’/../vendor/autoload.php‘;

    Was läuft hier verkehrt?

    b) Mal angenommen, alles funktioniert, was müsste jetzt alles übernommen und in ein Unterverzeichnis kopiert werden, damit alles funktioniert?

    Besten Dank im Voraus

  16. tschoepler sagt:

    Achtung! Bei einem Upgrade von 2.0.x > 2.1.x muss die Datenbank migriert werden. Als vorletzten Befehl diese Zeile ausführen:

    php bin/console doctrine:migrations:migrate –env=prod

    Aus der offiziellen Dokumentation. Hat bei mir prima funktioniert: http://doc.wallabag.org/en/master/user/upgrade-2.0.x-2.1.1.html

  17. Hermann sagt:

    Hi ,
    vielen Dank für die Anleitung. Hat geklappt mit 2.1.5.
    Ich hab dennoch 4 Kommentare die mich etwas Zeit gekostet haben.

    1. bevor das Kommando „git checkout 2.0.5“ ausgeführt werden kann muss man vorher in das Wallabag Verzeichnis gewechselt haben, sonst funktioniert es nicht. Zumindest bei mir hat es das nicht. Wäre gut wenn man das erwähnen würde.

    2. Für folgenden Befehl muss VORHER der Composer installiert werden „SYMFONY_ENV=prod composer install –no-dev -o –prefer-dist“

    Ich hab eine Weile rumgerätzelt warum das nicht bei mir funktioniert und bin später drauf gekommen. Gut wäre es dies weiter oben in der Anleitung zu erwähnen.

    3. Bei mir wird automatisch noch ein Unterverzeichnis in wallabag.code/ erstellt. Nämlich wallabag.code/wallabag
    Für die folgende Zeile musste ich dann noch das Unterverzeichnis anpassen

    # 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

    4. Man sollte dran denken HTTPS zu nutzen. HTTP funktioniert auch, aber ist halt unverschlüsselt und natürlich nicht zu empfehlen…. Vielleicht auch eine Zeile der Erwähnung wert

    Wäre schön wenn die 4 Punkte oben in der Anleitung überprüft und evtl. geändert werden könnten (falls sie für Zutreffend befunden werden….)

  18. Mario sagt:

    Nachdem ich wallabag nach der Anleitung installiert hatte, hatte ich es in einem Unterverzeichnis, das ich nicht haben wollte. Also habe ich es nochmals nach der Anleitung installiert und mich auch an die Benennung der Verzeichnisse gehalten. Bei der Ersten Seite bekam ich noch eine login seite. Jeder weitere Click führte zu einem 500er html fehler. Nach der zweiten Installation lädt nicht mal mehr die login seite, ich renne direkt in einen html 500 fehler.
    error_log zeigt einige php warnungen, die alle in ../wallbag/vendor/doctrine zeigen
    Ich hab leider keine Ahnung was ich damit anfangen soll.
    Hat jemand sachdienliche Hinweise?

  19. bartleby sagt:

    Hey Bewohner….

    Ich hab da auch ein Problem und du kannst mir ja evtl. helfen.

    Nach der Installation bekomme ich eine 403 Fehlermeldung uns das mir die Rechte fehlen. Kannst du mir was dazu sagen?

Schreibe einen Kommentar

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