Wallabag
wallabag is a self hostable application for saving web pages.
Installation
Install the wallabag package.
Configuration
PHP
A list of required php modules can be found here. The following snippet is provided for brevity.
/etc/php/conf.d/wallabag.ini
extension=bcmath extension=gd extension=gettext extension=iconv extension=intl extension=tidy ; database - sqlite ;extension=pdo_sqlite ;extension=sqlite3 ; database - pgsql ;extension=pdo_pgsql ;extension=pgsql
Wallabag
Once wallabag has been properly configured, commands must be run in order to initialise the database and application state.
--env=prod
to the commands.# cd /usr/share/wallabag # sudo -u wallabag php bin/console cache:clear # sudo -u wallabag php bin/console doctrine:migrations:migrate
/etc/wallabag/parameters.yml
, the cache must be cleared.Database
Supported databases are:
- SQLite (for development only, database migrations are not supported in production.)
- PostgreSQL
- MariaDB
The setup and configuration are not covered here.
Application Server
php-fpm
It is recommended to make a copy of /etc/php/php-fpm.d/www.conf
and modify that.
/etc/php/php-fpm.d/wallabag.conf
[wallabag] user = wallabag group = wallabag
Web Server
nginx
The below configuration is sourced from upstream documentation and slightly amended:
/etc/nginx/example.conf
server { root /usr/share/wallabag/web; # When you want to import large files into wallabag, you need to add this line. client_max_body_size XM; # allows file uploads up to X megabytes. location / { # try to serve file directly, fallback to app.php try_files $uri /app.php$is_args$args; } location ~ ^/app\.php(/|$) { fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; # When you are using symlinks to link the document root to the # current version of your application, you should pass the real # application path instead of the path to the symlink to PHP # FPM. # Otherwise, PHP's OPcache may not properly detect changes to # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126 # for more information). fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; # Prevents URIs that include the front controller. This will 404: # http://domain.tld/app.php/some-path # Remove the internal directive to allow URIs like this internal; } # return 404 for all other php files not matching the front controller # this prevents access to other php files you don't want to be accessible. location ~ \.php$ { return 404; } }
Generic configuration for other web servers can be found upstream.
Troubleshooting
Upgrading between versions
There are upgrade instructions available, dependent on the old and new versions. Generally, cache must be cleaned and database migrations performed, as shown in the configuration section.