XPPL Documentation

From XPUB & Lens-Based wiki

About

XPPL is a space for potential pirate librarianship aimed at people who are studying the field of media culture, or as we like to call them: knowledge comrades. This library gathers all the books and articles floating around on PZI shelves and our hard drives and memory sticks, so that they can be shared. As a web interface, it hosts a curated catalogue of books and articles, and instances for uploading and downloading. It starts at XPUB, but can go anywhere we want it to.

See the XPPL project page for more on the concept & process.

Setting up an instance from image

What is in the image

rqlite

Git link

Documentation

Syncthing

We use Syncthing to share and sync the /uploads and /cover folder among multiple nodes of the XPPL. Files are not stored in the cloud and it allows for decentralized, read-write architecture (different from rsync which uses a master-slave relationship).

Configuration Install Syncthing on your pi / laptop from: https://syncthing.net/ Once done, you will have a config.xml file, which can be edited via terminal or through the web GUI interface. Because the pi can't access the browser GUI, you can change the config file to add the GUI port address from 127... to 0.0.0.0 served on Apache web server. Then you can look at the pi's GUI remotely from your machine's browser. This way you can check the Syncthing device ID of your pi, which you will need to exchange with all the other nodes running the XPPL. Alternatively, you can add device keys via terminal in the config file.

Looking at the config file (or on the GUI), each folder/directory you want to sync is described here in separate elements. The following attributes may be set on a folder element:

id - The folder ID, must be unique. (mandatory) label The label of a folder is a human readable and descriptive local name. May be different on each device, empty, and/or identical to other folder labels. (optional)

path - The path to the directory where the folder is stored on this device; not sent to other devices. (mandatory)

type - Controls how the folder is handled by Syncthing. The default mode is readwrite - sending local and accepting remote changes. The folders we want Syncthing to track are the /uploads and /cover folder. Once you exchange keys with the other nodes in the XPPL, you'll see these appear.


Syncthing is a nice alternative to things like Dropbox or Google Drive. It allows you to synchronise data between multiple machines, which could be your own or with colleagues. Its particularly useful because it never stores your data anywhere else but on the machines that you choose to synchronise with.

They describe it like this :

Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.

Note : it is not like Dropbox or Google Drive in the sense that you can use a public machine to access your files via the web. It is only for synchronising folders between machines. Data is always stored and access locally. It is only when there are changes, and both machines are connected to the internet (and running Syncthing) that synchronisation will occur. In the case of multiple machines sharing the same content, the reliability and speed of synchronisation is relative to how many machines are linked, and connected to the internet at the same time.


Tinc VPN

- Documentation

Import CSV

Git

Setting up an instance from scratch

To be continued


The lib.xpub.nl setup

We're not doing that

FAQ