-
Notifications
You must be signed in to change notification settings - Fork 5
/
config.toml.example
163 lines (142 loc) · 6.11 KB
/
config.toml.example
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
# Point to the root certificate that was used
# by the PKI generation script to sign all other
# node certificates.
RootCertLoc = "/very/complicated/and/long/path/to/your/root-cert.pem"
[IMAP]
# What the system should send on an incoming new
# IMAP connection.
Greeting = "Pluto ready."
# How hierarchy in mailboxes will be indicated.
# Currently, we assume it to be '.' (dot).
HierarchySeparator = "."
[Distributor]
# Name this node uniquely(!) and most fittingly to your
# deployment, e.g. including its data center location.
Name = "eu-west-distributor"
# PublicMailAddr denotes the Internet-facing address
# this pluto node is supposed to be reachable via.
PublicMailAddr = "127.0.0.1:993"
# ListenMailAddr in turn is used by this pluto process to
# bind locally to and listen for incoming requests.
ListenMailAddr = "127.0.0.1:993"
# Define where Prometheus metrics are exposed on this node.
PrometheusAddr = "127.0.0.1:9001"
# Use these locations to provide your externally
# signed certificates so that normal clients will
# be able to verify them via their system's ca list.
PublicCertLoc = "/very/complicated/and/long/path/to/your/public-distributor-cert.pem"
PublicKeyLoc = "/very/complicated/and/long/path/to/your/public-distributor-key.pem"
# Use these locations to specify the paths to pluto's
# internally-only used certificates built with the
# script dedicated to setting up the PKI.
InternalCertLoc = "/very/complicated/and/long/path/to/your/internal-distributor-cert.pem"
InternalKeyLoc = "/very/complicated/and/long/path/to/your/internal-distributor-key.pem"
AuthAdapter = "AuthPostgres"
[Distributor.AuthPostgres]
IP = "127.0.0.1"
Port = 5432
Database = "pluto"
User = "pluto"
Password = "YourSuperSecurePasswordHere12345"
UseTLS = true
[Workers]
[Workers.worker-1]
# Name this node uniquely(!) and most fittingly to your
# deployment, e.g. including its data center location.
Name = "eu-west-worker-1"
# Public and local address for handling mail connections.
PublicMailAddr = "127.0.0.1:20001"
ListenMailAddr = "127.0.0.1:20001"
# Public and local address for CRDT synchronization.
PublicSyncAddr = "127.0.0.1:30001"
ListenSyncAddr = "127.0.0.1:30001"
# Define where Prometheus metrics are exposed on this node.
PrometheusAddr = "127.0.0.1:9001"
CertLoc = "/very/complicated/and/long/path/to/your/internal-worker-1-cert.pem"
KeyLoc = "/very/complicated/and/long/path/to/your/internal-worker-1-key.pem"
# The first ID of the user database table entry
# that this worker node is responsible for.
UserStart = 1
# The last ID of the user database table entry that
# this worker node is responsible for.
UserEnd = 10
# Point MaildirRoot to the file system location where
# all Maildirs of the worker's users are located in.
MaildirRoot = "/for/example/home/worker-1/Maildir/"
# Location of CRDT representations of Maildirs to be
# saved on local hard disk.
CRDTLayerRoot = "/for/example/home/worker-1/crdt-layer/"
# Define CRDT synchronization networks for this node.
[Workers.worker-1.Peers.subnet-1]
us-west-worker-1 = "127.0.0.1:30101"
asia-south-worker-1 = "127.0.0.1:30201"
storage = "127.0.0.1:31000"
[Workers.worker-2]
# Name this node uniquely(!) and most fittingly to your
# deployment, e.g. including its data center location.
Name = "eu-west-worker-2"
PublicMailAddr = "127.0.0.1:20002"
ListenMailAddr = "127.0.0.1:20002"
PublicSyncAddr = "127.0.0.1:30002"
ListenSyncAddr = "127.0.0.1:30002"
PrometheusAddr = "127.0.0.1:9001"
CertLoc = "/very/complicated/and/long/path/to/your/internal-worker-2-cert.pem"
KeyLoc = "/very/complicated/and/long/path/to/your/internal-worker-2-key.pem"
UserStart = 11
UserEnd = 20
MaildirRoot = "/for/example/var/mail/Maildir/"
CRDTLayerRoot = "/for/example/var/crdt-layer/"
[Workers.worker-2.Peers.subnet-2]
us-west-worker-2 = "127.0.0.1:30102"
asia-south-worker-2 = "127.0.0.1:30202"
storage = "127.0.0.1:32000"
[Workers.worker-3]
# Name this node uniquely(!) and most fittingly to your
# deployment, e.g. including its data center location.
Name = "eu-west-worker-3"
PublicMailAddr = "127.0.0.1:20003"
ListenMailAddr = "127.0.0.1:20003"
PublicSyncAddr = "127.0.0.1:30003"
ListenSyncAddr = "127.0.0.1:30003"
PrometheusAddr = "127.0.0.1:9001"
CertLoc = "/very/complicated/and/long/path/to/your/internal-worker-3-cert.pem"
KeyLoc = "/very/complicated/and/long/path/to/your/internal-worker-3-key.pem"
UserStart = 21
UserEnd = 30
MaildirRoot = "/for/example/some/very/unique/path/Maildir/"
CRDTLayerRoot = "/for/example/some/very/unique/path/crdt-layer/"
[Workers.worker-3.Peers.subnet-3]
us-west-worker-3 = "127.0.0.1:30103"
asia-south-worker-3 = "127.0.0.1:30203"
storage = "127.0.0.1:33000"
[Storage]
# Name this node uniquely(!) and most fittingly to your deployment.
Name = "storage"
PublicMailAddr = "127.0.0.1:21000"
ListenMailAddr = "127.0.0.1:21000"
PrometheusAddr = "127.0.0.1:9001"
CertLoc = "/very/complicated/and/long/path/to/your/internal-storage-cert.pem"
KeyLoc = "/very/complicated/and/long/path/to/your/internal-storage-key.pem"
MaildirRoot = "/for/example/some/very/unique/path/Maildir/"
CRDTLayerRoot = "/for/example/some/very/unique/path/crdt-layer/"
[Storage.SyncAddrs.subnet-1]
Public = "127.0.0.1:31000"
Listen = "127.0.0.1:31000"
[Storage.Peers.subnet-1]
eu-west-worker-1 = "127.0.0.1:30001"
us-west-worker-1 = "127.0.0.1:30101"
asia-south-worker-1 = "127.0.0.1:30201"
[Storage.SyncAddrs.subnet-2]
Public = "127.0.0.1:32000"
Listen = "127.0.0.1:32000"
[Storage.Peers.subnet-2]
eu-west-worker-2 = "127.0.0.1:30002"
us-west-worker-2 = "127.0.0.1:30102"
asia-south-worker-2 = "127.0.0.1:30202"
[Storage.SyncAddrs.subnet-3]
Public = "127.0.0.1:33000"
Listen = "127.0.0.1:33000"
[Storage.Peers.subnet-3]
eu-west-worker-3 = "127.0.0.1:30003"
us-west-worker-3 = "127.0.0.1:30103"
asia-south-worker-3 = "127.0.0.1:30203"