Wallabag
Connect Crow to Wallabag, a self-hosted read-it-later service, to save articles, read offline, and organize your reading list through your AI assistant.
What You Get
- Save any URL for later reading
- Search saved articles by text
- Browse articles with filters (archived, starred, tags)
- Read full article content
- Organize with tags
- Mark articles as read or starred
Setup
Crow supports two modes for Wallabag: self-hosting via Docker or connecting to an existing instance.
Option A: Docker (self-hosted)
Install Wallabag as a Crow bundle. This runs Wallabag in Docker alongside your Crow gateway.
"Crow, install the Wallabag bundle"
Or install from the Extensions panel in the Crow's Nest.
After installation, set the database password:
# In your .env file
WALLABAG_DB_PASSWORD=your-secure-passwordRestart the bundle for changes to take effect:
"Crow, restart the Wallabag bundle"
Wallabag will be available at http://your-server:8084 for initial setup. Create an account via the web UI, then create an API client from the Developer menu.
Port mapping
Wallabag's default port (80) is remapped to 8084 to avoid conflicts with other services.
Option B: Connect to existing Wallabag
If you already run a Wallabag instance, connect Crow to it directly. Wallabag uses OAuth2 authentication, so you need four credentials.
Step 1: Create an API client
- Open your Wallabag web interface
- Go to Developer > API clients management
- Create a new client
- Copy the Client ID and Client Secret
Step 2: Add to Crow
Set the following in your .env file or via Crow's Nest > Settings > Integrations:
WALLABAG_URL=http://your-wallabag-server:8084
WALLABAG_CLIENT_ID=your-client-id
WALLABAG_CLIENT_SECRET=your-client-secret
WALLABAG_USERNAME=your-username
WALLABAG_PASSWORD=your-passwordAll five variables are required. Crow uses the Client ID and Secret together with your username and password to authenticate via OAuth2.
AI Tools
Once connected, you can interact with Wallabag through your AI:
"Save this article: https://example.com/great-article"
"Show me my unread articles"
"Star that article"
"Search my saved articles for machine learning"
"Archive all read articles"
Docker Compose Reference
If you prefer manual Docker setup instead of the bundle installer:
services:
wallabag:
image: wallabag/wallabag:latest
container_name: crow-wallabag
ports:
- "8084:80"
volumes:
- wallabag-data:/var/www/wallabag/data
- wallabag-images:/var/www/wallabag/web/assets/images
environment:
SYMFONY__ENV__DATABASE_DRIVER: pdo_mysql
SYMFONY__ENV__DATABASE_HOST: wallabag-db
SYMFONY__ENV__DATABASE_PORT: 3306
SYMFONY__ENV__DATABASE_NAME: wallabag
SYMFONY__ENV__DATABASE_USER: wallabag
SYMFONY__ENV__DATABASE_PASSWORD: ${WALLABAG_DB_PASSWORD}
depends_on:
- wallabag-db
- wallabag-redis
restart: unless-stopped
wallabag-db:
image: mariadb:11
container_name: crow-wallabag-db
volumes:
- wallabag-dbdata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${WALLABAG_DB_PASSWORD}
MYSQL_DATABASE: wallabag
MYSQL_USER: wallabag
MYSQL_PASSWORD: ${WALLABAG_DB_PASSWORD}
restart: unless-stopped
wallabag-redis:
image: redis:7-alpine
container_name: crow-wallabag-redis
restart: unless-stopped
volumes:
wallabag-data:
wallabag-images:
wallabag-dbdata:Troubleshooting
OAuth2 login failed
Verify all four credentials (Client ID, Client Secret, username, password) are correct. If you changed your Wallabag password, update WALLABAG_PASSWORD in your .env file as well.
"Connection refused" or timeout
Make sure the WALLABAG_URL is reachable from the machine running Crow. If Wallabag is on a different machine, use the correct IP or hostname.
Articles not saving
Check that the target URL is accessible from the server running Wallabag. Wallabag fetches and parses the page content server-side, so it needs network access to the article URL.