Wallabag ist ein Read-It-Later-Service, der es ermöglicht, Online-Artikel zu speichern und in einem lesefreundlichen Format darzustellen. Es ist eine Alternative zu Pocket und Instapaper. Dank Browser-Add-ons und mobiler Apps lässt sich das Speichern von Artikeln bequem umsetzen. Es lassen sich auch Artikel hinter Paywalls sichern.
Datum | Änderungen |
---|---|
10.03.2025 | Anleitung erstellt |
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
- Optional WatchTower
2. Verzeichnis erstellen
Dazu gibst du folgenden Befehl ein:
mkdir -p /opt/containers/wallabag/data/{images,database}
3. Docker Compose erstellen
Als Erstes öffnest du die docker-compose.yml
-Datei …
nano /opt/containers/wallabag/docker-compose.yml
… und fügst Folgendes ein.
services: wallabag: image: wallabag/wallabag restart: unless-stopped depends_on: - db - redis healthcheck: test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"] interval: 10s timeout: 3s volumes: - ./data/images:/var/www/wallabag/web/assets/images environment: MYSQL_ROOT_PASSWORD: ${WALLABAG_DB_ROOT_PASSWORD} SYMFONY__ENV__DATABASE_DRIVER: pdo_mysql SYMFONY__ENV__DATABASE_HOST: db SYMFONY__ENV__DATABASE_PORT: 3306 SYMFONY__ENV__DATABASE_NAME: wallabag SYMFONY__ENV__DATABASE_USER: wallabag SYMFONY__ENV__DATABASE_PASSWORD: ${WALLABAG_DB_PASSWORD} SYMFONY__ENV__DATABASE_CHARSET: utf8mb4 SYMFONY__ENV__DATABASE_TABLE_PREFIX: "wallabag_" SYMFONY__ENV__SECRET: ${WALLABAG_SECRET} SYMFONY__ENV__LOCALE: ${WALLABAG_LOCALE:-en} SYMFONY__ENV__MAILER_DSN: ${WALLABAG_MAIL_DSN} SYMFONY__ENV__FROM_EMAIL: ${WALLABAG_MAIL_FROM} SYMFONY__ENV__TWOFACTOR_SENDER: ${WALLABAG_MAIL_TWO_FACTOR_FROM} SYMFONY__ENV__DOMAIN_NAME: https://${WALLABAG_DOMAIN} SYMFONY__ENV__SERVER_NAME: ${WALLABAG_SERVER_NAME} SYMFONY__ENV__FOSUSER_REGISTRATION: false PHP_MEMORY_LIMIT: 256M labels: com.centurylinklabs.watchtower.enable: true traefik.enable: true traefik.http.routers.wallabag.entrypoints: websecure traefik.http.routers.wallabag.rule: Host(`${WALLABAG_DOMAIN}`) traefik.http.routers.wallabag.tls.certresolver: http_resolver traefik.http.services.wallabag.loadbalancer.server.port: 80 networks: - proxy - default db: image: mariadb:11 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${WALLABAG_DB_ROOT_PASSWORD} volumes: - ./data/database:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 3s labels: com.centurylinklabs.watchtower.enable: true networks: - default redis: image: redis:alpine restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s labels: com.centurylinklabs.watchtower.enable: true networks: - default networks: proxy: external: true
4. .env
-Datei erstellen
Die .env
-Datei öffnest du mit folgendem Command …
nano /opt/containers/wallabag/.env
… und kopierst den folgenden Inhalt hinein.
WALLABAG_DOMAIN= WALLABAG_SERVER_NAME="Deine Wallabag-Instanz" WALLABAG_LOCALE=de WALLABAG_DB_ROOT_PASSWORD= WALLABAG_DB_PASSWORD= WALLABAG_SECRET= WALLABAG_MAIL_HOST= WALLABAG_MAIL_USER= WALLABAG_MAIL_PASSWORD= WALLABAG_MAIL_PORT=465 WALLABAG_MAIL_DSN=smtp://${WALLABAG_MAIL_USER}:${WALLABAG_MAIL_PASSWORD}@${WALLABAG_MAIL_HOST}:${WALLABAG_MAIL_PORT} WALLABAG_MAIL_FROM= WALLABAG_MAIL_TWO_FACTOR_FROM=${WALLABAG_MAIL_FROM}
WALLABAG_DOMAIN
: Die Domain, unter der Wallabag erreicht werden soll. Wird für Traefik und Wallabag selbst verwendet.WALLABAG_SERVER_NAME
: Der Name, der auf der Webseite und im TOTP angezeigt wird.WALLABAG_LOCALE
: Die Standardsprache auf der Webseite.WALLABAG_DB_ROOT_PASSWORD
: Das Root-Passwort für die Datenbank und wird zur Initialisierung der Datenbank genutzt von Wallabag beim ersten Start.WALLABAG_DB_PASSWORD
: Das Datenbankpasswort für den normalen Betrieb. Es darf nicht im Datenbankcontainer voreingestellt sein. Dies erledigt Wallabag selbst.WALLABAG_SECRET
: Der String soll die Entropie erhöhen.WALLABAG_MAIL_HOST
,USER
,PASSWORD
,PORT
: Das sind Hilfsvariablen fürWALLABAG_MAIL_DSN
.WALLABAG_MAIL_DSN
: Der DSN für Mail enthält alle Informationen, um sich bei dem entsprechenden Service zu authentifizieren. Das ist bei SMTP das Protokoll, Username, Passwort, Hostname und Port. Hier wird der DSN-String aus den anderen Variablen zusammengebaut und sollte für die allermeisten funktionieren. Seit Version 2.6.1 kann man die einzelnen Parameter nicht mehr einzeln übergeben.gmail+smtp://USERNAME:PASSWORD@default
kann als verkürzte, alternative Schreibweise für Gmail genutzt werden. Es muss dafür ein App-Passwort verwendet werden.
Sendmail funktioniert innerhalb von Docker-Containern nicht.WALLABAG_MAIL_FROM
: Absenderadresse für allgemeine Mails, die von Wallabag versendet werden.WALLABAG_MAIL_TWO_FACTOR_FROM
: Absenderadresse ausschließlich für die Zweifaktorauthentifizierung per Mail.
4.1 Passwörter generieren
Um sichere Passwörter für WALLABAG_DB_ROOT_PASSWORD
, und zu erstellen, kannst du folgenden Command ausführen und jeweils das Ergebnis in die Variable eintragen.
openssl rand -base64 48 | tr -dc 'a-zA-Z0-9!@#%^&*()-_=+[]{}?' && echo
Ich empfehle hier Anführungszeichen um den Variablenwert zu setzen. Als Beispiel:
WALLABAG_DB_ROOT_PASSWORD="ttQNU7apVBCIS7HXqafkmqHJHYrC4VnKH2Q0JRZgh7+jzTXuDFDOra5EDHZqte4u"
5. Stack starten
Wenn du oben alles erledigt hast, kannst du den Stack starten mit dem folgenden Command:
docker compose -f /opt/containers/wallabag/docker-compose.yml up -d
Es kann beim ersten Start bis zu einer Minute dauern, bis Wallabag vollständig initialisiert und gestartet ist.
6. Erster Login
Wenn Wallabag bereit ist, kannst du die Webseite aufrufen, die du unter WALLABAG_DOMAIN
definiert hast. Dort solltest du die Login-Maske sehen. Die Standardzugangsdaten sind wallabag
/ wallabag
.
Wenn du dich eingeloggt hast, kannst du oben rechts auf “Mein Profil”, “Konfiguration”, “Kennwort” das Passwort für diesen Account ändern. Das ist der Admin-Account. Es ist nicht möglich, einen weiteren Admin-Account anzulegen. Wenn du den Benutzernamen ändern möchtest, kannst du unter “Mein Profil”, “Benutzerverwaltung” den Benutzer auswählen und auf der rechten Seite auf “Bearbeiten” klicken.
7. Artikel hinzufügen
Wenn du einen Artikel, den du später lesen möchtest, kannst du oben rechts auf der Seite auf das Plus klicken und die URL des Artikels einfügen. Über diesen Weg können nur frei zugängliche Artikel hinzugefügt werden.
8. Client hinzufügen
Wallabag hat als Clients Browser-Add-ons und Apps für Android und iOS. Dazu gibt es eine Vielzahl an weiteren Third-Party-Tools. Um sich mit einem Client zu der Wallabag-Instanz zu verbinden, benötigst du einen API-Zugang.
Um einen neuen Client in Wallabag anzulegen, gehst du auf “Mein Profil” oben rechts, “API-Client-Verwaltung”. Dort klickst du auf “Neuen Client hinzufügen” und wählst einen Namen dafür aus. Der Name ist nur für die spätere Identifizierung des Clients in der Liste da. Die Weiterleitungs-URI kannst du freilassen.
Links
- Offizielle Webseite: https://wallabag.org/
- Dokumentation: https://doc.wallabag.org/
- Git-Repository: https://github.com/wallabag/wallabag
- Docker-Git-Repository: https://github.com/wallabag/docker
- Wiki: https://github.com/wallabag/wallabag/wiki