As of today, the architecture has changed, and we decided a couple of weekends back to split the presentation/front-end from the back end. Functionally, that means developing and deploying a standalone API in order to facilitate a full separation of concerns.
(Which, if you recall the last attempt at V2, was the original design: we went all the way around and came back to where we started, essentially).
As of a few moments ago, the new API service is up and running on the following stack:
- Initialization: systemd
- Webserver: Gunicorn (serving a dummy wsgi endpoint)
- Routes and requests: Flask
Special shout out to this article, which was my main go-to through most of this stretch of the re-architecting and deployment (note that the article uses upstart, which I did not do, because upstart is deprecated: I used this great Ubuntu wiki page for guidance on transposing from upstart to systemd.)
The Gunicorn documentation is also excellent and extremely accessible.
At any rate, the v2 codebase so far is available on GitHub, if you want to take a look.