Wallabag Docker Compose: Guarda y Lee sin Nube 2026

Wallabag Docker Compose archivando artículos para leer sin conexión

Con Wallabag Docker Compose montas tu propio «leer más tarde»: guardas cualquier artículo con un clic, el servidor lo descarga, le quita anuncios, banners y ventanas de cookies, y te lo deja en texto limpio para leerlo cuando quieras, incluso sin conexión.

Es la alternativa libre a Pocket e Instapaper, con una diferencia que importa: tu biblioteca no desaparece el día que la empresa cierre el servicio o cambie de precio. Y ya hemos visto unos cuantos casos.

Qué resuelve Wallabag Docker Compose

La idea de Wallabag Docker Compose es sencilla y por eso funciona tan bien. Cuando guardas una dirección, el servidor no se limita a apuntarla: descarga el contenido, lo procesa y almacena una copia del texto en su base de datos. Eso tiene tres consecuencias muy prácticas.

  • Sobrevive al enlace roto. Si mañana el medio borra el artículo o mete un muro de pago, tu copia sigue ahí.
  • Se lee sin conexión. En el metro, en el avión o donde no llegue la cobertura.
  • Sin distracciones. Ni publicidad, ni vídeos que se reproducen solos, ni ventanas de suscripción.

Conviene distinguirlo de otras piezas parecidas. Un lector de RSS como FreshRSS te trae novedades de las fuentes que sigues; esto guarda cosas concretas que te encuentras por ahí para leerlas con calma. Se complementan bien: descubres en uno, archivas en el otro.


Requisitos previos de Wallabag Docker Compose

RecursoMínimoRecomendado
RAM512 MB1 GB
CPU1 núcleo2 núcleos
Disco2 GB10 GB
Docker Engine24.xÚltima estable

Es de los servicios más ligeros que puedes autoalojar, así que Wallabag Docker Compose corre sin problema en una Raspberry Pi o en el VPS más barato. El disco crece despacio: los artículos son texto, y solo las imágenes ocupan algo.

Instalar Wallabag Docker Compose paso a paso

Paso 1: preparar el entorno

Como en todo Wallabag Docker Compose, las credenciales van fuera del fichero principal. El valor de SECRET lo usa la aplicación para firmar sesiones, así que genera uno aleatorio de verdad.

mkdir -p ~/wallabag && cd ~/wallabag
mkdir -p ./imagenes ./postgres

cat > .env <<EOF
POSTGRES_USER=wallabag
POSTGRES_PASSWORD=$(openssl rand -hex 24)
POSTGRES_DB=wallabag
WALLABAG_SECRET=$(openssl rand -hex 32)
WALLABAG_DOMAIN=https://leer.midominio.es
EOF

chmod 600 .env

Revisa el fichero generado antes de continuar. Si openssl no estuviera disponible, pon cadenas largas escritas a mano, pero no dejes valores de ejemplo.

Paso 2: escribir el docker-compose.yml

La configuración oficial de Wallabag Docker Compose usa MariaDB, pero aquí vamos con PostgreSQL, que rinde mejor con bibliotecas grandes y es el motor que más recomienda la comunidad para este servicio.

services:
  wallabag:
    image: wallabag/wallabag:latest
    container_name: wallabag
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    environment:
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql
      - SYMFONY__ENV__DATABASE_HOST=db
      - SYMFONY__ENV__DATABASE_PORT=5432
      - SYMFONY__ENV__DATABASE_NAME=${POSTGRES_DB}
      - SYMFONY__ENV__DATABASE_USER=${POSTGRES_USER}
      - SYMFONY__ENV__DATABASE_PASSWORD=${POSTGRES_PASSWORD}
      - SYMFONY__ENV__SECRET=${WALLABAG_SECRET}
      - SYMFONY__ENV__DOMAIN_NAME=${WALLABAG_DOMAIN}
      - SYMFONY__ENV__SERVER_NAME=Mi biblioteca
      - SYMFONY__ENV__LOCALE=es
      - SYMFONY__ENV__FROM_EMAIL=wallabag@midominio.es
      - POPULATE_DATABASE=true
    ports:
      - "8088:80"
    volumes:
      - ./imagenes:/var/www/wallabag/web/assets/images

  db:
    image: postgres:16-alpine
    container_name: wallabag-db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - ./postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
      interval: 10s
      timeout: 5s
      retries: 5

Presta atención a POPULATE_DATABASE: crea el esquema en el primer arranque. Déjalo en true ahora y ponlo en false después, para que un reinicio accidental no intente reinicializar nada.

Paso 3: levantar y entrar

docker compose up -d
docker compose logs -f wallabag

El primer arranque de Wallabag Docker Compose tarda algo más porque crea las tablas. Cuando termine, entra en http://tu-servidor:8088.

Advertencia: cambia las credenciales por defecto

La instalación crea el usuario wallabag con contraseña wallabag, y no hay forma de fijarla por variable de entorno. Cámbiala en la configuración de usuario antes de publicar el servicio en Internet, y desactiva el registro público de cuentas si va a ser solo para ti.

Paso 4: publicar con HTTPS

Las extensiones de navegador y las aplicaciones móviles necesitan una URL estable con certificado. Con Traefik y certificados automáticos se resuelve en cinco etiquetas.

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wallabag.rule=Host(`leer.midominio.es`)"
      - "traefik.http.routers.wallabag.entrypoints=websecure"
      - "traefik.http.routers.wallabag.tls.certresolver=letsencrypt"
      - "traefik.http.services.wallabag.loadbalancer.server.port=80"

El valor de DOMAIN_NAME tiene que coincidir exactamente con la URL pública, incluido el https://. Si no cuadra, los enlaces internos y la exportación de artículos saldrán rotos: es el fallo más habitual de Wallabag Docker Compose tras poner un proxy delante.


Guardar artículos en Wallabag Docker Compose desde cualquier sitio

Aquí es donde Wallabag Docker Compose deja de ser un servidor y pasa a ser útil de verdad. Hay cuatro vías de entrada y conviene configurarlas todas.

VíaPara qué
Extensión de navegadorFirefox y Chrome, con un botón en la barra.
Aplicaciones móvilesAndroid e iOS, con sincronización y lectura sin conexión.
BookmarkletUn enlace en marcadores, útil en navegadores sin extensión.
API RESTPara automatizar desde scripts o desde tu gestor de flujos.

Las aplicaciones y la extensión te pedirán la URL del servidor y tus credenciales; para la API necesitarás crear un cliente desde la interfaz, que te dará un identificador y un secreto.

Merece la pena detenerse en las aplicaciones móviles, porque son las que más uso acaban teniendo. Se integran en el menú de compartir del sistema, así que guardar algo desde el navegador del teléfono, desde una red social o desde un mensaje es cuestión de dos toques. Además descargan los artículos al dispositivo, de modo que la lectura sin conexión funciona de verdad y no solo sobre el papel.

Un detalle a tener en cuenta si publicas el servicio solo dentro de tu red o detrás de una VPN: la sincronización fallará cuando estés fuera de casa. O aceptas exponerlo a Internet con HTTPS y contraseñas sólidas, o asumes que la sincronización ocurre al volver a tu red. Ambas opciones son razonables; lo que no funciona es esperar sincronización permanente con el servicio cerrado al exterior.

curl -X POST https://leer.midominio.es/oauth/v2/token \
  -d grant_type=password \
  -d client_id=TU_CLIENT_ID \
  -d client_secret=TU_CLIENT_SECRET \
  -d username=tuusuario \
  -d password=tucontrasena

Con el token que devuelve puedes añadir artículos desde cualquier automatismo, que es como mucha gente conecta su lector de RSS con su archivo de lectura.

Etiquetas y exportación en Wallabag Docker Compose

Dos funciones de Wallabag Docker Compose que se descubren tarde y que cambian bastante la experiencia diaria.

La primera son las reglas de etiquetado automático. Se definen con expresiones sencillas y ahorran el trabajo manual de clasificar.

domainName = "tutorialesdevops.es"
readingTime <= 5
title matches "kubernetes"
language = "es"

Cada regla aplica una etiqueta a los artículos que la cumplen en el momento de guardarlos. Con tres o cuatro bien pensadas, la biblioteca se organiza sola.

La segunda es la exportación. Cualquier artículo, o una etiqueta entera, se descarga en EPUB, MOBI, PDF o texto plano. Eso convierte tu archivo en material de lectura para el libro electrónico: seleccionas la etiqueta «pendiente», exportas a EPUB y te llevas veinte artículos al Kindle o al Kobo.

Cómo extrae el contenido y por qué a veces falla

Entender esta parte ahorra bastantes frustraciones. Cuando guardas una dirección, Wallabag Docker Compose descarga el HTML y aplica un motor de extracción que identifica cuál de todos esos bloques es el artículo y cuáles son menú, pie, publicidad o «también te puede interesar».

Ese motor combina heurísticas generales con un catálogo de reglas específicas por sitio que mantiene la comunidad. Para los medios grandes casi siempre acierta; para blogs pequeños con maquetación rara, a veces recorta de más o de menos.

  • Contenido tras muro de pago. Si no puedes leerlo en el navegador sin suscripción, el servidor tampoco. No es un fallo, es lo esperable.
  • Páginas construidas con JavaScript. El servidor ve el HTML inicial, que en muchas aplicaciones modernas viene prácticamente vacío.
  • Sitios que bloquean peticiones automatizadas. Algunos devuelven una página de verificación en lugar del artículo.

La salida práctica en los tres casos es la misma: la interfaz permite editar el contenido de un artículo a mano, así que puedes pegar el texto y quedarte con tu copia. Menos elegante, pero resuelve.


Mantenimiento de Wallabag Docker Compose

En Wallabag Docker Compose hay dos cosas que respaldar: la base de datos, donde vive absolutamente todo el texto, y el directorio de imágenes.

docker compose exec -T db pg_dump -U wallabag wallabag \
  | gzip > wallabag-$(date +%F).sql.gz
tar czf wallabag-imagenes-$(date +%F).tar.gz ./imagenes

Programa el volcado a diario y llévatelo fuera del servidor, por ejemplo con Duplicati y copias cifradas. Si vienes de otro servicio, la importación admite ficheros de Pocket, Instapaper y del propio formato de la aplicación, así que no empiezas de cero. Y para afinar el motor de base de datos, sirve lo visto en el tutorial de PostgreSQL con Docker Compose.

Una rutina que funciona

Después de un tiempo usándolo, el patrón que mejor resultado da es este. Durante la semana guardas sin pensar: cualquier cosa que te llame la atención va al archivo con un clic, sin abrir veinte pestañas ni prometerte leerla «ahora mismo». El sábado abres la biblioteca y decides qué merece la pena de verdad, que suele ser bastante menos de lo que guardaste.

Lo que queda se etiqueta como pendiente y se exporta a EPUB de una tacada. Media hora de lectura en el lector de libros electrónicos, sin pantalla retroiluminada ni notificaciones, rinde muchísimo más que la misma media hora saltando entre pestañas del navegador.

Y hay un efecto secundario interesante: ver la lista crecer sin control es un aviso bastante honesto de cuánto estabas guardando por inercia y no por interés real. Al mes o dos, uno empieza a guardar bastante menos y mejor.


Problemas frecuentes con Wallabag Docker Compose

SíntomaCausaSolución
Error 500 al instalarBase de datos aún no listaUsar el healthcheck del ejemplo
Enlaces con la IP internaDOMAIN_NAME mal puestoPoner la URL pública completa
Artículo guardado sin textoWeb con mucho JavaScriptEditar el contenido a mano
La extensión no conectaCertificado o URLComprobar HTTPS válido
Sin correo de recuperaciónFalta configurar SMTPDefinir MAILER_DSN

El tercero merece explicación porque no tiene arreglo perfecto en Wallabag Docker Compose. Las páginas que construyen todo el contenido con JavaScript en el navegador no se pueden extraer bien desde el servidor, que solo ve el HTML inicial. La comunidad mantiene reglas específicas para muchos sitios conocidos, pero siempre habrá alguno que se resista.

Conclusión sobre Wallabag Docker Compose

Wallabag Docker Compose es de esos servicios pequeños que acabas usando a diario sin darte cuenta. Consume poquísimo, no requiere mantenimiento más allá de las copias, y resuelve un problema real: la lista de cosas que quieres leer y nunca lees porque están repartidas entre veinte pestañas abiertas.

Instálalo, pon la extensión en el navegador y dale dos semanas. Cuando veas la biblioteca crecer con lo que antes se perdía, entenderás por qué la gente que lo prueba ya no lo quita. Tienes el despliegue oficial en el repositorio de Docker del proyecto, la documentación completa en su manual, el código en GitHub, las imágenes publicadas en Docker Hub, información del proyecto en su web oficial y más ideas en los tutoriales de Docker Compose.

Preguntas frecuentes sobre Wallabag Docker Compose

¿Puedo importar mi cuenta de Pocket?

Sí, desde el menú de importación. Trae los artículos guardados con sus etiquetas y su estado de lectura. Según el tamaño de la biblioteca puede tardar un rato, porque descarga el contenido de cada uno.

¿Sirve para varias personas?

Sí, admite varios usuarios con bibliotecas independientes en la misma instancia. Puedes dejar el registro abierto o crear tú las cuentas desde la administración, que es lo aconsejable si está publicado en Internet.

¿Guarda también las imágenes del artículo?

Puede hacerlo, y por eso el ejemplo monta un directorio para ellas. Es lo que permite leer con las ilustraciones sin conexión, a costa de algo más de disco.

¿En qué se diferencia de un gestor de marcadores?

Un gestor de marcadores guarda la dirección; esto guarda el contenido. Si la página cambia o desaparece, el marcador se queda en nada y aquí conservas el texto tal como estaba cuando lo archivaste.

¿Cómo actualizo a una versión nueva?

Descargando la imagen nueva y recreando el contenedor. Haz copia de la base de datos antes: las actualizaciones ejecutan migraciones de esquema y volver atrás sin respaldo no es sencillo.

Avatar

Por Mid

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x