welcome: please sign in

Diff for "MemberManual/WebApplications/Wallabag"

Differences between revisions 2 and 3
Revision 2 as of 2020-07-16 04:39:46
Size: 3490
Editor: ClintonEbadi
Comment:
Revision 3 as of 2020-07-16 04:58:30
Size: 3852
Editor: ClintonEbadi
Comment: api is also broken without fixing domtool
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
 * API does not work because we are not passing Authorization header to fcgi php. Need to add `SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1`, but domtool rejects `HTTP_AUTHORIZATION=$1`. We'll need to add a custom type for the last argument of `setEnvIf` (currently using `no_spaces` which disallows the `$`). I think just `no_spaces` + `$` is adequate.

Guide for installing and maintaining a Wallabag instance. Wallabag is a self-hosted alternative to pocket that integrates well with KOReader.

July 2020: Work in progress, the instructions here will not quite yield a working installation.

1. Outstanding issues

  • Default session.save_path value does not work (PHP fails to write the file when closing, and you can't login). Had to manually patch app/config/config.yml to use "/var/lib/php/sessions"

  • API does not work because we are not passing Authorization header to fcgi php. Need to add SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1, but domtool rejects HTTP_AUTHORIZATION=$1. We'll need to add a custom type for the last argument of setEnvIf (currently using no_spaces which disallows the $). I think just no_spaces + $ is adequate.

2. Installation

2.1. Create the database

You can use either MySQL or PostgreSQL. You'll need to create a database for wallabag. The name is arbitrary but in this guide we'll be using a mysql database named wallabag (PostgreSQL support appeared to be less robust as of July 2020):

dbtool mysql createdb wallabag

2.2. Install and Run Setup Script

Wallabag runs from its source directory. Check the code out to wherever you want to store the webapps (except for ~/public_html). In this guide we'll be using ~/webapps/wallabag.

First, checkout the source code and build the application.

git clone https://github.com/wallabag/wallabag.git ~/webapps/wallabag
cd ~/webapps/wallabag
make

The Makefile will ask you several questions, the important values to set are (substitute YOU for your username, and YOUR-WALLABAG-DOMAIN for the domain you are installing wallabag on):

database_driver: mysql
database_host: mysql.hcoop.net
database_name: YOU_wallabag
database_user: YOU
database_password: YOUR MYSQL PASSWORD
domain_name: https://YOUR-WALLABAG-DOMAIN
twofactor_sender: no-reply@YOUR-WALLABAG-DOMAIN
fosuser_registration: false
from_email: no-reply@YOUR-WALLABAG-DOMAIN

Use http for your domain if you will not be using TLS.

When the Makefile gets to the database created step, it may ask you if you want to reset the database. Answer no and it will create the schema (answering yes just causes it to attempt to drop the database, which fails). If you need to reset the database entirely, you'll need to drop and re-create it using dbtool

It will then ask if you would like to setup an admin user, you generally should. Choose an appropriate username and password, and do not use the insecure defaults.

2.3. Set Permissions

The application will need to read the source tree, and write to ~/webapps/wallbag/var as your daemon user. Set the appropriate openafs acl:

fsr sa ~/webapps/wallabag/ $USER.daemon read
fsr sa ~/webapps/wallabag/var/ $USER.daemon write

2.4. Domtool Configuration

This example assumes you'll be installing it as a subdomain named wallabag of another domain. Inside of the dom container for your domain:

  web "wallabag" where
    DocumentRoot = home "webapps/wallabag/web";
    SSL = YOUR SSL CERT;
  with
    location "/" with
      rewriteCond "%{REQUEST_FILENAME}" "!-f" [];
      rewriteRule "." "app.php" [qsappend,last];
    end;
  end;

3. Upgrading

(NB: untested)

make upgrade

4. Additional Material


CategoryMemberManual

MemberManual/WebApplications/Wallabag (last edited 2020-07-19 00:26:45 by ClintonEbadi)