Wallabag

2017/10/18

Wallabag is a “read it later” program for saving websites. An appealing thing about Wallabag is that you can host the “bag” of saved websites yourself. To try it out I am using a Docker container on a Raspberry Pi 3.

Wallabag has a prebuilt Docker image, but that is not for the architecture of the Raspberry Pi 3. Fortunately, Wallabag also share the Dockerfile used to make the image on GitHub. Only a few steps are necesarry to build the image yourself.

The Wallabag image use the “official” Docker Linux distribution Alpine Linux Download the Alpine image for the Raspberry Pi:

docker pull arm64v8/alpine

Clone the repository with the Wallabag Dockerfile:

git clone https://github.com/wallabag/docker.git
Edit Dockerfile in the repository and change the first line from FROM alpine:edge to FROM arm64v8/alpine.

Build the Docker image by executing this command in the cloned repository:

docker build -t wallabag .

Finally, create a container for this custom Wallabag image. I want to access Wallabag on port 8766 on the host and use storage on the host as well.

docker create --name wb \
	-v /home/robert/docker/wallabag/data:/var/www/wallabag/data \
	-v /home/robert/docker/wallabag/images:/var/www/wallabag/web/assets/images \
	-p 8766:80 wallabag

Here I am using the default SQLite backend. Other containers can be used as well – good instructions are available on the README in the Wallabag repository.

The container can be started by running docker start wb.

An alternative to the long create command is to use Docker Compose with the following docker-compose.yml file in the same folder as the Dockerfile:

version: '3'
services:
    wallabag:
        build: .
        image: wallabag
        container_name: wb
        ports:
            - "8766:80"
        volumes: 
            - /home/robert/docker/wallabag/data:/var/www/wallabag/data
            - /home/robert/docker/wallabag/images:/var/www/wallabag/web/assets/images
The container is now built and started with docker-compose up -d.