-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathconfigOptions.json
1377 lines (1377 loc) · 105 KB
/
configOptions.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"app.php": [
{
"key": "SESSION_TYPE",
"valueDefault": "PHP",
"comment": "------------\nSession Type\n------------\nSessions are how the server maintains your logged in state. Cypht supports\nstandard PHP sessions, as well as its own completely independent session\nsystem that uses memcached or a database for storage. In order to use\ndatabase sessions, the database must be correctly configured in the \"DB\nSupport\" section and the hm_user_session table must be created (see\nconfig\/database.php for more information). In order to use Memcached\nsessions, the memcached server must be correctly configured in the\n\"Memcached Support\" section. In order to use Redis session, the Redis\nserver must be configured in the \"Redis Support\" section.\nValid values for this setting:\nPHP Standard PHP session handlers\nDB Custom database based sessions\nMEM Custom Memcached based sessions\nREDIS Custom Redis based sessions\ncustom Create your own session class. See the modules\/site\/lib.php file for\n more info",
"commentHtml": "------------\nSession Type\n------------\nSessions are how the server maintains your logged in state. Cypht supports\nstandard PHP sessions, as well as its own completely independent session\nsystem that uses memcached or a database for storage. In order to use\ndatabase sessions, the database must be correctly configured in the \"DB\nSupport\" section and the hm_user_session table must be created (see\nconfig\/database.php for more information). In order to use Memcached\nsessions, the memcached server must be correctly configured in the\n\"Memcached Support\" section. In order to use Redis session, the Redis\nserver must be configured in the \"Redis Support\" section.\nValid values for this setting:\nPHP Standard PHP session handlers\nDB Custom database based sessions\nMEM Custom Memcached based sessions\nREDIS Custom Redis based sessions\ncustom Create your own session class. See the modules\/site\/lib.php file for\n more info",
"inputType": "select",
"setValues": [
{
"value": "PHP",
"description": "Standard PHP session handlers"
},
{
"value": "DB",
"description": "Custom database based sessions"
},
{
"value": "MEM",
"description": "Custom Memcached based sessions"
},
{
"value": "REDIS",
"description": "Custom Redis based sessions"
},
{
"value": "custom",
"description": "Create your own session class. See the modules\/site\/lib.php file for more info"
}
]
},
{
"key": "AUTH_TYPE",
"valueDefault": "DB",
"comment": "-------------------\nAuthentication Type\n-------------------\nThis setting defines how Cypht will authenticate your username and password\nwhen you login. If you want to use a database it must be correctly configured\nin the \"DB Support\" section and the hm_user table must be created (see\nconfig\/database.php for more information). There are 3 PHP cli scripts to\nhelp manage database users in the scripts\/ directory (create_account.php,\ndelete_account.php, and update_password.php). If you want to authenticate\nagainst an IMAP server, you must setup the imap_auth_* settings below. If\nyou want to authenticate against an LDAP server, you must setup the ldap_auth_*\nsettings. Finally, if you want to let users pick from a list of popular mail\nservices or try to auto-discover a mail system, set this to dynamic and make\nsure the dynamic_login module set is enabled in the \"Module Sets\" section of\nthis file.\nValid values for this setting:\nDB Authenticate against the database\nLDAP Authenticate against an LDAP server\nIMAP Authenticate using an IMAP server\ndynamic Let the user choose from a list, or try to auto discover the mail\nservices based on the email domain\ncustom Create your own auth class. See the modules\/site\/lib.php file for\nmore info",
"commentHtml": "-------------------\nAuthentication Type\n-------------------\nThis setting defines how Cypht will authenticate your username and password\nwhen you login. If you want to use a database it must be correctly configured\nin the \"DB Support\" section and the hm_user table must be created (see\nconfig\/database.php for more information). There are 3 PHP cli scripts to\nhelp manage database users in the scripts\/ directory (create_account.php,\ndelete_account.php, and update_password.php). If you want to authenticate\nagainst an IMAP server, you must setup the imap_auth_* settings below. If\nyou want to authenticate against an LDAP server, you must setup the ldap_auth_*\nsettings. Finally, if you want to let users pick from a list of popular mail\nservices or try to auto-discover a mail system, set this to dynamic and make\nsure the dynamic_login module set is enabled in the \"Module Sets\" section of\nthis file.\nValid values for this setting:\nDB Authenticate against the database\nLDAP Authenticate against an LDAP server\nIMAP Authenticate using an IMAP server\ndynamic Let the user choose from a list, or try to auto discover the mail\nservices based on the email domain\ncustom Create your own auth class. See the modules\/site\/lib.php file for\nmore info",
"inputType": "select",
"setValues": [
{
"value": "DB",
"description": "Authenticate against the database"
},
{
"value": "LDAP",
"description": "Authenticate against an LDAP server"
},
{
"value": "IMAP",
"description": "Authenticate using an IMAP server"
},
{
"value": "dynamic",
"description": "Let the user choose from a list, or try to auto discover the mail"
},
{
"value": "services",
"description": "based on the email domain"
},
{
"value": "custom",
"description": "Create your own auth class. See the modules\/site\/lib.php file for more info"
}
]
},
{
"key": "LDAP_AUTH_SERVER",
"valueDefault": "localhost",
"comment": "-------------------\nLDAP Authentication\n-------------------\nIf auth_type is set to LDAP, configure the LDAP server to authenticate against\nwith the following settings, otherwise these are ignored.\nThe hostname or IP address of the LDAP server to authenticate to",
"commentHtml": "-------------------\nLDAP Authentication\n-------------------\nIf auth_type is set to LDAP, configure the LDAP server to authenticate against\nwith the following settings, otherwise these are ignored.\nThe hostname or IP address of the LDAP server to authenticate to",
"inputType": "text",
"setValues": null
},
{
"key": "LDAP_AUTH_PORT",
"valueDefault": "389",
"comment": "The port the LDAP server is listening on.",
"commentHtml": "The port the LDAP server is listening on.",
"inputType": "text",
"setValues": null
},
{
"key": "LDAP_AUTH_TLS",
"valueDefault": null,
"comment": "Enable TLS\/SSL connections. Leave blank or set to false to disable. Set to\ntrue to enable TLS connections.",
"commentHtml": "Enable TLS\/SSL connections. Leave blank or set to false to disable. Set to\ntrue to enable TLS connections.",
"inputType": "checkbox",
"setValues": null
},
{
"key": "LDAP_AUTH_BASE_DN",
"valueDefault": "example,dc=com",
"comment": "The \"base dn\" of the LDAP server",
"commentHtml": "The \"base dn\" of the LDAP server",
"inputType": "text",
"setValues": null
},
{
"key": "IMAP_AUTH_NAME",
"valueDefault": "Gandi",
"comment": "-------------------\nIMAP Authentication\n-------------------\nIf auth_type is set to IMAP, configure the IMAP server to authenticate against\nwith the following settings, otherwise these are ignored.\nThis is just a label used in the UI. It can be set to anything",
"commentHtml": "-------------------\nIMAP Authentication\n-------------------\nIf auth_type is set to IMAP, configure the IMAP server to authenticate against\nwith the following settings, otherwise these are ignored.\nThis is just a label used in the UI. It can be set to anything",
"inputType": "text",
"setValues": null
},
{
"key": "IMAP_AUTH_SERVER",
"valueDefault": "mail.gandi.net",
"comment": "The hostname or IP address of the IMAP server to authenticate to",
"commentHtml": "The hostname or IP address of the IMAP server to authenticate to",
"inputType": "text",
"setValues": null
},
{
"key": "IMAP_AUTH_PORT",
"valueDefault": "993",
"comment": "The hostname or IP address of the IMAP server to authenticate to",
"commentHtml": "The hostname or IP address of the IMAP server to authenticate to",
"inputType": "text",
"setValues": null
},
{
"key": "IMAP_AUTH_TLS",
"valueDefault": "true",
"comment": "Enable TLS\/SSL connections. Leave blank or set to false to disable. Set to\ntrue to enable TLS connections. If you want to use IMAP STARTTLS, do NOT\nenable this. This is only for TLS enabled sockets (typically on port 993).",
"commentHtml": "Enable TLS\/SSL connections. Leave blank or set to false to disable. Set to\ntrue to enable TLS connections. If you want to use IMAP STARTTLS, do NOT\nenable this. This is only for TLS enabled sockets (typically on port 993).",
"inputType": "checkbox",
"setValues": null
},
{
"key": "IMAP_AUTH_SIEVE_CONF_HOST",
"valueDefault": "",
"comment": "The hostname\/IP address and port sieve is listening on. Example: example.org:4190\nKeep this blank to disable sieve filter support on login",
"commentHtml": "The hostname\/IP address and port sieve is listening on. Example: example.org:4190\nKeep this blank to disable sieve filter support on login",
"inputType": "checkbox",
"setValues": null
},
{
"key": "IMAP_AUTH_SIEVE_TLS_MODE",
"valueDefault": "true",
"comment": "this will add the tls:\nto make this work make sure you set DEFAULT_SETTING_ENABLE_SIEVE_FILTER to true",
"commentHtml": "this will add the tls:\nto make this work make sure you set DEFAULT_SETTING_ENABLE_SIEVE_FILTER to true",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SMTP_NAME",
"valueDefault": null,
"comment": "-------------------\nDefault SMTP Server\n-------------------\nYou can set a default SMTP server for all Cypht users. Authentication will be\ndone with the users login credentials, so this only makes sense if you are\nusing IMAP for authentication. Leave these values blank to disable a\ndefault SMTP server, otherwise fill in the required values below\nThis is just a label used in the UI. It can be set to anything",
"commentHtml": "-------------------\nDefault SMTP Server\n-------------------\nYou can set a default SMTP server for all Cypht users. Authentication will be\ndone with the users login credentials, so this only makes sense if you are\nusing IMAP for authentication. Leave these values blank to disable a\ndefault SMTP server, otherwise fill in the required values below\nThis is just a label used in the UI. It can be set to anything",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SMTP_SERVER",
"valueDefault": null,
"comment": "The hostname or IP address of the SMTP server",
"commentHtml": "The hostname or IP address of the SMTP server",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SMTP_PORT",
"valueDefault": null,
"comment": "The port the SMTP server is listening on.",
"commentHtml": "The port the SMTP server is listening on.",
"inputType": "number",
"setValues": null
},
{
"key": "DEFAULT_SMTP_TLS",
"valueDefault": null,
"comment": "Enable TLS\/SSL connections. Leave blank or set to false to disable. Set to\ntrue to enable TLS connections.",
"commentHtml": "Enable TLS\/SSL connections. Leave blank or set to false to disable. Set to\ntrue to enable TLS connections.",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SMTP_NO_AUTH",
"valueDefault": null,
"comment": "If your SMTP service does not require authentication, you can disable it\nby setting the following to true.",
"commentHtml": "If your SMTP service does not require authentication, you can disable it\nby setting the following to true.",
"inputType": "checkbox",
"setValues": null
},
{
"key": "USER_CONFIG_TYPE",
"valueDefault": "file",
"comment": "----------------\nSettings Storage\n----------------\nCypht supports 3 methods for saving user settings between logins. File based\nsettings, database table or custom implementation. To store settings in a\ndatabase, it must be configured in the \"DB Support\" section and the\nhm_user_settings table must be created (see config\/database.php for more\ninformation). To store settings on the filesystem, the user_settings_dir must\nbe created and the webserver software must be able to write to it. For custom\nimplementations, see Hm_User_Config_File.\nValid values for this setting:\nfile Store user settings in the filesystem\nDB Store user settings in a database\ncustom Store user settings via custom implementation. Specify class name\nafter colon, e.g. custom:Custom_User_Config",
"commentHtml": "----------------\nSettings Storage\n----------------\nCypht supports 3 methods for saving user settings between logins. File based\nsettings, database table or custom implementation. To store settings in a\ndatabase, it must be configured in the \"DB Support\" section and the\nhm_user_settings table must be created (see config\/database.php for more\ninformation). To store settings on the filesystem, the user_settings_dir must\nbe created and the webserver software must be able to write to it. For custom\nimplementations, see Hm_User_Config_File.\nValid values for this setting:\nfile Store user settings in the filesystem\nDB Store user settings in a database\ncustom Store user settings via custom implementation. Specify class name\nafter colon, e.g. custom:Custom_User_Config",
"inputType": "select",
"setValues": [
{
"value": "file",
"description": "Store user settings in the filesystem"
},
{
"value": "DB",
"description": "Store user settings in a database"
},
{
"value": "custom",
"description": "Store user settings via custom implementation. Specify class name after colon, e.g. custom:Custom_User_Config"
}
]
},
{
"key": "USER_SETTINGS_DIR",
"valueDefault": "\/var\/lib\/hm3\/users",
"comment": "-----------------\nSettings Location\n-----------------\nIf user_config_type is set to file, this must be set to an existing directory\nthat the webserver software can read and write to. If settings storage is set\nto DB, this is ignored. It should not be inside the webserver document root.",
"commentHtml": "-----------------\nSettings Location\n-----------------\nIf user_config_type is set to file, this must be set to an existing directory\nthat the webserver software can read and write to. If settings storage is set\nto DB, this is ignored. It should not be inside the webserver document root.",
"inputType": "text",
"setValues": null
},
{
"key": "ATTACHMENT_DIR",
"valueDefault": "\/var\/lib\/hm3\/attachments",
"comment": "-------------------\nAttachment Location\n-------------------\nThis must be set to an existing directory that the webserver software\ncan read and write to. It should not be inside the webserver document root.",
"commentHtml": "-------------------\nAttachment Location\n-------------------\nThis must be set to an existing directory that the webserver software\ncan read and write to. It should not be inside the webserver document root.",
"inputType": "text",
"setValues": null
},
{
"key": "DISABLE_ORIGIN_CHECK",
"valueDefault": "false",
"comment": "--------------------\nDisable origin check\n--------------------\nTo help protect against CSRF attacks, Cypht checks origin headers to confirm\nthat the source and target origin domains match. If you are using proxies this\ncould create a problem making it impossible to login. Change this to true to\ndisable the origin check.",
"commentHtml": "--------------------\nDisable origin check\n--------------------\nTo help protect against CSRF attacks, Cypht checks origin headers to confirm\nthat the source and target origin domains match. If you are using proxies this\ncould create a problem making it impossible to login. Change this to true to\ndisable the origin check.",
"inputType": "checkbox",
"setValues": null
},
{
"key": "ADMIN_USERS",
"valueDefault": null,
"comment": "-----------\nAdmin Users\n-----------\nYou can define a comma delimited list of admin users that Cypht will grant\nspecial rights to. Currently this only enables the \"create account\" link in\nthe account module set that provides a form to create a new account. This is\nonly used if the auth_type is set to DB. Leave this blank if you don't want\nto define any admin users, or are using IMAP authentication.",
"commentHtml": "-----------\nAdmin Users\n-----------\nYou can define a comma delimited list of admin users that Cypht will grant\nspecial rights to. Currently this only enables the \"create account\" link in\nthe account module set that provides a form to create a new account. This is\nonly used if the auth_type is set to DB. Leave this blank if you don't want\nto define any admin users, or are using IMAP authentication.",
"inputType": "text",
"setValues": null
},
{
"key": "COOKIE_DOMAIN",
"valueDefault": null,
"comment": "-------------\nCookie Domain\n-------------\nBy default Cypht uses the server name used in the request to determine\nthe domain name to set the cookie for. Configurations that use a reverse\nproxy might need to define the domain name used for cookies. Leave this\nblank to let Cypht automatically determine the domain. You can also use\nthe special value of \"none\" to force Cypht to NOT set the cookie domain\nproperty at all. This is not recommended unless you know what you are\ndoing!",
"commentHtml": "-------------\nCookie Domain\n-------------\nBy default Cypht uses the server name used in the request to determine\nthe domain name to set the cookie for. Configurations that use a reverse\nproxy might need to define the domain name used for cookies. Leave this\nblank to let Cypht automatically determine the domain. You can also use\nthe special value of \"none\" to force Cypht to NOT set the cookie domain\nproperty at all. This is not recommended unless you know what you are\ndoing!",
"inputType": "text",
"setValues": null
},
{
"key": "COOKIE_PATH",
"valueDefault": null,
"comment": "-----------\nCookie Path\n-----------\nBy default Cypht uses the request URI to determine the cookie path to set\nthe cookie for. Configurations that use mod_rewrite might need to define\nthe path used for cookies. E.g. \/cypht\/embedded?page=compose will set path\nto \/cypht\/embedded\/ which won't send the cookies back to the server. In that\ncase set cookie_path=\/cypht\/. Leave this blank to let Cypht automatically\ndetermine the path. You can also use the special value of \"none\" to force\nCypht to NOT set the cookie path property at all. This is not recommended\nunless you know what you are doing!",
"commentHtml": "-----------\nCookie Path\n-----------\nBy default Cypht uses the request URI to determine the cookie path to set\nthe cookie for. Configurations that use mod_rewrite might need to define\nthe path used for cookies. E.g. \/cypht\/embedded?page=compose will set path\nto \/cypht\/embedded\/ which won't send the cookies back to the server. In that\ncase set cookie_path=\/cypht\/. Leave this blank to let Cypht automatically\ndetermine the path. You can also use the special value of \"none\" to force\nCypht to NOT set the cookie path property at all. This is not recommended\nunless you know what you are doing!",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_EMAIL_DOMAIN",
"valueDefault": null,
"comment": "---------------------\nOutbound Email Domain\n---------------------\nDefault domain used for outbound email addresses when using IMAP auth and\nusers don't login with a full email address. Users can customize this with\nthe profiles module which will override this default",
"commentHtml": "---------------------\nOutbound Email Domain\n---------------------\nDefault domain used for outbound email addresses when using IMAP auth and\nusers don't login with a full email address. Users can customize this with\nthe profiles module which will override this default",
"inputType": "text",
"setValues": null
},
{
"key": "AUTO_CREATE_PROFILE",
"valueDefault": null,
"comment": "-------------------\nAuto-Create Profile\n-------------------\nWhen a user logs in and they have only 1 IMAP server and 1 SMTP server, and\nno configured profiles - enabling this option will auto-create a profile for\nthem. Email and reply-to addresses will use the default_email_domain if\nset, otherwise it will fallback to the domain Cypht is hosted on.",
"commentHtml": "-------------------\nAuto-Create Profile\n-------------------\nWhen a user logs in and they have only 1 IMAP server and 1 SMTP server, and\nno configured profiles - enabling this option will auto-create a profile for\nthem. Email and reply-to addresses will use the default_email_domain if\nset, otherwise it will fallback to the domain Cypht is hosted on.",
"inputType": "checkbox",
"setValues": null
},
{
"key": "REDIRECT_AFTER_LOGIN",
"valueDefault": null,
"comment": "--------------------\nRedirect After Login\n--------------------\nYou can login directly to any page in Cypht by going to the correct url before\nlogging in, but that is not very user-friendly. To redirect users to a url\nafter login, add the url arguments below (everything in the url after, but\nincluding, the question mark). You must use double quotes around the value\notherwise it will cause an ini parsing error. To redirect users after login\nto the combined unread view you would use:\nredirect_after_login=\"?page=message_list&list_path=unread\"",
"commentHtml": "--------------------\nRedirect After Login\n--------------------\nYou can login directly to any page in Cypht by going to the correct url before\nlogging in, but that is not very user-friendly. To redirect users to a url\nafter login, add the url arguments below (everything in the url after, but\nincluding, the question mark). You must use double quotes around the value\notherwise it will cause an ini parsing error. To redirect users after login\nto the combined unread view you would use:\nredirect_after_login=\"?page=message_list&list_path=unread\"",
"inputType": "text",
"setValues": null
},
{
"key": "APP_NAME",
"valueDefault": "Cypht",
"comment": "----------------\nApplication Name\n----------------\nThis label is used in the UI to reference the program - you can change it to\n\"Your awesome webmail\" to replace the Cypht name used in various places.",
"commentHtml": "----------------\nApplication Name\n----------------\nThis label is used in the UI to reference the program - you can change it to\n\"Your awesome webmail\" to replace the Cypht name used in various places.",
"inputType": "text",
"setValues": null
},
{
"key": "ALWAYS_MOBILE_UI",
"valueDefault": null,
"comment": "---------------\nForce Mobile UI\n---------------\nCypht will detect mobile devices and display a mobile optimized UI. If you want\nto aways use this UI regardless of device, set this to true",
"commentHtml": "---------------\nForce Mobile UI\n---------------\nCypht will detect mobile devices and display a mobile optimized UI. If you want\nto aways use this UI regardless of device, set this to true",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_LANGUAGE",
"valueDefault": "en",
"comment": "----------------\nDefault Language\n----------------\nUsers can select from available interface languages on the site settings page.\nThis sets the default for a user who has not done so. Valid values are the\nlangauge codes that have matching language definitions in the language\/ folder.",
"commentHtml": "----------------\nDefault Language\n----------------\nUsers can select from available interface languages on the site settings page.\nThis sets the default for a user who has not done so. Valid values are the\nlangauge codes that have matching language definitions in the language\/ folder.",
"inputType": "text",
"setValues": null
},
{
"key": "JS_COMPRESS",
"valueDefault": "false",
"comment": "----------------------\nJavaScript Compression\n----------------------\nWhen the configuration script is run, all JavaScript files are concatenated\nand optionally compressed. To compress the content, define a command and its\noptions below. Cypht does not come with compresson software, so you must\ninstall and configure that separately. Leave blank or set to false to disable\nexternal compression. Compression software must be able to handle ES6.\nExample:\njs_compress='uglifyjs.terser -c -m --verbose --warn'",
"commentHtml": "----------------------\nJavaScript Compression\n----------------------\nWhen the configuration script is run, all JavaScript files are concatenated\nand optionally compressed. To compress the content, define a command and its\noptions below. Cypht does not come with compresson software, so you must\ninstall and configure that separately. Leave blank or set to false to disable\nexternal compression. Compression software must be able to handle ES6.\nExample:\njs_compress='uglifyjs.terser -c -m --verbose --warn'",
"inputType": "checkbox",
"setValues": null
},
{
"key": "CSS_COMPRESS",
"valueDefault": "false",
"comment": "---------------\nCSS Compression\n---------------\nWhen the configuration script is run, all CSS files are concatenated and\noptionally compressed. To compress the content, define a command and its\noptions below. Cypht does not come with compresson software, so you must\ninstall and configure that separately. Leave blank or set to false to disable\nexternal compression.\nExample:\ncss_compress='java -jar \/usr\/local\/lib\/yuicompressor-2.4.8.jar --type css'",
"commentHtml": "---------------\nCSS Compression\n---------------\nWhen the configuration script is run, all CSS files are concatenated and\noptionally compressed. To compress the content, define a command and its\noptions below. Cypht does not come with compresson software, so you must\ninstall and configure that separately. Leave blank or set to false to disable\nexternal compression.\nExample:\ncss_compress='java -jar \/usr\/local\/lib\/yuicompressor-2.4.8.jar --type css'",
"inputType": "checkbox",
"setValues": null
},
{
"key": "ENABLE_REDIS",
"valueDefault": "true",
"comment": "----------------------\nCaching Server Support\n----------------------\nCypht can use Redis or Memcache to improve performance, as well as to store\nuser sessions. Configure Redis or Memcached below and Cypht will\nautomatically use them for caching. All data cached for a user in either\nsystem is encrypted. Currently, the feeds, and IMAP modules will use\nthe configured cache. If both Redis and Memcached are configured, Redis will\nbe used for the cache.\nIf you want to use the user session as a cache, uncomment the line below and\nset to true. THIS IS NOT RECOMMENDED. Cypht uses parallel requests to the\nserver, and using the session as a cache is likely to cause race conditions\nand integrity issues. If you are running Cypht in an \"embedded\" mode with\nonly one email source, this option is less likely to be a problem.\n'allow_session_cache' => env('ALLOW_SESSION_CACHE', false),\n'cache_class' => env('CACHE_CLASS')",
"commentHtml": "----------------------\nCaching Server Support\n----------------------\nCypht can use Redis or Memcache to improve performance, as well as to store\nuser sessions. Configure Redis or Memcached below and Cypht will\nautomatically use them for caching. All data cached for a user in either\nsystem is encrypted. Currently, the feeds, and IMAP modules will use\nthe configured cache. If both Redis and Memcached are configured, Redis will\nbe used for the cache.\nIf you want to use the user session as a cache, uncomment the line below and\nset to true. THIS IS NOT RECOMMENDED. Cypht uses parallel requests to the\nserver, and using the session as a cache is likely to cause race conditions\nand integrity issues. If you are running Cypht in an \"embedded\" mode with\nonly one email source, this option is less likely to be a problem.\n'allow_session_cache' => env('ALLOW_SESSION_CACHE', false),\n'cache_class' => env('CACHE_CLASS')",
"inputType": "checkbox",
"setValues": null
},
{
"key": "REDIS_SERVER",
"valueDefault": "127.0.0.1",
"comment": "",
"commentHtml": null,
"inputType": "text",
"setValues": null
},
{
"key": "REDIS_PORT",
"valueDefault": "6379",
"comment": "",
"commentHtml": null,
"inputType": "text",
"setValues": null
},
{
"key": "REDIS_INDEX",
"valueDefault": "1",
"comment": "",
"commentHtml": null,
"inputType": "text",
"setValues": null
},
{
"key": "REDIS_PASS",
"valueDefault": null,
"comment": "",
"commentHtml": null,
"inputType": "password",
"setValues": null
},
{
"key": "REDIS_SOCKET",
"valueDefault": "\/var\/run\/redis\/redis-server.sock",
"comment": "",
"commentHtml": null,
"inputType": "text",
"setValues": null
},
{
"key": "ENABLE_MEMCACHED",
"valueDefault": "true",
"comment": "-----------------\nMemcached Support\n-----------------\nConfigure Memcached details below to use it for caching",
"commentHtml": "-----------------\nMemcached Support\n-----------------\nConfigure Memcached details below to use it for caching",
"inputType": "checkbox",
"setValues": null
},
{
"key": "MEMCACHED_SERVER",
"valueDefault": "127.0.0.1",
"comment": "",
"commentHtml": null,
"inputType": "text",
"setValues": null
},
{
"key": "MEMCACHED_PORT",
"valueDefault": "11211",
"comment": "",
"commentHtml": null,
"inputType": "text",
"setValues": null
},
{
"key": "MEMCACHED_AUTH",
"valueDefault": "false",
"comment": "If you need SASL authentication for memcached, set the following to true\nand add the username and password to authenticate with",
"commentHtml": "If you need SASL authentication for memcached, set the following to true\nand add the username and password to authenticate with",
"inputType": "checkbox",
"setValues": null
},
{
"key": "MEMCACHED_USER",
"valueDefault": null,
"comment": "",
"commentHtml": null,
"inputType": "text",
"setValues": null
},
{
"key": "MEMCACHED_PASS",
"valueDefault": null,
"comment": "",
"commentHtml": null,
"inputType": "password",
"setValues": null
},
{
"key": "ALLOW_LONG_SESSION",
"valueDefault": "false",
"comment": "-------------------\nAllow Long Sessions\n-------------------\nCypht logins only last as long as the browser is open. Closing the browser,\nor moving to a new network, will cause you to be logged out. This setting\nprovides users with a \"stay logged in\" option during login that will set the\nsesison lifetime to a default of 30 days, and disable the IP address check.\nUSE WITH CAUTION SINCE THIS DISABLES SOME SESSION PROTECTIONS.\nSpecifically:\n- Session cookies stay active after a browser restart making them more\nsusceptible to snooping\n- The browser \"fingerprint\" was use to help protect against session hijacking\nincludes the client's IP. With this option enabled a client IP can change\nmid-session and it won't log them out",
"commentHtml": "-------------------\nAllow Long Sessions\n-------------------\nCypht logins only last as long as the browser is open. Closing the browser,\nor moving to a new network, will cause you to be logged out. This setting\nprovides users with a \"stay logged in\" option during login that will set the\nsesison lifetime to a default of 30 days, and disable the IP address check.\nUSE WITH CAUTION SINCE THIS DISABLES SOME SESSION PROTECTIONS.\nSpecifically:\n- Session cookies stay active after a browser restart making them more\nsusceptible to snooping\n- The browser \"fingerprint\" was use to help protect against session hijacking\nincludes the client's IP. With this option enabled a client IP can change\nmid-session and it won't log them out",
"inputType": "checkbox",
"setValues": null
},
{
"key": "LONG_SESSION_LIFETIME",
"valueDefault": "30",
"comment": "Set the session lifetime in days. Only applies if allow_long_session is set to\ntrue, and a user checks the box to \"stay logged in\" during login.",
"commentHtml": "Set the session lifetime in days. Only applies if allow_long_session is set to\ntrue, and a user checks the box to \"stay logged in\" during login.",
"inputType": "text",
"setValues": null
},
{
"key": "ENCRYPT_AJAX_REQUESTS",
"valueDefault": null,
"comment": "--------------------------\nBrowser Encryption Options\n--------------------------\nCypht can use the Forge JavaScript encryption library to encrypt AJAX\nresponses and data stored in browser local storage. Enabling either one of\nthese options causes the Forge JavaScript library to be included. This adds\nabout 70KB to the page size (when gzipped).\nUse AES encryption for AJAX responses. Set to true to enable, leave blank or\nset to false to disable.",
"commentHtml": "--------------------------\nBrowser Encryption Options\n--------------------------\nCypht can use the Forge JavaScript encryption library to encrypt AJAX\nresponses and data stored in browser local storage. Enabling either one of\nthese options causes the Forge JavaScript library to be included. This adds\nabout 70KB to the page size (when gzipped).\nUse AES encryption for AJAX responses. Set to true to enable, leave blank or\nset to false to disable.",
"inputType": "checkbox",
"setValues": null
},
{
"key": "ENCRYPT_LOCAL_STORAGE",
"valueDefault": null,
"comment": "Use AES encryption for data stored in the browser local storage. Set to true\nto enable, or leave blank or set to false to disable.",
"commentHtml": "Use AES encryption for data stored in the browser local storage. Set to true\nto enable, or leave blank or set to false to disable.",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DISABLE_IP_CHECK",
"valueDefault": "false",
"comment": "-----------------------\nAllow client IP changes\n-----------------------\nBy default Cypht will log you out if your client IP address changes. This is\nan extra layer of protection against session hijacking, but it's not uncommon\nfor your client IP to change. Change this to true if you want to disable this\ncheck",
"commentHtml": "-----------------------\nAllow client IP changes\n-----------------------\nBy default Cypht will log you out if your client IP address changes. This is\nan extra layer of protection against session hijacking, but it's not uncommon\nfor your client IP to change. Change this to true if you want to disable this\ncheck",
"inputType": "checkbox",
"setValues": null
},
{
"key": "ALLOW_EXTERNAL_IMAGE_SOURCES",
"valueDefault": "true",
"comment": "--------------------------\nAllow remote image sources\n--------------------------\nWARNING: Using this feature could leak information to external sources.\nBy default, Cypht will not allow external images to be loaded when viewing an\nHTML formatted email message. A Content Security Policy header limits images\nsources to \"self\" only and the message content is filtered to remove any external\nresource. If you really want the ability to view external images in an email,\nyou first need to change the following setting to true. When viewing an HTML\nformatted message, you will now have a link before the message body called \"Allow\nImages\" that will reload the message part with external images visible.",
"commentHtml": "--------------------------\nAllow remote image sources\n--------------------------\nWARNING: Using this feature could leak information to external sources.\nBy default, Cypht will not allow external images to be loaded when viewing an\nHTML formatted email message. A Content Security Policy header limits images\nsources to \"self\" only and the message content is filtered to remove any external\nresource. If you really want the ability to view external images in an email,\nyou first need to change the following setting to true. When viewing an HTML\nformatted message, you will now have a link before the message body called \"Allow\nImages\" that will reload the message part with external images visible.",
"inputType": "checkbox",
"setValues": null
},
{
"key": "SINGLE_SERVER_MODE",
"valueDefault": "false",
"comment": "------------------\nSingle server mode\n------------------\nThis setting restricts Cypht to only using a single email source (\nIMAP) and the default SMTP server defined in this file. It modifies the UI to\nremove the ability to add other email sources, and removes the password\nrestriction when saving data between logins. You must use either IMAP\nauthentication for this setting to be enforced, and auth server will be the\nsingle email source users have access to. If you enable this after users\nhave saved any settings, they will be lost (or if you disable it after they\nhave saved any settings). WARNING: USER SETTINGS SAVED TO THE SERVER WILL NOT\nBE ENCRYPTED WITH THIS ENABLED",
"commentHtml": "------------------\nSingle server mode\n------------------\nThis setting restricts Cypht to only using a single email source (\nIMAP) and the default SMTP server defined in this file. It modifies the UI to\nremove the ability to add other email sources, and removes the password\nrestriction when saving data between logins. You must use either IMAP\nauthentication for this setting to be enforced, and auth server will be the\nsingle email source users have access to. If you enable this after users\nhave saved any settings, they will be lost (or if you disable it after they\nhave saved any settings). WARNING: USER SETTINGS SAVED TO THE SERVER WILL NOT\nBE ENCRYPTED WITH THIS ENABLED",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DISABLE_EMPTY_SUPERGLOBALS",
"valueDefault": "false",
"comment": "-------------------\nIntegration options\n-------------------\nCypht does a few things to make it more secure by default, but these features\ncan make it difficult to integrate Cypht into 3rd party software. Specifically,\nCypht disables PHP \"super globals\", and sets a restrictive PHP \"open basedir\"\nsetting, tweaks PHP ini settings to increase security, and uses a browser\n\"fingerprint\" to improve session security. You can disable each with the\nfollowing options:\nDon't empty PHP super globals",
"commentHtml": "-------------------\nIntegration options\n-------------------\nCypht does a few things to make it more secure by default, but these features\ncan make it difficult to integrate Cypht into 3rd party software. Specifically,\nCypht disables PHP \"super globals\", and sets a restrictive PHP \"open basedir\"\nsetting, tweaks PHP ini settings to increase security, and uses a browser\n\"fingerprint\" to improve session security. You can disable each with the\nfollowing options:\nDon't empty PHP super globals",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DISABLE_OPEN_BASE_DIR",
"valueDefault": "false",
"comment": "Don't apply open basedir restrictions",
"commentHtml": "Don't apply open basedir restrictions",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DISABLE_INI_SETTINGS",
"valueDefault": "false",
"comment": "Don't tweak ini settings",
"commentHtml": "Don't tweak ini settings",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DISABLE_FINGERPRINT",
"valueDefault": "false",
"comment": "Don't use a browser fingerprint",
"commentHtml": "Don't use a browser fingerprint",
"inputType": "checkbox",
"setValues": null
},
{
"key": "AUTH_CLASS",
"valueDefault": null,
"comment": "You can create your own custom authentication and session classes using the\nsite module set, however you might want those classes located somewhere else\noutside of the Cypht code base. By setting session_type and auth_type to custom,\nyou can control what class is used with the following settings",
"commentHtml": "You can create your own custom authentication and session classes using the\nsite module set, however you might want those classes located somewhere else\noutside of the Cypht code base. By setting session_type and auth_type to custom,\nyou can control what class is used with the following settings",
"inputType": "text",
"setValues": null
},
{
"key": "SESSION_CLASS",
"valueDefault": null,
"comment": "",
"commentHtml": null,
"inputType": "text",
"setValues": null
},
{
"key": "CYPHT_MODULES",
"valueDefault": "core,contacts,local_contacts,feeds,imap,smtp,account,idle_timer,calendar,themes,nux,developer,history,saved_searches,advanced_search,highlights,profiles,inline_message,imap_folders,keyboard_shortcuts,tags",
"comment": "-----------------------------------------------------------------------------\nModules\n-----------------------------------------------------------------------------\n-----------\nModule Sets\n-----------\nCypht uses module sets to separate functionality in the program. Module sets\ncan be enabled and disabled independently by commenting out or uncommenting\nthe assignments below. Add a new assignment to enable your own module sets.\n----\nCore\n----\nHandles page layout, login\/logout, and the default settings pages. This set\nis required.",
"commentHtml": "-----------------------------------------------------------------------------\nModules\n-----------------------------------------------------------------------------\n-----------\nModule Sets\n-----------\nCypht uses module sets to separate functionality in the program. Module sets\ncan be enabled and disabled independently by commenting out or uncommenting\nthe assignments below. Add a new assignment to enable your own module sets.\n----\nCore\n----\nHandles page layout, login\/logout, and the default settings pages. This set\nis required.",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_NO_PASSWORD_SAVE",
"valueDefault": "false",
"comment": "----------\nAPI login\n----------",
"commentHtml": "----------\nAPI login\n----------",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_IMAP_PER_PAGE",
"valueDefault": "20",
"comment": "Number of messages per page when viewing IMAP folders\nDefaults to 20",
"commentHtml": "Number of messages per page when viewing IMAP folders\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_SIMPLE_MSG_PARTS",
"valueDefault": "false",
"comment": "Amount of IMAP message structure detail on the message view page\nDefaults to full structure",
"commentHtml": "Amount of IMAP message structure detail on the message view page\nDefaults to full structure",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_PAGINATE_LINKS",
"valueDefault": "true",
"comment": "Next and Previous emails on the message view page\nDefaults to full structure",
"commentHtml": "Next and Previous emails on the message view page\nDefaults to full structure",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_MSG_PART_ICONS",
"valueDefault": "true",
"comment": "Show icons for each IMAP message part type\nDefaults to true",
"commentHtml": "Show icons for each IMAP message part type\nDefaults to true",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_REVIEW_SENT_EMAIL",
"valueDefault": "true",
"comment": "Show the message after sending\nDefaults to true",
"commentHtml": "Show the message after sending\nDefaults to true",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_TEXT_ONLY",
"valueDefault": "false",
"comment": "Prefer text parts when viewing a message\nDefaults to false",
"commentHtml": "Prefer text parts when viewing a message\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_SENT_PER_SOURCE",
"valueDefault": "20",
"comment": "Per source max for the combined sent view\nDefaults to 20",
"commentHtml": "Per source max for the combined sent view\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_SENT_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for the combined sent view\nDefaults to 1 week",
"commentHtml": "Per source time limit for the combined sent view\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_JUNK_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for junk page\nDefaults to 1 week",
"commentHtml": "Per source time limit for junk page\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_JUNK_PER_SOURCE",
"valueDefault": "20",
"comment": "Per source number limit for junk page\nDefaults 20",
"commentHtml": "Per source number limit for junk page\nDefaults 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_TAGS_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for tags page\nDefaults to 1 week",
"commentHtml": "Per source time limit for tags page\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_TAGS_PER_SOURCE",
"valueDefault": "20",
"comment": "Per source number limit for tags page\nDefaults 20",
"commentHtml": "Per source number limit for tags page\nDefaults 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_TRASH_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for trash page\nDefaults to 1 week",
"commentHtml": "Per source time limit for trash page\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_TRASH_PER_SOURCE",
"valueDefault": "20",
"comment": "Per source number limit for trash page\nDefaults 20",
"commentHtml": "Per source number limit for trash page\nDefaults 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_DRAFT_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for draft page\nDefaults to 1 week",
"commentHtml": "Per source time limit for draft page\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_DRAFT_PER_SOURCE",
"valueDefault": "20",
"comment": "Per source number limit for draft page\nDefaults 20",
"commentHtml": "Per source number limit for draft page\nDefaults 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_SHOW_LIST_ICONS",
"valueDefault": "true",
"comment": "Display source icons in message lists\nDefaults to true",
"commentHtml": "Display source icons in message lists\nDefaults to true",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_START_PAGE",
"valueDefault": "none",
"comment": "Redirect to this page on login\nDefaults to none",
"commentHtml": "Redirect to this page on login\nDefaults to none",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_DISABLE_DELETE_PROMPT",
"valueDefault": "false",
"comment": "Don't prompt when deleting something\nDefaults to false",
"commentHtml": "Don't prompt when deleting something\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_NO_FOLDER_ICONS",
"valueDefault": "false",
"comment": "Hide icons in the folder list\nDefaults to false",
"commentHtml": "Hide icons in the folder list\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_ALL_EMAIL_PER_SOURCE",
"valueDefault": "20",
"comment": "Source max for the all email combined view\nDefaults to 20",
"commentHtml": "Source max for the all email combined view\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_ALL_EMAIL_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for the all email combined view\nDefaults to 1 week",
"commentHtml": "Per source time limit for the all email combined view\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_ALL_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for the everything combined view\nDefaults to 1 week",
"commentHtml": "Per source time limit for the everything combined view\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_ALL_PER_SOURCE",
"valueDefault": "20",
"comment": "Per source max for the everything combined view\nDefaults to 20",
"commentHtml": "Per source max for the everything combined view\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_UNREAD_PER_SOURCE",
"valueDefault": "20",
"comment": "Per source max for the unread combined view\nDefaults to 20",
"commentHtml": "Per source max for the unread combined view\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_FLAGGED_PER_SOURCE",
"valueDefault": "20",
"comment": "Per source max for the flagged combined view\nDefaults to 20",
"commentHtml": "Per source max for the flagged combined view\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_FLAGGED_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for the flagged combined view\nDefaults to 1 week",
"commentHtml": "Per source time limit for the flagged combined view\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_UNREAD_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for the unread combined view\nDefaults to 1 week",
"commentHtml": "Per source time limit for the unread combined view\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_SEARCH_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for IMAP SEARCH to find matching messages\nDefaults to 1 week",
"commentHtml": "Per source time limit for IMAP SEARCH to find matching messages\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_TIMEZONE",
"valueDefault": "UTC",
"comment": "Timezone for date displays\nDefaults to UTC",
"commentHtml": "Timezone for date displays\nDefaults to UTC",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_LIST_STYLE",
"valueDefault": "email_style",
"comment": "Message list format style\nDefaults to email client style",
"commentHtml": "Message list format style\nDefaults to email client style",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_LANGUAGE",
"valueDefault": "en",
"comment": "Interface language\nDefaults to en (English)",
"commentHtml": "Interface language\nDefaults to en (English)",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_UNREAD_EXCLUDE_FEEDS",
"valueDefault": "false",
"comment": "Hide new news feed items from the unread combined view\nDefaults to false",
"commentHtml": "Hide new news feed items from the unread combined view\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_FEED_LIMIT",
"valueDefault": "20",
"comment": "Per source max for news feeds\nDefaults to 20",
"commentHtml": "Per source max for news feeds\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_FEED_SINCE",
"valueDefault": "-1 week",
"comment": "Per source time limit for news feeds\nDefaults to 1 week",
"commentHtml": "Per source time limit for news feeds\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_SMTP_COMPOSE_TYPE",
"valueDefault": "0",
"comment": "Toggle between plain text or HTML formatted mail on the compose page\nDefaults to 0 (plain text)",
"commentHtml": "Toggle between plain text or HTML formatted mail on the compose page\nDefaults to 0 (plain text)",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_SMTP_AUTO_BCC",
"valueDefault": "false",
"comment": "BCC a copy of outbound mail to the sender\nDefaults to false",
"commentHtml": "BCC a copy of outbound mail to the sender\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_THEME",
"valueDefault": "default",
"comment": "UI theme\nDefaults to the default white one (\"White Bread\")",
"commentHtml": "UI theme\nDefaults to the default white one (\"White Bread\")",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_UNREAD_EXCLUDE_WORDPRESS",
"valueDefault": "false",
"comment": "Hide WordPress notifications from the unread combined view\nDefaults to false",
"commentHtml": "Hide WordPress notifications from the unread combined view\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_WORDPRESS_SINCE",
"valueDefault": "-1 week",
"comment": "Time limit for WordPress notifications\nDefaults to 1 week",
"commentHtml": "Time limit for WordPress notifications\nDefaults to 1 week",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_UNREAD_EXCLUDE_GITHUB",
"valueDefault": "false",
"comment": "Hide Github notifications from the unread combined view\nDefaults to false",
"commentHtml": "Hide Github notifications from the unread combined view\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_GITHUB_LIMIT",
"valueDefault": "20",
"comment": "Max per source for Github notifications\nDefaults to 20",
"commentHtml": "Max per source for Github notifications\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_GITHUB_SINCE",
"valueDefault": "-1 week",
"comment": "Max per source for Github notifications\nDefaults to 20",
"commentHtml": "Max per source for Github notifications\nDefaults to 20",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_INLINE_MESSAGE",
"valueDefault": "false",
"comment": "Display message details inline from the message list\nDefaults to false",
"commentHtml": "Display message details inline from the message list\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_INLINE_MESSAGE",
"valueDefault": "right",
"comment": "Display message style inline from the message list\nDefaults to right",
"commentHtml": "Display message style inline from the message list\nDefaults to right",
"inputType": "text",
"setValues": null
},
{
"key": "DEFAULT_SETTING_ENABLE_KEYBOARD_SHORTCUTS",
"valueDefault": "false",
"comment": "Enable keyboard shortcuts\nDefaults to false",
"commentHtml": "Enable keyboard shortcuts\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "DEFAULT_SETTING_ENABLE_SIEVE_FILTER",
"valueDefault": "false",
"comment": "Enable sieve filter\nDefaults to false",
"commentHtml": "Enable sieve filter\nDefaults to false",
"inputType": "checkbox",
"setValues": null
},
{
"key": "FANCY_LOGIN",
"valueDefault": "false",
"comment": "Fancy Login page\nUse this setting switch between the legacy login page and the fancy one",
"commentHtml": "Fancy Login page\nUse this setting switch between the legacy login page and the fancy one",
"inputType": "checkbox",
"setValues": null
},
{
"key": "JS_EXCLUDE_DEPS",
"valueDefault": "",
"comment": "",
"commentHtml": null,
"inputType": "checkbox",
"setValues": null
}
],
"database.php": [
{
"key": "DB_CONNECTION_TYPE",
"valueDefault": "host",
"comment": "-----------------------------------------------------------------------------\nDB Support\n-----------------------------------------------------------------------------\n----------------\nDatabase Support\n----------------\nCypht can use a database for 3 different purposes: authentication, sessions,\nand user settings. Each requires the following settings to be configured and\nthe correct table to be created. CREATE TABLE SQL statements for MySQL and\nPostgresql are below.\nConnection type. Can be \"host\" to connect to a hostname, or \"socket\" to\nconnect to a unix socket.",
"commentHtml": "-----------------------------------------------------------------------------\nDB Support\n-----------------------------------------------------------------------------\n----------------\nDatabase Support\n----------------\nCypht can use a database for 3 different purposes: authentication, sessions,\nand user settings. Each requires the following settings to be configured and\nthe correct table to be created. CREATE TABLE SQL statements for MySQL and\nPostgresql are below.\nConnection type. Can be \"host\" to connect to a hostname, or \"socket\" to\nconnect to a unix socket.",
"inputType": "text",
"setValues": null
},
{
"key": "DB_HOST",
"valueDefault": "127.0.0.1",
"comment": "Database host name or ip address. If db_connection_type is set to \"socket\",\nthis value is ignored",
"commentHtml": "Database host name or ip address. If db_connection_type is set to \"socket\",\nthis value is ignored",
"inputType": "text",
"setValues": null
},
{
"key": "DB_PORT",
"valueDefault": "3306",
"comment": "Database port. Only needed if your database is running on a non-standard\nport",
"commentHtml": "Database port. Only needed if your database is running on a non-standard\nport",
"inputType": "text",
"setValues": null
},
{
"key": "DB_SOCKET",
"valueDefault": "\/var\/lib\/mysqld\/mysqld.sock",
"comment": "If db_connection_type is set to \"socket\", this should be the filesystem\nlocation of the unix socket file. If db_connection_type is set to \"host\"\nthis value is ignored.",
"commentHtml": "If db_connection_type is set to \"socket\", this should be the filesystem\nlocation of the unix socket file. If db_connection_type is set to \"host\"\nthis value is ignored.",
"inputType": "text",
"setValues": null
},
{
"key": "DB_NAME",
"valueDefault": "cypht_db",
"comment": "Name of the database with the required tables",
"commentHtml": "Name of the database with the required tables",
"inputType": "text",
"setValues": null
},
{
"key": "DB_USER",
"valueDefault": "root",
"comment": "User to connect to the database with",
"commentHtml": "User to connect to the database with",
"inputType": "text",
"setValues": null
},
{
"key": "DB_PASS",
"valueDefault": null,
"comment": "Password to connect to the database with",
"commentHtml": "Password to connect to the database with",
"inputType": "password",
"setValues": null
},
{
"key": "DB_DRIVER",
"valueDefault": "mysql",
"comment": "Database type. can be any supported PDO driver ; (http:\/\/php.net\/manual\/en\/pdo.drivers.php)",
"commentHtml": "Database type. can be any supported PDO driver ; (http:\/\/php.net\/manual\/en\/pdo.drivers.php)",
"inputType": "text",
"setValues": null
}
],
"2fa.php": [
{
"key": "APP_2FA_SECRET",
"valueDefault": "",
"comment": "--------------------------------------------------------------------\nConstants used for 2 factor authentication with Google Authenticator\n--------------------------------------------------------------------\nSECURITY ALERT ! MAKE SURE THAT THIS FILE IS NOT ACCESSIBLE BY THE BROWSER !\nEnter the raw secret value (minimum 10 characters) to be used with the Google\nAuthenticator Application (or any TOTP app providing 6 digit pins). Users\nmust opt-in for 2fa on the site settings page which provides a QR barcode\nto configure Google Authenticator.\nIn order for 2fa to work, your server MUST have an accurate date and time,\notherwise the codes won't match up. NTP is the standard way to keep a server's\ntime synced: http:\/\/www.ntp.org\/",
"commentHtml": "--------------------------------------------------------------------\nConstants used for 2 factor authentication with Google Authenticator\n--------------------------------------------------------------------\nSECURITY ALERT ! MAKE SURE THAT THIS FILE IS NOT ACCESSIBLE BY THE BROWSER !\nEnter the raw secret value (minimum 10 characters) to be used with the Google\nAuthenticator Application (or any TOTP app providing 6 digit pins). Users\nmust opt-in for 2fa on the site settings page which provides a QR barcode\nto configure Google Authenticator.\nIn order for 2fa to work, your server MUST have an accurate date and time,\notherwise the codes won't match up. NTP is the standard way to keep a server's\ntime synced: http:\/\/www.ntp.org\/",
"inputType": "password",
"setValues": null