wallabag
v1.0.0Save web articles for distraction-free reading and offline access.
x-arcane:
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/wallabag.svg"
urls:
- "https://github.com/wallabag/docker"
services:
wallabag:
image: "wallabag/wallabag:latest"
restart: "unless-stopped"
ports:
- "${PORT:-8080}:80"
environment:
SYMFONY__ENV__DOMAIN_NAME: "${PUBLIC_URL:-http://localhost:8080}"
SYMFONY__ENV__SECRET: "${APP_SECRET:?Set APP_SECRET in .env}"
SYMFONY__ENV__DATABASE_DRIVER: "pdo_sqlite"
volumes:
- "data:/var/www/wallabag/data"
- "images:/var/www/wallabag/web/assets/images"
labels:
com.getarcaneapp.arcane.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/wallabag.svg"
volumes:
data: {}
images: {}
# Replace every change-me with an independent secret before deployment.
# Generate secrets with: openssl rand -hex 32
PORT=8080
PUBLIC_URL=http://localhost:8080
APP_SECRET=change-me
README
Save web articles for distraction-free reading and offline access.
Copy .env.example to .env, review the settings, then run docker compose up -d. In Arcane, import the template and supply the same environment variables. Replace every change-me value before starting. Generate independent secrets with openssl rand -hex 32; use hexadecimal database passwords so connection URLs need no escaping. Use docker compose ps and docker compose logs to check startup.
Open PUBLIC_URL and sign in with username wallabag and password wallabag. Change the default password immediately. This template uses the supported SQLite backend; the data and images volumes store saved content. Asynchronous Redis import workers are not enabled.
Named volumes preserve server data across container recreation. Back up these volumes before upgrades; docker compose down -v deletes them. Set PORT to an unused host port. For remote browser access, put HTTPS in front of the application and update its public URL setting where provided.
Upstream documentation: wallabag deployment.