Install Wallabag 2.x on Debian Stretch

Wallabag is a self hostable application allowing you to not miss any content anymore. Click, save and read it when you can. It extracts content so that you can read it when you have time without ad’s and nagging JavaScript popups.

There are just a few steps necessary to run wallabag at your own linux box. If you do not want or do not have the time or skill to run your own Wallabag instance, they provide a service with reasonable pricing at

As this is an Application which was really good with v1.x and has improved again with v2.x, feel free to spread the word about them. Their direct (and proprietary) competitor has been bought and integrated into Firefox. As the development is funded from their hosted service, give them a warm feeling and show your appreciation about creating this great piece of free software and leave them a tip on Liberapay or Bountysource if you run your own wallabag.

Self-hosted Installation

I’ll cover install on Debian Stretch, external MariaDB and Apache 2.4 as this is my most used setup and the traditional LAMP stack. I just separate it to different LXC Containers as they are running smoothly in my Proxmox host. As Database Backend SQLite and PostgreSQL are also available and NGINX or Lighty settings are covered in their documentation.

In the wallabag documentation there are some dependency’s listed which need to be installed for wallabag to work properly.

PHP version needs to be at least >= 5.6, including PHP 7 which is available in Debian Stretch with package php7.0 (7.0.19-1).

Composer is now also available in the repository and does not need to be installed manually.

root@bag:~# apt-get install apache2 libapache2-mod-php php composer git-core php-bcmath php-gd php-dompdf php-json php-mbstring php-xml php-tidy php-symfony-polyfill-iconv php-curl php-gettext php-bcmath php-mysql make zip unzip

If you think you are missing one of the dependency’s, run “php -m” to show all loaded php modules.

Next step is downloading wallabag from git and install it.

root@bag:~# cd /var/www/
root@bag:/var/www# git clone
root@bag:/var/www# cd wallabag/
root@bag:/var/www/wallabag# make install

composer will download and install a lot of php dependency’s automatically.

When this task is finished, wallabag will ask for parameters to do the initial settings.


This parameters can be changed also later and are described here in the parameter-documentation.

I have already a MariaDB running on my network. Prepared a Wallabag database and user instead of root. The database can also be choosen to be SQlite or Postgres instead of MariaDB (MySQL). Detailed Settings for the database options.

I also suggest to change the secret to a random generated one.

As my instance is a private one, i do not want random users to create their own users and set fosuser_registration to false.

Creating the "app/config/parameters.yml" file
Some parameters are missing. Please provide them.
database_driver (pdo_sqlite): pdo_mysql
database_host (
database_port (null): 3306
database_name (symfony): wallabag
database_user (root): wallabag
database_password (null): trustno1
database_path ('%kernel.root_dir%/../data/db/wallabag.sqlite'): 
database_table_prefix (wallabag_): 
database_socket (null): 
database_charset (utf8): 
mailer_transport (smtp): 
mailer_host ( 
mailer_user (null): 
mailer_password (null): 
locale (en): 
secret (ovmpmAWXRCabNlMgzlzFXDYmCFfzGv): random-generated-secret-instead
twofactor_auth (true): 
twofactor_sender ( 
fosuser_registration (true): false
fosuser_confirmation (true): 
from_email ( 
rss_limit (50): 
rabbitmq_host (localhost): 
rabbitmq_port (5672): 
rabbitmq_user (guest): 
rabbitmq_password (guest): 
rabbitmq_prefetch_count (10): 
redis_scheme (tcp): tcp
redis_host (localhost):
redis_port (6379): 
redis_path (null): 
redis_password (null): redis-requirepass-password
sites_credentials ({ }):

I use a Redis instead of RabbitMQ, but it’s not necessary to use it for daily operation. It becomes handy when asynchronous import from other read-it-later apps is necessary.

Step 1 of 4. Checking system requirements.
| Checked | Status | Recommendation |
| PDO Driver (pdo_mysql) | OK! | |
| Database connection | OK! | |
| Database version | OK! | |
| curl_exec | OK! | |
| curl_multi_init | OK! | |
Success! Your system can run wallabag properly.

Step 2 of 4. Setting up database.
It appears that your database already exists. Would you like to reset it? (y/N)
Seems like your database contains schema. Do you want to reset it? (y/N)y
Droping schema and creating schema
Clearing the cache

Step 3 of 4. Administration setup.
Would you like to create a new admin user (recommended) ? (Y/n)Y
Username (default: wallabag) :admin
Password (default: wallabag) : trustno1

Step 4 of 4. Config setup.

wallabag has been successfully installed.


root@bag:/var/www/wallabag# php bin/console server:run --env=prod
 [ERROR] Running PHP built-in server in production environment is NOT recommended! 

 [OK] Server running on 

// Quit the server with CONTROL-C.



So let’s connect from the client pc to the server where wallabag is running and forward the port to the client to test the new wallabag installation for the first time.

cave@laptop:~#ssh -L 8080:localhost:8000 root@bag

Enter your browser and navigate to localhost:8080 to see this:

Apache vHost

Apache needs rights access to the wallabag folder in /var/wwwas described in the documentation.

root@bag:/var/www# chown -R www-data:www-data wallabag/


The documentation also share’s a ready to take vHost for apache (also NGINX or Lighty are available) to place in your sites-available directory. Update the ServerName and ServerAlias directive to your needs, disable the default vHost and enable the wallabag vHost. Restart apache afterwards.

root@bag:/var/www# cd /etc/apache2/sites-available/
root@bag:/etc/apache2/sites-available# vi 100-wallabag.conf
root@bag:/etc/apache2/sites-available# a2dissite 000-default.conf 
Site 000-default disabled.
To activate the new configuration, you need to run:
 systemctl reload apache2
root@bag:/etc/apache2/sites-available# a2ensite 100-wallabag.conf 
Enabling site 100-wallabag.
To activate the new configuration, you need to run:
 systemctl reload apache2
root@bag:/etc/apache2/sites-available# service apache2 restart


vHost Example for Apache 2.4

<VirtualHost *:80>
 ServerName bag.mydomain.tld
 ServerAlias bag.mydomain.lan

DocumentRoot /var/www/wallabag/web
 <Directory /var/www/wallabag/web>
   Require all granted

<IfModule mod_rewrite.c>
 Options -MultiViews
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ app.php [QSA,L]

# uncomment the following lines if you install assets as symlinks
 # or run into problems when compiling LESS/Sass/CoffeScript assets
 # <Directory /var/www/wallabag>
 # Options FollowSymlinks
 # </Directory>

# optionally disable the RewriteEngine for the asset directories
 # which will allow apache to simply reply with a 404 when files are
 # not found instead of passing the request into the full symfony stack
 <Directory /var/www/wallabag/web/bundles>
 <IfModule mod_rewrite.c>
 RewriteEngine Off
 ErrorLog /var/log/apache2/wallabag_error.log
 CustomLog /var/log/apache2/wallabag_access.log combined

Apache Module ReWrite

Before we can use our fresh and new wallabag instance, we need to enable mod_rewrite for Apache.

root@bag:/etc/apache2/sites-available# a2enmod rewrite 
Enabling module rewrite.
To activate the new configuration, you need to run:
 systemctl restart apache2
root@bag:/etc/apache2/sites-available# service apache2 restart


Don’t forget to use https with a SSL enabled vHost or with HAProxy SSL Termination in front of your WebServer for HTTPS.


There is an AddOn available for Firefox and Chrome.

And for your mobile Phone there is the Wallabag App available on F-Droid and Google Play Store.

Comments are closed.