Docker
Run wallabag in docker-compose
This document describes how to use Docker for wallabag development purposes. For running wallabag in production, please use the official docker-compose configuration provided.
To run your own development instance of wallabag, you can use the pre-configured docker compose files provided in the wallabag repository.
Requirements
Make sure to have Docker and Docker Compose available on your system and up to date.
Switch DBMS
By default, wallabag starts with a SQLite database. However, wallabag also supports PostgreSQL and MySQL. Docker containers are available for both.
For the chosen DBMS, update compose.yaml and the repo-level env overrides:
- uncomment the container definition (
postgresormariadb) - uncomment the matching
depends_online in thephpservice - adjust
docker/mariadb/envordocker/postgres/envif you need different credentials or database names for the database container - set
DATABASE_URLin.env.localfor development - set
DATABASE_URLin.env.test.localif you want tests to use the same engine with a separate test database
If you keep running Symfony commands on your host instead of inside the php
container, use host-reachable values in .env.local and .env.test.local
instead of the Docker Compose hostnames. When the Docker stack is running, the
Makefile already runs Symfony commands in the php container by default.
Run wallabag
- Fork and clone the project
- Copy
docker/php/env.exampletodocker/php/env - Adjust any Docker-specific overrides you need
- If you are not using SQLite, uncomment the matching database service in
compose.yaml, uncomment the matchingdepends_online in thephpservice, and setDATABASE_URLin.env.local - Set
DATABASE_URLin.env.test.localas well if you want tests to use the same database engine with a separate test database make dev-docker-upto start the containersmake dev-setupto install dependencies, prepare the database, and build assets- Finally, browse to http://localhost:8000/ to find your freshly installed wallabag.
At various step, you’ll probably run into UNIX permission problems, bad paths in generated cache, etc… Operations like removing cache files or changing files owners might be frequently required, so don’t be afraid!