|
|
|
# Varia's XPPL
|
|
|
|
|
|
|
|
The [XPUB] library living at [Varia].
|
|
|
|
|
|
|
|
> https://books.vvvvvvaria.org/
|
|
|
|
|
|
|
|
[XPUB]: http://xpub.nl/
|
|
|
|
[Varia]: https://varia.zone/
|
|
|
|
|
|
|
|
# Bork It
|
|
|
|
|
|
|
|
You'll need to run an [RQLite] database first:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ apt update && apt install -y make
|
|
|
|
$ make install-rqlite
|
|
|
|
$ make rqlited
|
|
|
|
```
|
|
|
|
|
|
|
|
Then get [Pipenv] and run the development server with:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ pipenv install --dev --three
|
|
|
|
$ pipenv run devserver
|
|
|
|
```
|
|
|
|
|
|
|
|
If you need to check the database contents, run:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ make rqlite
|
|
|
|
```
|
|
|
|
|
|
|
|
And then run `.help` for which commands are available.
|
|
|
|
|
|
|
|
[Pipenv]: https://pipenv.readthedocs.io/en/latest/install/#pragmatic-installation-of-pipenv
|
|
|
|
[RQLite]: https://github.com/rqlite/rqlite
|
|
|
|
|
|
|
|
# Test It
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ pipenv run tox
|
|
|
|
```
|
|
|
|
|
|
|
|
Refer to the [tox.ini](tox.ini) for configuration options.
|
|
|
|
|
|
|
|
# Deploy It
|
|
|
|
|
|
|
|
See [ansible/README.md](ansible/README.md) for this.
|
|
|
|
|
|
|
|
# Maintain It
|
|
|
|
|
|
|
|
The XPPL is made up of a few parts:
|
|
|
|
|
|
|
|
* The [Flask] application and it's dependencies.
|
|
|
|
* The [RQLite] database.
|
|
|
|
* The [Syncthing] integration for uploads.
|
|
|
|
* The Nginx reverse proxy.
|
|
|
|
* The Let's Encrypt web certificates.
|
|
|
|
|
|
|
|
If you know [Ansible] (it's just YAML), you can just [read the entire configuration].
|
|
|
|
|
|
|
|
On the varia.zone machine, you can check the running services with:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ sudo supervisorctl status all # check all services
|
|
|
|
$ sudo supervisorctl stop xppl:* # stop all XPPL services
|
|
|
|
$ sudo supervisorctl start xppl:* # start all XPPL services
|
|
|
|
```
|
|
|
|
|
|
|
|
The `/var/xppl/xppl/uploads` folder is managed by the Varia [Syncthing UI].
|
|
|
|
|
|
|
|
The RQLite database is located at `/var/xppl/rqlite/node.1`. No cluster is configured.
|
|
|
|
|
|
|
|
No backups are configured right now.
|
|
|
|
|
|
|
|
[Flask]: http://flask.pocoo.org/
|
|
|
|
[RQLite]: https://github.com/rqlite/rqlite
|
|
|
|
[Syncthing]: https://docs.syncthing.net/
|
|
|
|
[Syncthing UI]: https://vvvvvvaria.org/st/
|
|
|
|
[read the entire configuration]: ansible/plays/main.yml
|
|
|
|
[Ansible]: https://www.ansible.com/overview/how-ansible-works
|