77import os
88import json
99import sys
10- # agent is a NethServer library which provides function to communicate with the agent
1110import agent
1211
12+ # Try to parse the stdin as JSON.
13+ # If parsing fails, output everything to stderr
1314data = json .load (sys .stdin )
1415
1516# Setup default values
16-
17- # n8n CSRF settings
18- host = data .get ("host" , "" )
19- n8n_URL = "https://" + host
20-
21- # Db Config
22-
23- POSTGRES_DB = data .get ("POSTGRES_DB" ,"n8n" )
24- POSTGRES_USER = data .get ("POSTGRES_USER" ,"n8n" )
25- POSTGRES_PASSWORD = data .get ("POSTGRES_PASSWORD" ,"N@8ni0p$$" )
26- POSTGRES_NON_ROOT_USER = data .get ("POSTGRES_NON_ROOT_USER" ,"n8n" )
27- POSTGRES_NON_ROOT_PASSWORD = data .get ("POSTGRES_NON_ROOT_PASSWORD" ,"N@8ni0p$$" )
28-
29- db_config = {
30- "POSTGRES_ROOT_HOST" : "localhost" ,
31- "POSTGRES_DATABASE" : POSTGRES_DB ,
32- "POSTGRES_USER" : POSTGRES_USER ,
33- "POSTGRES_PASSWORD" : POSTGRES_PASSWORD ,
34- "POSTGRES_NON_ROOT_USER" : POSTGRES_NON_ROOT_USER ,
35- "POSTGRES_NON_ROOT_PASSWORD" : POSTGRES_NON_ROOT_PASSWORD ,
36-
17+ host = data ["host" ]
18+ h2hs = data .get ("http2https" , True )
19+
20+ # Configure Traefik route for API
21+ set_route_data = {
22+ 'instance' : os .environ ['MODULE_ID' ],
23+ 'url' : 'http://127.0.0.1:' + os .environ ["TCP_PORT" ],
24+ 'host' : host ,
25+ 'http2https' : h2hs ,
26+ 'lets_encrypt_check' : True ,
27+ 'lets_encrypt_cleanup' : True ,
3728}
38- agent .write_envfile ('database.env' , db_config )
29+ if 'lets_encrypt' in data :
30+ set_route_data ['lets_encrypt' ] = data ['lets_encrypt' ]
31+
32+ agent .set_route (set_route_data )
3933
40- # Set N8N_HOST
41- agent .set_env ("N8N_HOST" , host )
34+ # Setup Traefik
35+ agent .set_env ("TRAEFIK_HOST" , host )
36+ agent .set_env ("TRAEFIK_HTTP2HTTPS" , h2hs )
0 commit comments