269 lines
7.1 KiB
Plaintext
269 lines
7.1 KiB
Plaintext
# The server object defines the server information parameters.
|
|
server:
|
|
# name - the server name
|
|
name: "irc.localhost"
|
|
|
|
# description - the description of the server on the network
|
|
description: "Test server for biboumi"
|
|
|
|
# network - the NETWORK= name in 005 for rfc1459 clients
|
|
network: "irc.localhost"
|
|
|
|
# recvq_len - the maximum number of lines that can be in a client's recvq
|
|
recvq_len: 20
|
|
|
|
# motd - the motd content (will later be file)
|
|
motd:
|
|
- "Default MOTD"
|
|
|
|
|
|
# The clients object defines client parameters
|
|
clients:
|
|
# ping_frequency - client ping frequency
|
|
ping_frequency:
|
|
minutes: 1
|
|
|
|
# ping_timeout - ping timeout length
|
|
ping_timeout:
|
|
minutes: 2
|
|
|
|
|
|
# The data object defines the data store parameters
|
|
data:
|
|
|
|
## JSON should only be considered for testing
|
|
# format - data store type
|
|
format: "json"
|
|
|
|
# filename - data store filename
|
|
filename: ".mammon.data.json"
|
|
|
|
# save_frequency - save the database every this amount of time
|
|
save_frequency:
|
|
minutes: 5
|
|
|
|
|
|
# The listeners object is a list of listeners.
|
|
listeners:
|
|
- {"host": "0.0.0.0", "port": 6667, "ssl": false, "certfile": "~/workspace/biboumi/cert.pem", "keyfile": "~/workspace/biboumi/key.pem", }
|
|
|
|
|
|
# The logs section is a list of logs.
|
|
logs:
|
|
- {
|
|
# path - the path of the logfile
|
|
"path": "mammond.log",
|
|
|
|
# level - the log level of the file
|
|
"level": "debug"
|
|
}
|
|
|
|
|
|
# Limits define maximum lengths for various commands and objects
|
|
# to remove a limit, simply comment it out
|
|
limits:
|
|
# user - maximum length of usernames
|
|
user: 10
|
|
|
|
# nick - maximum length of nicknames
|
|
nick: 50
|
|
|
|
# channel - maximum length of channel names
|
|
channel: 200
|
|
|
|
# topic - maximum length of channel topics
|
|
topic: 400
|
|
|
|
# line - maximum length of lines in and out
|
|
line: 2048
|
|
|
|
|
|
# The register object defines registration information
|
|
register:
|
|
|
|
# verify_timeout - length of time a user has to verify their newly-created
|
|
# account before it can be re-registered
|
|
verify_timeout:
|
|
days: 5
|
|
|
|
# enabled_callbacks - callbacks that we allow
|
|
enabled_callbacks:
|
|
# - mailto
|
|
# - none # no verification required, will instantly register successfully
|
|
|
|
# callbacks - types and details for various callback methods
|
|
callbacks:
|
|
|
|
# mailto - email using sendmail
|
|
mailto:
|
|
# from - address our messages get sent from
|
|
from: mammon@example.com
|
|
|
|
# sendmail - location of the sendmail binary
|
|
sendmail: /usr/sbin/sendmail
|
|
|
|
# verify_message_subject - subject of the verify message
|
|
verify_message_subject: "{network_name} Account Registration"
|
|
|
|
# verify_message - message sent to users to verify their account
|
|
verify_message: |
|
|
Hi,
|
|
|
|
You have requested to register the account {account}.
|
|
|
|
Your verification code is {auth_code}
|
|
|
|
Please type "/quote REG VERIFY {account} {auth_code}" to complete registration
|
|
|
|
Thank you,
|
|
{network_name}
|
|
# Roles define the capabilities an oper may have, as well as role-specific
|
|
# metadata.
|
|
|
|
# mammon capability names:
|
|
# oper:local_kill allows /KILLing local users
|
|
# oper:global_kill allows /KILLing local and remote users
|
|
# oper:routing allows remote SQUIT and CONNECT
|
|
# oper:kline allows KLINE and DLINE
|
|
# oper:unkline allows UNKLINE and UNDLINE
|
|
# oper:remote_ban allows remote klines
|
|
# oper:rehash allows REHASH of server config
|
|
# oper:die allows DIE and RESTART
|
|
|
|
roles:
|
|
# name - the name of the privilege set
|
|
"local_op":
|
|
# capabilities - a list of qualified capability names
|
|
capabilities:
|
|
- oper:local_kill
|
|
- oper:kline
|
|
- oper:unkline
|
|
- metadata:set_local
|
|
|
|
# metakeys_get - metadata keys this role can view
|
|
metakeys_get:
|
|
# - spammer_probability
|
|
|
|
# title - metadata identifying the specific role
|
|
title: "IRC Operator"
|
|
|
|
# name - the name of the privilege set
|
|
"global_op":
|
|
# extends - inherets this role's capabilities
|
|
extends: "local_op"
|
|
|
|
# capabilities - a list of qualified capability names
|
|
capabilities:
|
|
- oper:global_kill
|
|
- oper:remote_ban
|
|
- metadata:set_global
|
|
|
|
# title - metadata identifying the specific role
|
|
title: "IRC Operator"
|
|
|
|
# name - the name of the privilege set
|
|
"network_admin":
|
|
# capabilities - a list of qualified capability names
|
|
capabilities:
|
|
- oper:global_kill
|
|
- oper:routing
|
|
|
|
# title - metadata identifying the specific role
|
|
title: "Network Administrator"
|
|
|
|
# name - the name of the privilege set
|
|
"server_admin":
|
|
# extends - inherets this role's capabilities
|
|
extends: "local_op"
|
|
|
|
# capabilities - a list of qualified capability names
|
|
capabilities:
|
|
- oper:rehash
|
|
- oper:die
|
|
|
|
# title - metadata identifying the specific role
|
|
title: "Server Administrator"
|
|
|
|
# example metadata-specific roles
|
|
# name - the name of the privilege set
|
|
"spam_detection_bot":
|
|
# capabilities - a list of qualified capability names
|
|
capabilities:
|
|
- metadata:set_global
|
|
|
|
# metakeys_access - metadata keys this role can view and set
|
|
metakeys_access:
|
|
- spammer_probability
|
|
|
|
# title - metadata identifying the specific role
|
|
title: "Spam Detection Bot"
|
|
|
|
|
|
# Metadata defines the metadata users are allowed to set for themselves
|
|
metadata:
|
|
# limit - max number of metadata each target is allowed to have
|
|
# comment out to remove limit
|
|
limit: 20
|
|
|
|
# whitelist - if defined, a list of lowercase keys that are checked when users set data
|
|
whitelist:
|
|
- avatar
|
|
- info
|
|
- source
|
|
- url
|
|
- version
|
|
|
|
# restricted_keys - keys that unprived users cannot see / edit, and require a
|
|
# special entry in a ROLE to see / edit
|
|
restricted_keys:
|
|
- away
|
|
# - spammer_probability
|
|
|
|
|
|
# Monitor defines the monitoring users are allowed to do on other users
|
|
monitor:
|
|
# limit - max number of 'monitors' each target is allowed to have
|
|
# comment out to remove limit
|
|
limit: 20
|
|
|
|
|
|
# Operator credentials allow a user to transition from a typical user role
|
|
# to a privileged role.
|
|
opers:
|
|
# name - the name of the operator
|
|
"nobody":
|
|
# password - the plaintext oper password
|
|
password: "nothing"
|
|
|
|
# hostmask - if defined, the hostmask the oper must connect from
|
|
hostmask: "*@localhost"
|
|
|
|
# role - the role that the credentials allow transition to
|
|
role: "local_op"
|
|
|
|
# name - the name of the operator
|
|
"somebody":
|
|
# password - the hashed oper password
|
|
# created by: mammond --mkpasswd
|
|
password: "$6$rounds=100000$KkEHFBhWHV3BHCCS$YuOdlikJHdeIv2YpwvyLAtYCslDlsnUUnrfeKJiBh4SeVhkSU6pQqHWWDjr6lnalkkf1KLDD1wgSQH5AObILQ1"
|
|
|
|
# hash - the hashing algorithm to use
|
|
hash: "sha512_crypt"
|
|
|
|
# hostmask - if defined, the hostmask the oper must connect from
|
|
hostmask: "somebody!*@localhost"
|
|
|
|
# role - the role that the credentials allow transition to
|
|
role: "local_op"
|
|
|
|
|
|
# The extensions section is a list of extension modules to load.
|
|
extensions:
|
|
- mammon.ext.rfc1459.42
|
|
- mammon.ext.rfc1459.ident
|
|
- mammon.ext.ircv3.account_notify
|
|
- mammon.ext.ircv3.server_time
|
|
- mammon.ext.ircv3.echo_message
|
|
- mammon.ext.ircv3.register
|
|
- mammon.ext.ircv3.sasl
|
|
- mammon.ext.misc.nopost |