Compare commits

..

No commits in common. "master" and "ansible-setup-and-deploy" have entirely different histories.

9 changed files with 22 additions and 31 deletions

View File

@ -26,7 +26,8 @@ Deployed on:
* Bootstrap the application via [xppl/app.py](xppl/app.py). * Bootstrap the application via [xppl/app.py](xppl/app.py).
* Added [Makefile](Makefile) targets for installing [RQLite](https://github.com/rqlite/rqlite). * Added [Makefile](Makefile) targets for installing [RQLite](https://github.com/rqlite/rqlite).
* Run [isort](https://isort.readthedocs.io/en/latest/) and [pylava](https://github.com/pylava/pylava) * Run [isort](https://isort.readthedocs.io/en/latest/) and [pylava](https://github.com/pylava/pylava)
code audit tools over the source. code audit tools over the source to use PEP 8 style, catch any erroneous
imports, unused variables etc. with some basic static analysis.
* Use a new [Hypothesis](https://web.hypothes.is/) API key. * Use a new [Hypothesis](https://web.hypothes.is/) API key.
### Fixed ### Fixed

View File

@ -7,7 +7,7 @@ The [XPUB] library living at [Varia].
[XPUB]: http://xpub.nl/ [XPUB]: http://xpub.nl/
[Varia]: https://varia.zone/ [Varia]: https://varia.zone/
# Run It Locally # Change It
Please note, the following instructions have only been tested on the Debian Stretch OS. Please note, the following instructions have only been tested on the Debian Stretch OS.
@ -26,8 +26,6 @@ $ pipenv install --dev --three
$ pipenv run devserver $ pipenv run devserver
``` ```
The local development web server will now be available.
If you need to check the database contents, run: If you need to check the database contents, run:
```bash ```bash
@ -58,11 +56,10 @@ The XPPL is made up of a few parts:
* The [Flask] application and it's dependencies. * The [Flask] application and it's dependencies.
* The [RQLite] database. * The [RQLite] database.
* The [Syncthing] integration for uploads. * The [Syncthing] integration for uploads.
* The [Nginx reverse proxy]. * The Nginx reverse proxy.
* The [Let's Encrypt web certificates]. * The Let's Encrypt web certificates.
If you know [Ansible](https://www.ansible.com/overview/how-ansible-works) (it's If you know [Ansible] (it's just YAML), you can just [read the entire configuration].
just YAML), you can just [read the entire configuration].
On the varia.zone machine, you can check the running services with: On the varia.zone machine, you can check the running services with:
@ -88,7 +85,6 @@ No backups are configured right now.
[Flask]: http://flask.pocoo.org/ [Flask]: http://flask.pocoo.org/
[RQLite]: https://github.com/rqlite/rqlite [RQLite]: https://github.com/rqlite/rqlite
[Syncthing]: https://docs.syncthing.net/ [Syncthing]: https://docs.syncthing.net/
[Nginx reverse proxy]: https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
[Let's Encrypt web certificates]: https://certbot.eff.org/
[Syncthing UI]: https://vvvvvvaria.org/st/ [Syncthing UI]: https://vvvvvvaria.org/st/
[read the entire configuration]: ansible/plays/setup.yml [read the entire configuration]: ansible/plays/main.yml
[Ansible]: https://www.ansible.com/overview/how-ansible-works

View File

@ -17,11 +17,11 @@ $ sudo apt install -y ansible
## Setup a New XPPL ## Setup a New XPPL
```bash ```bash
$ ansible-playbook --limit varia.zone --ask-become-pass plays/setup.yml $ ansible-playbook --limit varia-zone --ask-become-pass plays/setup.yml
``` ```
## Deploy a New XPPL Version ## Deploy a New XPPL Version
```bash ```bash
$ ansible-playbook --limit varia.zone --ask-become-pass plays/deploy.yml $ ansible-playbook --limit varia-zone --ask-become-pass plays/deploy.yml
``` ```

View File

@ -1,2 +1,2 @@
[all] [managed]
varia.zone ansible_ssh_port=12345 varia.zone ansible_ssh_port=12345

View File

@ -1,9 +1,6 @@
--- ---
# Just deploy a new version of the the XPPL. - hosts: managed
# Depends on setup.yml being ran first to set things up.
- hosts: all
pre_tasks: pre_tasks:
- name: Shutdown the running XPPL for the deployment. - name: Shutdown the running XPPL for the deployment.
become: true become: true
@ -20,4 +17,4 @@
become: true become: true
supervisorctl: supervisorctl:
name: 'xppl:' name: 'xppl:'
state: started state: stopped

View File

@ -1,9 +1,6 @@
--- ---
# Setup all necessary infrastructure for the project. - hosts: managed
# Install the project and get it running under supervisor.
- hosts: all
roles: roles:
- role: perms # Setup users and groups - role: perms # Setup users and groups
- role: git # Clone the project source - role: git # Clone the project source

View File

@ -6,7 +6,7 @@ from flask import request
def get_annotations(): def get_annotations():
# TODO(decentral1se): remove this from the source # TODO(decentral1se): remove this from the source
KEY = "6879-n8AksBoSB7kYoQ3eEwzpEr3nFQEmSp3XN-0PcKL_Sik" KEY = "6879-H5GbA2KyFIeEUM1BubjVTLP8yM3GMyHgOAjjNe_GBxY"
# a dictionary containing necessary http headers # a dictionary containing necessary http headers
headers = { headers = {
@ -15,7 +15,7 @@ def get_annotations():
"Authorization": "Bearer %s" % KEY "Authorization": "Bearer %s" % KEY
} }
base_url = "https://hypothes.is/api/search?user=xpub@hypothes.is" base_url = "https://hypothes.is/api/search?user=varia_annotator@hypothes.is"
search_url = "".join([base_url]) search_url = "".join([base_url])
@ -45,7 +45,7 @@ def get_annot_results(annot, name):
data = { data = {
'text': item['text'], 'text': item['text'],
'extract': item['target'][0]['selector'][2]['exact'], 'extract': item['target'][0]['selector'][2]['exact'],
'title': item['uri'][37:], 'url': item['uri'] 'title': item['document']['title'], 'url': item['uri']
} }
res.append(data) res.append(data)
else: else:
@ -54,7 +54,7 @@ def get_annot_results(annot, name):
data = { data = {
'text': item['text'], 'text': item['text'],
'extract': item['target'][0]['selector'][1]['exact'], 'extract': item['target'][0]['selector'][1]['exact'],
'title': item['uri'][37:], 'url': item['uri'] 'title': item['document']['title'], 'url': item['uri']
} }
res.append(data) res.append(data)
return res return res
@ -71,7 +71,7 @@ def get_annot_book(annot, name):
data = { data = {
'text': item['text'], 'text': item['text'],
'extract': item['target'][0]['selector'][2]['exact'], 'extract': item['target'][0]['selector'][2]['exact'],
'title': item['uri'][37:], 'url': item['uri'] 'title': item['document']['title'], 'url': item['uri']
} }
res.append(data) res.append(data)
else: else:
@ -80,7 +80,7 @@ def get_annot_book(annot, name):
data = { data = {
'text': item['text'], 'text': item['text'],
'extract': item['target'][0]['selector'][1]['exact'], 'extract': item['target'][0]['selector'][1]['exact'],
'title': item['uri'][37:], 'url': item['uri'] 'title': item['document']['title'], 'url': item['uri']
} }
res.append(data) res.append(data)
return res return res

View File

@ -11,7 +11,7 @@
{%for book in books%} {%for book in books%}
{%if book.file == row.uri%} {%if book.file == row.uri%}
<p align="right" style="font-family:archivo narrow;font-size:10px;">Book</p> <p align="right" style="font-family:archivo narrow;font-size:10px;">Book</p>
<a href="books/{{book.id}}"><p align="right" style="font-family:archivo narrow;font-size:18px;">{{book.file}}</p></a><br> <a href="books/{{book.id}}"><p align="right" style="font-family:archivo narrow;font-size:18px;">{{book.title}}</p></a><br>
{% endif %} {% endif %}
{% endfor %} {% endfor %}

View File

@ -19,7 +19,7 @@
{% for book in stack.books %} {% for book in stack.books %}
{% if loop.length >= 5 %} {% if loop.length >= 5 %}
{% if loop.index == 6 %} {% if loop.index == 6 %}
<p style='color:red;'>Your stack is getting a little big. Proceed.</p> <p style='color:red;'>Your stack is getting a little too big. Are these next books really relevant?</p>
<br> <br>
<br> <br>
{% endif %} {% endif %}