{{tag>english startpage linux wallabag}}
====== Wallabag installation under Debian ======
Wallabag is a self-hostable service that stores your web pages to read them later. With the following steps, you can set up your Wallabag under Debian.
===== Required packages =====
The required packages can be found [[https://doc.wallabag.org/en/admin/installation/requirements.html|unter be found at this link]].
===== Installation =====
git clone https://github.com/wallabag/wallabag.git
cd wallabag && make install
===== Virtual Host =====
==== Apache 2.4 ====
  ServerName wallabag.domain.tld
  ServerAlias www.wallabag.domain.tld
  # SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
  SSLEngine On
  SSLProtocol -ALL +TLSv1 +TLSv1.2
  SSLCompression Off
  SSLSessionTickets on
  SSLHonorCipherOrder off
  SSLCipherSuite ECDH+AESGCM:ECDH+AES256:!aNULL:!MD5:!DSS:!DH:!AES128
  SSLVerifyDepth 10
  SSLCertificateFile /etc/letsencrypt/live/wallabag.domain.tld/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/wallabag.domain.tld/privkey.pem
  SSLCACertificateFile /etc/letsencrypt/live/wallabag.domain.tld/chain.pem
  SSLCertificateChainFile /etc/letsencrypt/live/wallabag.domain.tld/fullchain.pem  
    DocumentRoot "/home/user/wallabag/web"
    
Require all granted
        
            Options +SymLinksIfOwnerMatch
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
        
    
    # If you don't want this caching strategy for your assets
    # you have to comment the two following blocks
    
        ExpiresActive On
        ExpiresByType application/javascript A259200
        ExpiresByType image/avif "access plus 2592000 seconds"
        ExpiresByType image/gif "access plus 2592000 seconds"
        ExpiresByType image/jpg "access plus 2592000 seconds"
        ExpiresByType image/jpeg "access plus 2592000 seconds"
        ExpiresByType image/png "access plus 2592000 seconds"
        ExpiresByType image/webp "access plus 2592000 seconds"
        ExpiresByType text/css "access plus 2592000 seconds"
    
    
        
            Header set Cache-Control "max-age=2592000, public"
        
        
            Header set Cache-Control "max-age=2592000, public, immutable"
        
        
            Header set Cache-Control "max-age=2592000, private"
        
    
    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeScript assets
    # 
    #     Options FollowSymlinks
    # 
    # 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
    
        
            RewriteEngine Off
        
    
    ErrorLog /var/log/apache2/wallabag_error.log
    CustomLog /var/log/apache2/wallabag_access.log combined
===== Authorisations =====
chown -R www-data:www-data /home/user/wallabag/var
chown -R www-data:www-data /home/user/wallabag/web
chown -R www-data:www-data /home/user/wallabag/bin/
chown -R www-data:www-data /home/user/wallabag/app/config/
chown -R www-data:www-data /home/user/wallabag/vendor/
chown -R www-data:www-data /home/user/wallabag/data/
===== LetsEncrypt certificate as cronjob =====
30 3 * * 0 /opt/certbot/certbot-auto certonly --apache --force-renewal -d wallabag.domain.tld --post-hook "/etc/init.d/apache2 reload"