@@ -9,9 +9,22 @@ import json
9
9
import sys
10
10
# agent is a NethServer library which provides function to communicate with the agent
11
11
import agent
12
-
12
+ rdb = agent .redis_connect (use_replica = True )
13
+ smtp_settings = agent .get_smarthost_settings (rdb )
13
14
data = json .load (sys .stdin )
14
-
15
+ # PAPERLESS_EMAIL_HOST=<str>
16
+ # Defaults to 'localhost'.
17
+ # PAPERLESS_EMAIL_PORT=<int>
18
+ # Defaults to port 25.
19
+ # PAPERLESS_EMAIL_HOST_USER=<str>
20
+ # Defaults to ''.
21
+ # PAPERLESS_EMAIL_FROM=<str>
22
+ # Defaults to PAPERLESS_EMAIL_HOST_USER if not set.
23
+ # PAPERLESS_EMAIL_HOST_PASSWORD=<str>
24
+ # Defaults to ''.
25
+ # PAPERLESS_EMAIL_USE_TLS=<bool>
26
+ # Defaults to false.
27
+ # PAPERLESS_EMAIL_USE_SSL=<bool>
15
28
# Setup default values
16
29
paperless_name = data .get ("paperless_name" ,"paperless-ngx" )
17
30
PAPERLESS_ADMIN_USER = data .get ("PAPERLESS_ADMIN_USER" ,"paperlessadmin" )
@@ -21,52 +34,47 @@ PAPERLESS_TIME_ZONE = data.get("PAPERLESS_TIME_ZONE","America/Los_Angeles")
21
34
PAPERLESS_OCR_LANGUAGE = data .get ("PAPERLESS_OCR_LANGUAGE" ,"eng" )
22
35
PAPERLESS_COOKIE_PREFIX = data .get ("PAPERLESS_COOKIE_PREFIX" ,"paperlessngx" )
23
36
PAPERLESS_FILENAME_FORMAT = data .get ("PAPERLESS_FILENAME_FORMAT" ,"{created_year}/{correspondent}/{doc_pk}-{title}" )
24
-
37
+ # Email Settings
38
+ PAPERLESS_EMAIL_HOST = smtp_settings ['host' ]
39
+ PAPERLESS_EMAIL_PORT = smtp_settings ['port' ]
40
+ PAPERLESS_EMAIL_HOST_USER = smtp_settings ['username' ]
41
+ PAPERLESS_EMAIL_FROM = smtp_settings ['username' ]
42
+ PAPERLESS_EMAIL_HOST_PASSWORD = smtp_settings ['password' ]
43
+ PAPERLESS_EMAIL_USE_TLS = 'true' if smtp_settings ['tls_verify' ] else 'false'
44
+ PAPERLESS_EMAIL_USE_SSL = 'false' if smtp_settings ['tls_verify' ] else 'true'
25
45
# PAperless CSRF settings
26
46
host = data .get ("host" , "" )
27
47
PAPERLESS_URL = "https://" + host
28
48
49
+ paperless_config = {
50
+ "PAPERLESS_NGX_NAME" : paperless_name ,
51
+ "PAPERLESS_TIME_ZONE" : PAPERLESS_TIME_ZONE ,
52
+ "PAPERLESS_OCR_LANGUAGE" : PAPERLESS_OCR_LANGUAGE ,
53
+ "PAPERLESS_COOKIE_PREFIX" : PAPERLESS_COOKIE_PREFIX ,
54
+ "PAPERLESS_ADMIN_USER" : PAPERLESS_ADMIN_USER ,
55
+ "PAPERLESS_ADMIN_PASSWORD" : PAPERLESS_ADMIN_PASSWORD ,
56
+ "PAPERLESS_ADMIN_MAIL" : PAPERLESS_ADMIN_MAIL ,
57
+ "PAPERLESS_FILENAME_FORMAT" : PAPERLESS_FILENAME_FORMAT ,
58
+ "PAPERLESS_URL" : PAPERLESS_URL ,
59
+ "PAPERLESS_TIKA_ENABLED" : "1" ,
60
+ "PAPERLESS_TIKA_GOTENBERG_ENDPOINT" : "http://127.0.0.1:3000" ,
61
+ "PAPERLESS_TIKA_ENDPOINT" : "http://127.0.0.1:9998" ,
62
+ "PAPERLESS_EMAIL_HOST" : PAPERLESS_EMAIL_HOST ,
63
+ "PAPERLESS_EMAIL_PORT" : PAPERLESS_EMAIL_PORT ,
64
+ "PAPERLESS_EMAIL_HOST_USER" : PAPERLESS_EMAIL_HOST_USER ,
65
+ "PAPERLESS_EMAIL_FROM" : PAPERLESS_EMAIL_FROM ,
66
+ "PAPERLESS_EMAIL_HOST_PASSWORD" : PAPERLESS_EMAIL_HOST_PASSWORD ,
67
+ "PAPERLESS_EMAIL_USE_TLS" : PAPERLESS_EMAIL_USE_TLS ,
68
+ "PAPERLESS_EMAIL_USE_SSL" : PAPERLESS_EMAIL_USE_SSL ,
29
69
30
- # Db Config
31
-
32
- POSTGRES_DB = data .get ("POSTGRES_DB" ,"paperless" )
33
- POSTGRES_USER = data .get ("POSTGRES_USER" ,"paperless" )
34
- POSTGRES_PASSWORD = data .get ("POSTGRES_PASSWORD" ,"p@perle$$" )
35
-
36
- db_config = {
37
-
38
- "POSTGRES_ROOT_HOST" : "localhost" ,
39
- "POSTGRES_DATABASE" : POSTGRES_DB ,
40
- "POSTGRES_USER" : POSTGRES_USER ,
41
- "POSTGRES_PASSWORD" : POSTGRES_PASSWORD ,
42
-
43
70
}
44
- agent .write_envfile ('database.env' , db_config )
45
-
46
- # Talk with agent using file descriptor.
47
-
48
- # Setup configuration from user input.
49
- agent .set_env ("PAPERLESS_NGX_NAME" , paperless_name )
50
- agent .set_env ("PAPERLESS_TIME_ZONE" , PAPERLESS_TIME_ZONE )
51
- agent .set_env ("PAPERLESS_OCR_LANGUAGE" , PAPERLESS_OCR_LANGUAGE )
52
- agent .set_env ("PAPERLESS_COOKIE_PREFIX" , PAPERLESS_COOKIE_PREFIX )
53
- agent .set_env ("PAPERLESS_ADMIN_USER" , PAPERLESS_ADMIN_USER )
54
- agent .set_env ("PAPERLESS_ADMIN_PASSWORD" , PAPERLESS_ADMIN_PASSWORD )
55
- agent .set_env ("PAPERLESS_ADMIN_MAIL" , PAPERLESS_ADMIN_MAIL )
56
- agent .set_env ("PAPERLESS_FILENAME_FORMAT" , PAPERLESS_FILENAME_FORMAT )
57
71
58
- #paperless CSRF settings
59
- agent .set_env ("PAPERLESS_URL" , PAPERLESS_URL )
72
+ agent .write_envfile ('paperless-ngx.env' , paperless_config )
60
73
61
- # Setup tika and gotenberg configuration from user input.
62
- agent .set_env ("PAPERLESS_TIKA_ENABLED" , "1" )
63
- agent .set_env ("PAPERLESS_TIKA_GOTENBERG_ENDPOINT" , "http://127.0.0.1:3000" )
64
- agent .set_env ("PAPERLESS_TIKA_ENDPOINT" , "http://127.0.0.1:9998" )
65
74
66
75
# Setup PHP with safe defaults
67
76
agent .set_env ("PHP_ENABLE_OPCACHE" , "1" )
68
77
agent .set_env ("PHP_MEMORY_LIMIT" , "512M" )
69
- # Configure Traefik to route "/paperlessngx" path requests to the paperlessngx service
70
78
71
79
72
80
# Make sure everything is saved inside the environment file
0 commit comments