annotate bin/homepageConfig @ 2051:bfee787d7b5c

straighten out proxying and nginx+vite mixing
author drewp@bigasterisk.com
date Fri, 13 May 2022 01:07:15 -0700
parents 04ed5d134973
children a415be4cfac4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1215
0d295af23c4b new nginx router
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
1 #!bin/python
0d295af23c4b new nginx router
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
2 from run_local import log
1866
3c523c71da29 pyflakes cleanups and some refactors
Drew Perttula <drewp@bigasterisk.com>
parents: 1859
diff changeset
3 from light9 import showconfig
1215
0d295af23c4b new nginx router
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
4 from light9.namespaces import L9
1859
f066d6e874db 2to3 with these fixers: all idioms set_literal
drewp@bigasterisk.com
parents: 1858
diff changeset
5 from urllib.parse import urlparse
f066d6e874db 2to3 with these fixers: all idioms set_literal
drewp@bigasterisk.com
parents: 1858
diff changeset
6 from urllib.parse import splitport
1215
0d295af23c4b new nginx router
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
7
1866
3c523c71da29 pyflakes cleanups and some refactors
Drew Perttula <drewp@bigasterisk.com>
parents: 1859
diff changeset
8 log.info('generating config')
1225
70f42f9d6e04 simplify homepageConfig. get homepage port from rdf. get rdfdb port from rdf
Drew Perttula <drewp@bigasterisk.com>
parents: 1217
diff changeset
9 graph = showconfig.getGraph()
1215
0d295af23c4b new nginx router
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
10
1225
70f42f9d6e04 simplify homepageConfig. get homepage port from rdf. get rdfdb port from rdf
Drew Perttula <drewp@bigasterisk.com>
parents: 1217
diff changeset
11 netHome = graph.value(showconfig.showUri(), L9['networking'])
1521
15f296550447 start paintServer
Drew Perttula <drewp@bigasterisk.com>
parents: 1329
diff changeset
12 webServer = graph.value(netHome, L9['webServer'])
15f296550447 start paintServer
Drew Perttula <drewp@bigasterisk.com>
parents: 1329
diff changeset
13 if not webServer:
15f296550447 start paintServer
Drew Perttula <drewp@bigasterisk.com>
parents: 1329
diff changeset
14 raise ValueError('no %r :webServer' % netHome)
1859
f066d6e874db 2to3 with these fixers: all idioms set_literal
drewp@bigasterisk.com
parents: 1858
diff changeset
15 print("listen %s;" % splitport(urlparse(webServer).netloc)[1])
1217
e703b3434dbd websocket and web cleanup
Drew Perttula <drewp@bigasterisk.com>
parents: 1215
diff changeset
16
1858
7772cc48e016 reformat all python
drewp@bigasterisk.com
parents: 1692
diff changeset
17
2051
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
18 def location(path, server, viteServer):
1907
ec6ec713c276 output escaping bug in homepage made spectrograms fail
Drew Perttula <drewp@bigasterisk.com>
parents: 1866
diff changeset
19 print(f"""
2051
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
20
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
21 location = /{path}/metrics {{
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
22 rewrite ^/{path}(/.*) $1 break;
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
23 proxy_pass {server};
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
24 }}
1217
e703b3434dbd websocket and web cleanup
Drew Perttula <drewp@bigasterisk.com>
parents: 1215
diff changeset
25
2051
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
26 location /{path}/api/ {{
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
27 # just the tail part for services
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
28 rewrite ^/{path}/api(/.*) $1 break;
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
29 proxy_pass {server};
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
30 }}
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
31 location /{path}/ {{
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
32 # vite has 'base' to deal with the /{path}/ part of the request
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
33 proxy_pass {viteServer};
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
34 }}
1215
0d295af23c4b new nginx router
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
35
2051
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
36 # vite seems to work without this old section-- hopefully other services will too!
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
37 # # for websocket
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
38 # proxy_http_version 1.1;
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
39 # proxy_set_header Upgrade $http_upgrade;
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
40 # proxy_set_header Connection "upgrade";
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
41 # proxy_set_header Host $host;
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
42
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
43 # proxy_buffering off;
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
44 """)
1312
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
45
1858
7772cc48e016 reformat all python
drewp@bigasterisk.com
parents: 1692
diff changeset
46
1312
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
47 for role, server in sorted(graph.predicate_objects(netHome)):
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
48 if not server.startswith('http') or role == L9['webServer']:
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
49 continue
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
50 path = graph.value(role, L9['urlPath'])
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
51 if not path:
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
52 continue
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
53 server = server.rstrip('/')
2051
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
54 viteServer = server.replace('820', '830') # rewrite this please
bfee787d7b5c straighten out proxying and nginx+vite mixing
drewp@bigasterisk.com
parents: 2034
diff changeset
55 location(path, server, viteServer)
2034
04ed5d134973 WIP draw prom metrics on homepage
drewp@bigasterisk.com
parents: 1907
diff changeset
56
1312
cec677a84142 homepage serve show root() dir
Drew Perttula <drewp@bigasterisk.com>
parents: 1290
diff changeset
57 showPath = showconfig.showUri().split('/', 3)[-1]
1907
ec6ec713c276 output escaping bug in homepage made spectrograms fail
Drew Perttula <drewp@bigasterisk.com>
parents: 1866
diff changeset
58 root = showconfig.root()[:-len(showPath)].decode('ascii')
ec6ec713c276 output escaping bug in homepage made spectrograms fail
Drew Perttula <drewp@bigasterisk.com>
parents: 1866
diff changeset
59 print(f"""
ec6ec713c276 output escaping bug in homepage made spectrograms fail
Drew Perttula <drewp@bigasterisk.com>
parents: 1866
diff changeset
60 location /{showPath} {{
ec6ec713c276 output escaping bug in homepage made spectrograms fail
Drew Perttula <drewp@bigasterisk.com>
parents: 1866
diff changeset
61 root {root};
ec6ec713c276 output escaping bug in homepage made spectrograms fail
Drew Perttula <drewp@bigasterisk.com>
parents: 1866
diff changeset
62 }}""")