diff options
author | Jordan <me@jordan.im> | 2020-07-09 14:20:56 -0700 |
---|---|---|
committer | Jordan <me@jordan.im> | 2020-07-09 14:20:56 -0700 |
commit | ee24bacda8d9015d9d3bb7c0c8d2b7633896cf80 (patch) | |
tree | 1c43ce0031474f10e83e586d1ac98ac521cfc4d8 | |
parent | 66ccf888d37eab5d92057cfc949d15f36ea42986 (diff) | |
download | roka-ee24bacda8d9015d9d3bb7c0c8d2b7633896cf80.tar.gz roka-ee24bacda8d9015d9d3bb7c0c8d2b7633896cf80.zip |
housekeeping
-rw-r--r-- | README | 28 | ||||
-rwxr-xr-x | run.py | 3 |
2 files changed, 28 insertions, 3 deletions
@@ -6,14 +6,38 @@ iOS podcast app: https://demo.jordan.im/audiobook-rss/apple-podcasts.png installation ------------ -a) copy and populate app.cfg and uwsgi.ini (if using UWSGI) +a) copy and populate app.cfg and uwsgi.ini from examples -b) create venv, install flask and uwsgi + $ cp app.cfg.example app.cfg + $ cp uwsgi.ini.example uwsgi.ini + $ cat app.cfg + + ROOT_PATH = '/path/to/audiobooks' + USERNAME = 'username' + PASSWORD = 'password' + + $ cat uwsgi.ini + + [uwsgi] + http = 127.0.0.1:8085 + processes = 2 + threads = 4 + wsgi-file = run.py + callable = app + master = true + +b) install python dependencies flask and uwsgi + + $ pip install --user flask uwsgi c) execute rebuild.py to populate audiobook JSON cache + $ ./rebuild.py + d) execute uwsgi.sh to start the server + $ ./uwsgi.sh + design decisions ---------------- @@ -31,7 +31,6 @@ def list_books(): return 'book or file not found', 404 f_path = books[a]['files'][f]['path'] - return send_file(f_path, conditional=True) # serve up audiobook RSS feed; only audiobook hash provided @@ -41,11 +40,13 @@ def list_books(): rss = generate_rss(request, books) return Response(rss, mimetype='text/xml') + else: auth = request.authorization if not auth or not check_auth(app, auth.username, auth.password): form = {'WWW-Authenticate': 'Basic realm="o/"'} return Response('unauthorized', 401, form) + return render_template('index.html', books=books) if __name__ == '__main__': |