~taiite/ellidri

ref: 43d8f0cd30b60e9a823d36371ab1c9f079b6c018 ellidri/doc/config_full.yaml -rw-r--r-- 5.8 KiB
43d8f0cd — Hubert Hirtz Update CI builds: add windows and deploy releases 7 months ago
                                                                                
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
# ellidri configuration file
#
# All values show the defaults unless explicitly noted (e.g. examples).
#
# Defaults are chosen with security and compatibility in mind.  You can safely
# let the optional settings be and only tweak their value when needed.  The only
# exceptions to this rule are "domain", which you probably want to change to
# your real domain name, and "bindings", which you probably want to be set to
# listen on all addresses with your TLS key and certs.
#
# For an example configuration file, see `config_example.yaml`.


# Whether ellidri can be started in an unsafe state.
#
# If you are using ellidri for a server on production, you want to set this to
# false and solve any problem that may arise when starting ellidri.  If you
# configure ellidri in an unsafe manner, it will display an error message and
# quit.  If you want to start ellidri anyway, set this to true; then ellidri
# will display a warning and continue.
#
# Unsafe configurations are configurations that fulfill any of the following:
# - has a plain-text or WebSocket binding on a public IP,
# - has a TLS binding with a self-signed certificate on a public IP,
#
# The definition of configuration unsafety may change over time.
unsafe: false


# Domain of the IRC server
#
# It is sent through most replies to clients as a prefix, and should be the same
# as the domain name of the server (not the IRC network).
domain: ellidri.localdomain


# Network bindings
#
# ellidri listens on these for incoming client connections.  By default, ellidri
# only listens to 127.0.0.1:6667 for plain-text connections.
#
# Example:
bindings:
    # A plain-text binding on localhost, port 6667
    - address: 127.0.0.1:6667

    # A TLS binding with the given chain of certificates and key, both must be
    # RSA or ECDSA.
    - address: 0.0.0.0:6697
      certificate: /etc/ellidri.d/fullchain.pem
      key: /etc/ellidri.d/privkey.pem

      # Should clients also provide a certificate?
      require_certificate: false


# Informations about the organization running the IRC server
#
# This information should be about the server, not the network.  It is sent to
# clients on demand.
org_name:     unspecified
org_location: unspecified
org_mail:     unspecified


# The mode for new channels
#
# This must not contain mode parameters, for simplicity (e.g.  "+o admin" is
# rejected).  All modes must be known to ellidri.  The list of known modes is:
# - i: users must be invited to join the channel
# - m: only voiced users can talk in the channel
# - n: users must join the channel to send messages to it
# - s: the channel is not be visible to users from the outside
# - t: only channel operators can set its topic
default_chan_mode: +nst


# The path to the MOTD file
#
# The Message Of The Day is sent to all new clients.  It can be changed at
# runtime with the `REHASH` message.
motd_file: /etc/motd


# IRC operator credentials
#
# Define here the name/password pairs that are accepted by the `OPER` message.
# For now all oper accounts have the same permissions, therefore it is not
# needed to make multiple of these.
#
# For example:
opers:
    - name: root
      password: A very strong password
    - name: not-root
      password: This is not root but weirdly has a stronger password???


# Server password
#
# This password will be needed for clients to be able to log on the server.
# ellidri will expect them to send it in a PASS command.  By default no password
# will be asked.
#
# For example:
password: My password can't be this cute!


# Database URL
#
# Specify the URL to the database ellidri should use for SASL.  If unset,
# ellidri will disable SASL.  While ellidri tries its best at all times to serve
# its users, it cannot reload the database once started.  Please bear with it!
#
# The format of the setting is  <driver>://<url>
#
# Supported drivers:
# - mysql
# - postgres (aliases: psql, postgresql)
# - sqlite
#
# For sqlite, the url is the path to the file.  In-memory databases are not supported.
#
# For postgres, the url must follow the key-value format specified at:
# <https://docs.rs/postgres/0.17.0/postgres/config/struct.Config.html>
#
# Simple SQLite example:
#database:
#    driver: sqlite
#    url: sqlite:///var/lib/ellidri/ellidri.db
#
# More complex example with PostgreSQL:
database:
    # The URL to the PostgreSQL instance.  See here for more details:
    # <https://docs.rs/postgres/0.17.0/postgres/config/struct.Config.html>
    url: postgres://host=/run/postgresql,localhost database=ellidri

    # The values below are optional and their default are shown.

    # Disabled by default, this is the number of *milliseconds* ellidri should
    # wait before closing an inactive connection.  You'll want to set this if
    # you are billed on usage of the database.
    idle_timeout:

    # ellidri will not make more connections to the database than this.
    max_pool_size: 10

    # ellidri will make at least this number of connections to the database.
    min_pool_size: 0

    # If a connection to a database cannot be established within this number of
    # *milliseconds*, then ellidri will stop trying to connect and write an
    # error message.
    connect_timeout: 10000


# Misc settings


# Number of worker threads
#
# Worker threads handle incoming connections and messages.  When set to 0,
# ellidri uses the number of CPU on the machine.
workers: 0


# User input limits

# Away message length limit
awaylen: 300

# Channel name length limit (including '#')
channellen: 50

# Kick message length limit
keylen: 24

# Kick message length limit
kicklen: 300

# Realname length limit
namelen: 64

# Nickname length limit
nicklen: 32

# Topic length limit
topiclen: 300

# Username length limit
userlen: 64


# Timeouts

# Login/registration timeout
#
# Number of milliseconds until the connection is closed if the client hasn't
# registered.
login_timeout: 60000