blob: 39c0b2316db2dbe69d32365e9dd1688de1fb2842 (
plain) (
blame)
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
|
# Which URL are we accessible at? This is used to determine the redirect URL
# and some user-accessible URLs.
url http://localhost:5555
# Should we run in production mode? This causes the Secure flag to be set on
# cookies and may come with other production-related changes in the future.
prod false
listen {
# Which protocol are we listening for? Currently only "http" is
# supported because it is difficult to configure FastCGI to work with
# WebSockets.
proto http
# Which network backend should we use? This is usually set to "tcp"
# for plain TCP, and "unix" for UNIX domain sockets.
net tcp
# What is the address we should listen at? This is usually set to
# something like ":5555" for TCP on all interfaces, and a file path for
# UNIX domain sockets.
addr 127.0.0.1:5555
# Which transport should we use? Currently only "plain" and "tls" are
# supported.
trans plain
# If "trans" is set to "tls", this block must be configured:
tls {
# Where is the file containing the TLS certificate? You should
# use a certificate that includes the entire CA chain, which
# should usually be called "fullchain.pem" for certificates
# obtained from LE.
cert /etc/letsencrypt/live/cca.runxiyu.org/fullchain.pem
# Where is the file containing the TLS private key?
key /etc/letsencrypt/live/cca.runxiyu.org/privkey.pem
}
}
db {
# What type of database should we use? Currently, only "postgres" is
# supported.
type postgres
# What is the connection string to database?
# Example: postgresql:///cca?host=/var/run/postgresql
conn postgresql:///cca?host=/var/run/postgresql
}
auth {
# What is our OAUTH2 client ID?
client e8101cb5-84a3-49d7-860b-e5a75e63219a
# What is the OAUTH 2.0 authorize endpoint?
authorize https://login.microsoftonline.com/ddd3d26c-b197-4d00-a32d-1ffd84c0c295/oauth2/v2.0/authorize
# What is the OAUTH 2.0 token endpoint?
token https://login.microsoftonline.com/ddd3d26c-b197-4d00-a32d-1ffd84c0c295/oauth2/v2.0/token
# What is the URL to the JSON Web Key Set?
jwks https://login.microsoftonline.com/common/discovery/keys
# What is the client secret? Certificates are not supported yet.
secret something
# How long, in seconds, should cookies last?
expr 604800
}
# The following block contains some tweaks for performance.
perf {
# How many arguments' space should we initially allocate for each
# message?
msg_args_cap 4
# How many bytes should we initially allocate for each argument in a
# message?
msg_bytes_cap 5
# How long should we wait to complete reading HTTP headers, before we
# time out? Note that a large value may cause the server to be
# vulnerable to Slow Loris attacks.
read_header_timeout 5
# The number propagation interval per course per connection is
# ((course count * connection count) >> usem_delay_shift_bits)
# milliseconds. You may configure it here. A smaller value (i.e. longer
# delay) could cause more latency in how the numbers update, but a
# larger value (i.e. shorter delay) could cause too much lock
# contention and degrade the system usability overall.
usem_delay_shift_bits 5
# Should we send a course's member count to a user as soon as they
# choose the course? Setting this to true may provide a better
# user experience but would have a major performance impact.
propagate_immediate true
# How long should the send queue be, for messages sequentially
# propagated through a queue, rather than usems?
senq 10
}
|