 
            Thanks Mark,
On 20/06/2020 03:53, Mark Sapiro wrote:
On 6/19/20 4:34 PM, Ruth Ivimey-Cook wrote:
I'm trying to set up mailman3 on two hosts, one of which runs core + exim, the other runs postorius (&possibly hyperkitty).
I have I think got core set up correctly, and postorius is sort of usable, but anything in the web ui that talks to core ends up with a white screen.
I think what is happening is a postorius URL ends up with the core (or perhaps no) hostname, and as there's nothing there to answer it fails.
What are your Django settings for MAILMAN_REST_API_URL, MAILMAN_REST_API_USER and MAILMAN_REST_API_PASS and do these agree with the [webservice] settings for hostname, port, use_https, admin_user and admin_pass in mailman.cfg in core and is the port open to the outside on the core machine?
greyarea-post is the mailman-core and exim server.
greyarea-web1 is the postorius and hyperkitty server.
On greyarea-web1, in django-settings.py,
 MAILMAN_REST_API_URL = '[1]http://greyarea-post:8870'
 MAILMAN_REST_API_USER = 'restadmin'
 MAILMAN_REST_API_PASS = XXXXand both the above-named hosts are also included in ALLOWED_HOSTS along with localhost.
On greyarea-post, in mailman.cfg:
 [webservice]
 admin_pass: XXXXX
 admin_user: restadmin
 api_version: 3.1
 hostname: 0.0.0.0
 port: 8870
 use_https: noThe password and username are as on web1.
 Do you see REST requests from the Postorius machine in core'smailman.log and access.log?
Yes, there are lots of requests of the form:
 [07/Jun/2020:15:00:01 +0000] "GET /3.1/lists?count=10&page=1
 HTTP/1.1" 200 470 "-" "GNU Mailman REST client v3.3.1"I made a new list using the core CLI, and as a result of navigating directly to the list archive page I get to see:
 [06/Jun/2020:23:00:02 +0000] "GET /3.1/lists/chbcdaily@ch-bc.org.uk
 HTTP/1.1" 200 365 "-" "GNU Mailman REST client v3.3.1"... but in neither case do I get a complete screen on the browser or 'follow-up' requests.
I don't have a file access.log on the greyarea-post.
On the greyarea-web1 I have mailmansuite.log with the last few lines:
 File
 "/opt/mailman3/lib/python3.6/site-packages/mailmanclient/restbase/ba
 se.py", line 74, in rest_data
     response, content = self._connection.call(self._url)
 File
 "/opt/mailman3/lib/python3.6/site-packages/mailmanclient/restbase/co
 nnection.py", line 124, in call
     'Could not connect to Mailman API: ', repr(e))
 mailmanclient.restbase.connection.MailmanConnectionError: ('Could
 not connect to Mailman API: ',
 'ConnectionError(MaxRetryError("HTTPConnectionPool(host=\'0.0.0.0\',
 port=8870): Max retries exceeded with url: /3.1/domains/ch-bc.org.uk
 (Caused by NewConnectionError(\'<urllib3.connection.HTTPConnection
 object at 0x7f5416db8518>: Failed to establish a new connection:
 [Errno 111] Connection refused\',))",),)')
 ERROR 2020-06-03 01:02:06,115 29002 django.request Service
 Unavailable: /postorius/lists/the uwsgi-error_*.log contains many lines of the form:
 api: url is
 [2]http://greyarea-post.cam.ivimey.org:8870/3.1/lists?count=10&page=
 1
 api: url is
 [3]http://greyarea-post.cam.ivimey.org:8870/3.1/lists?count=10&page=
 1My reason for thinking, in my original post, that the wrong host address is being used is that the ConnectionError above contains 0.0.0.0 in its url for /3.1/domains/... but 0.0.0.0 is only present as the listen address on the core web service and does not appear in the config for postorius.
I hope this helps,
Ruth
--
Software Manager & Engineer Tel: 01223 414180 Blog: [4]http://www.ivimey.org/blog LinkedIn: [5]http://uk.linkedin.com/in/ruthivimeycook/
References