libera/#devuan-dev/ Monday, 2021-06-07

redrickJust a note here to say that I caught up on adam_free2air with the Mailman 2 reversion on backup.devuan.dev, so we can try the MM3 smoke-test.07:09
golinuxredrick: Good news!07:31
redrickContinuing some notes to adam_free2air here.  Adam, doing some quick reading.  The Web side of MM3 is Django framework Python 3 code, presenting a uWSGI layer, which is a type of network daemon and name of its characteristic binary communications protocol.  You launch that uWSGI daemon, and configure a Web server to listen on 443/80, as a reverse proxy, and on the back-end speak uwsgi binary line protocol to the uWSGI daemon.  On buster (and thus ...08:08
redrick... beowulf), nginx is recommend because it has direct support for wsgi protocol.  Apache HTTPd can also be used, but a hunch suggests we're better off with nginx.08:08
rrqtypically nginx + gunicorn .. perhaps avoid the venv setup often suggested with django .. (it's enough to maintain a single python f/w)08:12
redrickThe thing back-ends into SQL, and as you noticed the default is sqlite3, which is impliedly by far the least hassle.  Large sites would want to bite the bullet and use PostreSQL or MariaDB, instead.08:12
redrickrrq:  Roger that.  Adding that to my reading.08:12
redrickHuh.  Wasn't aware of Gunicorn (Python WSGI HTTP Server) until now.08:14
redrickMy understanding of the basic model was:  HTTP client -> nginx -> some uWSGI layer -> Python3 code.  So, Gunicorn provides that layer?08:17
rrqyes08:18
redrick<grumble> MM3 has a REST HTTP-based administrative API.  Sheesh, I'll bet it has Tower of Hanoi, too.</grumble>  ;->08:21
redrickrrq:  Found docs about the venv setup you say it may be possible to avert using Gunicorn.  https://docs.mailman3.org/en/latest/install/virtualenv.html#setup-virtualenv  (described as "Python’s mechanism to create isoated runtime environments").09:12
rrqright.. well they are separate things. "venv" is something students use so they can install their own python.09:13
redrickrrq:  FWIW, on a very quick runthrough, I see that the MM3 and Django upstream docs highlight setup to talk to uWSGI Project application container server (small implementation in C).  But Django Project does have a page about using Gunicorn (Python implementation).09:15
rrqwhichever way is best is best :)09:17
redrickI'm trying to quick-assess docs as I skim, so you're seeing quarter-informed commentary.09:17
rrqyeah I merely mentioned gunicorn as that was they way I had experienced django .. some year ago now :)09:18
redrickSo far, I've been reading only upstream docs.  Experience suggests I'll learn more when I read stuff in the packages's files written to /usr/share/doc/[blahblah].09:19
redrickrrq: I suspect I'm overinterpreting that, as the entire point of venv appears to be to create an isolated Python environment separate from the system Python env, so you can develop/test Python modules there without disturbing the system.09:43
Arachredrick: gunicorn doesn't support the uwsgi protocol. Instead, nginx is forwarding (sanitized) http requests to gunicorn and then forwards its responses back to the client.09:44
ArachAlso, virtualenv is pretty much the way to deploy projects' dependencies, unless you go with docker and install all the deps system-wide inside the container.09:49
redrickArach: Roger that.  Thanks.10:07
redrickI notice that package mailman3-web autmatically provides and enables a uWSGI daemon.10:08
adam_free2airredrick: following the kiss principle, i *strongly* suggest firstly a trial run of standard stack & config first to gain familiarity before customising (KISS principle). there is so much conflicting and so many erroneous or dated docs and forum posts on this.16:27
adam_free2airas stated in docs, venv is not required.16:28
adam_free2airdocs==my notes16:28
adam_free2airdefault install made uwsgi with apache2 just work.16:30
adam_free2airspecial note work repeating. official mm3 docs are inaccurate and will fade your curtains.16:31
adam_free2airwith a few burps as noted, debian install provides vanilla working system.16:32
adam_free2airthen select production db (unless sqlite is deemed sufficient ;).16:41
adam_free2airi do not care apache2 vs nginx but apache2 did not require gunicorn and just worked.16:42

Generated by irclog2html.py 2.17.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!