mirror of
https://github.com/jlu5/PyLink.git
synced 2024-12-25 12:12:53 +01:00
4a6f94f8fc
- Allow ulines to join with modes (this status gets forwarded as part of relay_joins()), but *ignore* this status when checking for claim
- For U-lined clients to set modes properly and kick, they be on the claim list
- Allow ulines to set modes on ulined clients including itself. These changes are ignored: not forwarded, not bounced, but just left there.
- Ignore uline attempts to set non-list modes - this is mostly for compatibility with Anope's DEFCON, as it would otherwise lead to a mode flood.
This requires commit 9113b34b46
, i.e. the get_server() update.
769 lines
34 KiB
YAML
769 lines
34 KiB
YAML
# This is a sample configuration file for PyLink. You'll likely want to rename it to pylink.yml
|
|
# and begin your configuration there.
|
|
|
|
# Note: lines starting with a "#" are comments and will be ignored.
|
|
# Note 2: Use SPACES, NOT tabs to indent, or you will get parser errors on start!
|
|
|
|
# Defines general settings for the PyLink server. Prior to PyLink 1.2, this configuration block
|
|
# was named "bot:".
|
|
pylink:
|
|
# Sets nick, user/ident, and real name.
|
|
nick: PyLink
|
|
ident: pylink
|
|
realname: PyLink Service Client
|
|
|
|
# Server description (shown in /links, /whois, etc.)
|
|
serverdesc: PyLink Server
|
|
|
|
# Sets the fantasy command prefix for the main PyLink bot. To configure fantasy prefixes for
|
|
# other service bots, add or modify the "prefix:" option in the configuration section of each
|
|
# plugin. (see the "games:" block for an example)
|
|
# Note: prior to PyLink 1.2, defining a prefix here made it global for all service bots. This
|
|
# was removed because it called all bots in a channel at once (even if they have conflicting
|
|
# commands), which usually leads to one successful reply and a string of "Command not found"
|
|
# errors.
|
|
# Note 2: this option REPLACES the deprecated "prefixes:" option from PyLink 1.1 and earlier.
|
|
prefix: "&"
|
|
|
|
# Determines whether PyLink service bots will respond to commands prefixed with their nick
|
|
# (requires the fantasy plugin). Prior to PyLink 1.2, this option was named "respondtonick";
|
|
# it was renamed for consistency. This defaults to false.
|
|
#respond_to_nick: true
|
|
|
|
# Determines whether PyLink service clients should protect themselves from
|
|
# kicks, kills, etc. using IRCd-side servprotect modes. For this to work
|
|
# properly, this usually requires that PyLink be U-Lined. This defaults to
|
|
# False.
|
|
#protect_services: false
|
|
|
|
# Determines whether services should default to sending command responses as private notices,
|
|
# even if the command was called in a channel. This defaults to False.
|
|
#prefer_private_replies: false
|
|
|
|
# Determines whether spawning additional services for bots (e.g. Automode, Games) should be
|
|
# enabled. This defaults to True, unless a network's protocol module doesn't support spawning
|
|
# extra service bots.
|
|
#spawn_services: true
|
|
|
|
# Defines extra directories to look up plugins and protocol modules in.
|
|
# Environment variables (e.g. $HOME) and home folders (~) are expanded here, in that order.
|
|
#plugin_dirs: ["~/my-plugins", "~/pylink-contrib-modules/plugins"]
|
|
#protocol_dirs: ["~/pylink-contrib-modules/protocols"]
|
|
|
|
# Determines whether we should show unknown command errors for service bots. Defaults to True.
|
|
#show_unknown_commands: true
|
|
|
|
# Determines whether hideoper modes should be respected in WHOIS replies.
|
|
# Defaults to true if not specified.
|
|
#whois_use_hideoper: true
|
|
|
|
# Determines whether extended WHOIS replies should be sent to users marked as a
|
|
# bot (usually with umode +B). For better security (i.e. with bots that track services
|
|
# accounts for authentication), it is recommended to leave this off.
|
|
#whois_show_extensions_to_bots: false
|
|
|
|
# Determines whether PyLink should return its time of initial connection when replying to WHOIS
|
|
# for service bots. This defaults to true if not set.
|
|
#whois_show_startup_time: true
|
|
|
|
# Determines how long plugins should wait (in seconds) before flushing their
|
|
# databases to disk. Defaults to 300 seconds. Changes here require a reload
|
|
# of all database-enabled plugins to take effect.
|
|
#save_delay: 300
|
|
|
|
login:
|
|
# NOTE: for users migrating from PyLink < 1.1, the old login:user/login:password settings
|
|
# have been deprecated. We strongly recommend migrating to the new "accounts:" block below, as
|
|
# it supports multiple accounts, hashed passwords, and allows more flexibility (accounts no
|
|
# longer imply admin access).
|
|
|
|
# IMPORTANT: If you're switching from login:user/login:password, you MUST ADD YOURSELF to a
|
|
# "permissions:" block like the one below, or you will lose IRC administration access to your
|
|
# PyLink daemon!
|
|
accounts:
|
|
# Creates an account with username "user1". You can define other usernames at the
|
|
# same level here (key name is user name).
|
|
user1:
|
|
# Defines the password for the user. You can encrypt passwords using the
|
|
# 'mkpasswd' command or the 'pylink-mkpasswd' utility included with PyLink.
|
|
password: "$6$rounds=81447$WlVlZYCgbnjPmVqy$28Tu/Zl0xNpePqimax2wABKn5GCoWomYEI1Pu5jqYyQNULazR4BxQmscZ0MgBHqBCCke.3u5eOtBSZwL3WwVf0"
|
|
|
|
# Determines whether the password given is encrypted. Defaults to false
|
|
# (plain text) for backwards compatibility.
|
|
encrypted: true
|
|
|
|
# Optional: allows limiting this login to users from certain networks only (case sensitive).
|
|
#networks: ["network1", "network2"]
|
|
|
|
# Optional: allows limiting this login to opered users
|
|
#require_oper: false
|
|
|
|
# Optional: requires the user to match any of the following hosts. Extended targets
|
|
# are supported here as well.
|
|
#hosts: ["*!*@localhost", "*!*@trusted.isp"]
|
|
|
|
permissions:
|
|
# Permissions are described in more detail in example-permissions.yml, if you want to
|
|
# customize permissions further.
|
|
|
|
# Replace ABC123 with your PyLink account name (configured above)
|
|
# in order to give yourself admin access.
|
|
"ABC123":
|
|
- "*"
|
|
|
|
servers:
|
|
# Please note: these are only EXAMPLE link blocks. You should edit them and
|
|
# remove ones that you don't need in your config.
|
|
|
|
# Short name for the network. This is used for relay's nick suffixes, the
|
|
# network plugin's (dis)connect commands, and various other places internally.
|
|
# CHANGE THIS to some abbreviation representing your network; usually
|
|
# something 3-5 characters should be good.
|
|
inspnet:
|
|
|
|
# Server IP, port, and passwords. The ip: field also supports resolving
|
|
# hostnames.
|
|
ip: 127.0.0.1
|
|
port: 7000
|
|
recvpass: "abcd"
|
|
sendpass: "abcd"
|
|
|
|
# Set the bind host, useful for multi-homed hosts.
|
|
#bindhost: 1.2.3.4
|
|
|
|
# The full network name, used by plugins.
|
|
netname: "InspIRCd Network"
|
|
|
|
# Hostname we will use to connect to the remote server
|
|
hostname: "pylink.yournet.local"
|
|
|
|
# SID - required for TS6 and TS6-like servers. This must be three characters:
|
|
# the first char must be a digit [0-9], and the remaining two chars may
|
|
# be either uppercase letters [A-Z] or digits.
|
|
sid: "0PY"
|
|
|
|
# SID range - the range of SIDs PyLink is allowed to use to generate
|
|
# server IDs. On TS6, this should be a combination of digits, letters,
|
|
# and #'s. Each # denotes a range (0-9A-Z) of characters that can be
|
|
# used by PyLink to generate appropriate SIDs. You will want to make
|
|
# sure no other servers are using this range.
|
|
# There must be at least one # in this entry.
|
|
sidrange: "8##"
|
|
|
|
# Autojoin channels. The "channels" option affects all service bots, but you can also
|
|
# configure channels per service using keys in the name of "<servicename>_channels"
|
|
# Comment out or remove these keys if you don't want service bots# to join any channels by
|
|
# default.
|
|
channels: ["#pylink"]
|
|
#pylink_channels: ["#services"]
|
|
#automode_channels: ["#chat"]
|
|
|
|
# Sets the protocol module to use for this network - see the README for a
|
|
# list of supported IRCds.
|
|
protocol: "inspircd"
|
|
|
|
# Sets autoconnect delay - comment this out or set the value below 1 to
|
|
# disable autoconnect entirely.
|
|
autoconnect: 5
|
|
|
|
# Optional autoconnect settings:
|
|
# Defines whether we should multiply the autoconnect delay by a certain value every time
|
|
# a connection fails. This defaults to 2 if not set (30 secs becomes 60 secs, 120 secs, etc.)
|
|
#autoconnect_multiplier: 2
|
|
# Defines what the maximum autoconnect time will be (defaults to 1800 secs).
|
|
#autoconnect_max: 1800
|
|
|
|
# Sets the ping frequency in seconds (i.e. how long we should wait between
|
|
# sending pings to our uplink). When more than two consecutive pings are missed,
|
|
# PyLink will disconnect with a ping timeout. This defaults to 90 if not set.
|
|
#pingfreq: 90
|
|
|
|
# Sets the max nick length for the network. It is important that this is
|
|
# set correctly, or PyLink might introduce a nick that is too long and
|
|
# cause netsplits! This defaults to 30 if not set.
|
|
maxnicklen: 30
|
|
|
|
# Toggles SSL for this network. Defaults to False if not specified.
|
|
#ssl: true
|
|
|
|
# Optional SSL cert/key to pass to the uplink server.
|
|
#ssl_certfile: pylink-cert.pem
|
|
#ssl_keyfile: pylink-key.pem
|
|
|
|
# Optionally, you can set this option to verify the SSL certificate
|
|
# fingerprint of your uplink.
|
|
#ssl_fingerprint: "e0fee1adf795c84eec4735f039503eb18d9c35cc"
|
|
|
|
# This sets the hash type for the fingerprint (md5, sha1, sha256, etc.)
|
|
# Valid values include md5 and sha1-sha512, though others may be
|
|
# supported depending on your system: see
|
|
# https://docs.python.org/3/library/hashlib.html
|
|
# This setting defaults to sha256.
|
|
#ssl_fingerprint_type: sha256
|
|
|
|
# Encoding: allows you to override the network's encoding. This can be useful for networks
|
|
# using m_nationalchars or something similar. Encoding defaults to utf-8 if not set, and
|
|
# should be one of the standard encodings defined at
|
|
# https://docs.python.org/3/library/codecs.html#standard-encodings
|
|
# Changing this setting requires a disconnect and reconnect of the corresponding network
|
|
# to apply.
|
|
# This setting is EXPERIMENTAL as of PyLink 1.2.x.
|
|
#encoding: utf-8
|
|
|
|
# If enabled, this opts this network out of relay IP sharing: this network
|
|
# will not have its users' IPs sent across the relay, and it will not see any
|
|
# IPs of other networks' users.
|
|
#relay_no_ips: true
|
|
|
|
# Sets the suffix that relay subservers that this network should use.
|
|
# If not specified per network, falls back to the value at
|
|
# relay:server_suffix or "relay" if that is not set.
|
|
#server_suffix: "relay.yournet.net"
|
|
|
|
# Determines whether relay will tag nicks on this network. This overrides the relay::tag_nicks
|
|
# option on a per network-basis.
|
|
#relay_tag_nicks: true
|
|
|
|
# Determines the maximum size of the network's outgoing data queue (sendq), in message lines.
|
|
# This defaults to 4096 if not set.
|
|
#maxsendq: 4096
|
|
|
|
# Defines a list of "U-lined" servers that should be given special treatment when overriding
|
|
# modes. Relay uses this as a list of servers to IGNORE some mode changes from on a claimed
|
|
# channel (versus bouncing the mode back, which may be floody).
|
|
#ulines: ["services.example.conf"]
|
|
|
|
# InspIRCd specific option: determines whether we should display WHOIS extensions by overriding
|
|
# InspIRCd's default WHOIS formatting. This defaults to true for consistency with PyLink 1.x.
|
|
#force_whois_extensions: true
|
|
|
|
ts6net:
|
|
ip: ::1
|
|
|
|
# Determines whether IPv6 should be used for this connection. Should the ip:
|
|
# above be a hostname instead of an IP, this will also affect whether A records
|
|
# (no IPv6) or AAAA records (IPv6) will be used in resolving it.
|
|
ipv6: yes
|
|
|
|
port: 7000
|
|
recvpass: "abcd"
|
|
sendpass: "abcd"
|
|
hostname: "pylink.example.com"
|
|
sid: "8PY"
|
|
netname: "some TS6 network"
|
|
sidrange: "8P#"
|
|
|
|
protocol: "ts6"
|
|
autoconnect: 5
|
|
|
|
# Note: /'s in nicks are automatically converted to |'s for TS6
|
|
# networks (charybdis, etc.), since they don't allow "/" in nicks.
|
|
#separator: "|"
|
|
|
|
# The following options are specific to TS6 servers:
|
|
# Toggles owner (+y), admin (+a), and halfop (+h) support for
|
|
# shadowircd/elemental-ircd/chatircd. These default to off for the best compatibility.
|
|
#use_owner: false
|
|
#use_admin: false
|
|
#use_halfop: false
|
|
|
|
# Sets the IRCd (channel/user mode set) to target - currently supported values include
|
|
# 'chatircd', 'charybdis', and 'elemental' (elemental-ircd). This option defaults to
|
|
# 'charybdis' if not set, and replaces the "use_elemental_modes" option from PyLink 1.2
|
|
# and earlier.
|
|
#ircd: charybdis
|
|
|
|
unrealnet:
|
|
ip: 1.2.3.4
|
|
port: 8067
|
|
|
|
# Received and sent passwords. For passwordless links using SSL fingerprints, simply set
|
|
# these two fields to "*" and enable SSL with a cert and key file.
|
|
recvpass: "coffee"
|
|
sendpass: "tea"
|
|
#ssl: true
|
|
#ssl_certfile: mycert.pem
|
|
#ssl_keyfile: mycert.pem
|
|
|
|
hostname: "pylink.example.com"
|
|
sid: "2PY"
|
|
netname: "This should match your UnrealIRCd config"
|
|
sidrange: "8##"
|
|
protocol: "unreal"
|
|
autoconnect: 5
|
|
|
|
# You can also define network-specific nicks, idents, and hosts for various service
|
|
# bots, using the configuration options "servicename_nick", etc.
|
|
#pylink_nick: MagicServ
|
|
#pylink_ident: magicserv
|
|
#pylink_host: magicserv.mynet.net
|
|
#pylink_realname: Magic Link Service
|
|
#games_nick: MagicGames
|
|
#games_ident: magicgames
|
|
#games_host: games.mynet.net
|
|
#games_realname: Magic Games Service
|
|
|
|
nefarious:
|
|
ip: somenet.ddns.local
|
|
#ipv6: false
|
|
port: 45454
|
|
recvpass: "recv"
|
|
sendpass: "send"
|
|
hostname: "pylink.midnight.vpn"
|
|
|
|
# For P10, the SID and SID range options are just numbers. Make sure nothing
|
|
# else is using the range you're reserving for PyLink.
|
|
sid: 50
|
|
sidrange: "100-150"
|
|
channels: ["#lounge"]
|
|
protocol: p10
|
|
autoconnect: 5
|
|
netname: "Nefarious test server"
|
|
|
|
### The following options are specific to P10 servers:
|
|
# Determines whether extended accounts should be used for this network.
|
|
# For Nefarious, this **MUST** match the EXTENDED_ACCOUNTS setting in your IRCd configuration.
|
|
# Disable this if you are using X3, and leave it on for any other service package
|
|
# (atheme, etc.)
|
|
# For other P10 IRCds, this should be set to FALSE.
|
|
use_extended_accounts: true
|
|
|
|
# Sets the IRCd type. The following options are supported here: 'nefarious', 'snircd', 'ircu', and
|
|
# 'generic'. This defaults to 'nefarious'.
|
|
# With this key set to 'nefarious', FAKE (external vHost changing) and SETHOST (host changing
|
|
# for PyLink / relay clients) are enabled, along with a set of modes tailored to Nefarious.
|
|
|
|
# With this key set to 'snircd', SETHOST and a set of modes tailored to snircd are enabled.
|
|
# vHost changing of other users (e.g. via the changehost plugin) is not supported.
|
|
|
|
# With this key set to 'ircu', a set of modes tailored to IRCu is enabled.
|
|
# vHost changing is not supported.
|
|
|
|
# With this key set to 'generic', neither of these host changing features are enabled
|
|
# and a baseline RFC1459 mode set is used. This configuration is not officially supported.
|
|
# This option was previously named "p10_ircd" in PyLink 1.2, but that name is now deprecated.
|
|
ircd: nefarious
|
|
|
|
# Determines whether account-based cloaks should be used (someone.users.yournet.org
|
|
# format). This should match your IRCd configuration:
|
|
# On Nefarious, ENABLE this if HOST_HIDING_STYLE is set to either 1 or 3.
|
|
# On other P10 IRCds, ENABLE this if HOST_HIDING is set to TRUE.
|
|
use_account_cloaks: false
|
|
|
|
# The cloak suffix to be used for account-based cloaks. This **MUST** match your
|
|
# IRCd configuration if use_account_cloaks is enabled.
|
|
cloak_suffix: "users.yournet.org"
|
|
|
|
### The following options are specific to Nefarious servers and should be set to false if
|
|
### you're using another P10 IRCd (unless your variant supports them as well):
|
|
# Halfop is optional in Nefarious. This should match your IRCd configuration.
|
|
use_halfop: false
|
|
|
|
# Determines whether account-based cloaks should be used for opers
|
|
# (someone.opers.yournet.org format). If use_account_cloaks is disabled,
|
|
# this will have no effect. This should match your IRCd configuration:
|
|
use_oper_account_cloaks: false
|
|
|
|
# The cloak suffix to be used for IRCop account-based cloaks. This **MUST** match your
|
|
# IRCd configuration if use_oper_account_cloaks is enabled.
|
|
oper_cloak_suffix: "staff.yournet.org"
|
|
|
|
# Determines whether UnrealIRCd-style hashed-host cloaks will be used.
|
|
# This should match your IRCd configuration:
|
|
# ENABLE this if HOST_HIDING_STYLE is set to either 2 or 3.
|
|
use_hashed_cloaks: false
|
|
|
|
# Sample Clientbot configuration, if you want to connect PyLink as a bot to relay somewhere
|
|
# (or do other bot things).
|
|
magicnet:
|
|
ip: 1.2.3.4
|
|
port: 6697
|
|
|
|
# Server password (optional). Some networks also forward this to NickServ, so you can
|
|
# use it to log in on connect.
|
|
#sendpass: "wastedbytes103"
|
|
|
|
channels: ["#this-works-as-usual"]
|
|
protocol: "clientbot"
|
|
|
|
# Once again, you can override the nick and ident of service bots on specific networks using
|
|
# the "servicename_nick" and "servicename_ident" options.
|
|
#pylink_nick: pybot
|
|
#pylink_ident: pybot
|
|
|
|
# SSL options. Certfile and keyfile are optional, but can be used for CertFP/SASL external
|
|
# if supported.
|
|
ssl: true
|
|
#ssl_certfile: mycert.pem
|
|
#ssl_keyfile: mycert.pem
|
|
|
|
# SASL login: for mechanisms, only EXTERNAL (SSL cert) and PLAIN (username and password)
|
|
# are supported so far.
|
|
# SASL PLAIN requires the sasl_username and sasl_password options to be set, while
|
|
# SASL EXTERNAL requires ssl, ssl_certfile, and ssl_keyfile to work.
|
|
#sasl_mechanism: "PLAIN"
|
|
#sasl_username: "mIRCsKripterz"
|
|
#sasl_password: "DownLoaditn00b!!!"
|
|
|
|
# Defines the SASL timeout - this defaults to 15 seconds.
|
|
#sasl_timeout: 15
|
|
|
|
# If this option is enabled, the bot will attempt SASL authentication even after it's
|
|
# connected, as services become available throughout netsplits and reconnects.
|
|
# Note: This requires an IRC server capable of IRCv3.2 cap-notify and sasl:
|
|
# InspIRCd 3.x and charybdis 4+ (and derivatives) are some compatible examples (as of 2016-12-19)
|
|
#sasl_reauth: true
|
|
|
|
# Autoconnect works like usual.
|
|
autoconnect: 30
|
|
|
|
# Message throttling: when set to a non-zero value, only one message will be sent every X
|
|
# seconds. If your bot is constantly running into Excess Flood errors, raising this to
|
|
# something like 0.5 or 1.0 should help. Defaults to 0.005 if not set.
|
|
throttle_time: 0.3
|
|
|
|
# Clientbot also supports auto perform, using raw IRC messages.
|
|
#autoperform:
|
|
# - "NOTICE somebody :hello, i've connected"
|
|
|
|
# Determines whether oper statuses should be tracked on this Clientbot network. This
|
|
# defaults to False for the best security, since oper status may allow more access to the
|
|
# entire PyLink service than what's desired, even when PyLink is only connected as a bot.
|
|
# This defaults to false if not specified.
|
|
#track_oper_statuses: false
|
|
|
|
# Determines whether messages from unknown clients (servers, clients not sharing in a -n
|
|
# channel, etc.) should be forwarded via the PyLink server. If this is disabled, these
|
|
# messages will be silently dropped. This overrides the "accept_weird_senders" option in the
|
|
# "relay:" configuration block, and defaults to True for consistency with older releases.
|
|
#relay_weird_senders: false
|
|
|
|
# Plugins to load (omit the .py extension)
|
|
plugins:
|
|
# Commands plugin: Provides simple commands to check login status, show info on users and
|
|
# channels, etc.
|
|
- commands
|
|
|
|
# Networks plugin: Allows you to manage connections to networks while PyLink is running.
|
|
- networks
|
|
|
|
# Ctcp plugin: handles basic CTCP replies (VERSION, etc) towards service bots.
|
|
- ctcp
|
|
|
|
# Relay plugin: Transparent server-side relay between channels (like Janus). See
|
|
# the relay: block below for configuration.
|
|
#- relay
|
|
|
|
# Relay Clientbot plugin: this allows channel messages and events like
|
|
# JOIN, PART, KICK, etc. to relay over networks using Clientbot. You will
|
|
# want this loaded if you're using PyLink as a relay bot.
|
|
#- relay_clientbot
|
|
|
|
# Fantasy plugin: Allows you to trigger commands in channels by prefixing them
|
|
# with the PyLink service's nick or configurable prefix characters.
|
|
#- fantasy
|
|
|
|
# Oper commands plugin: Provides a handful of network management commands. (KILL, JUPE, etc.)
|
|
#- opercmds
|
|
|
|
# Automode plugin: allows assigning channel access to specific hostmasks or
|
|
# exttargets. See https://github.com/GLolol/PyLink/blob/master/docs/automode.md
|
|
# for a usage guide.
|
|
#- automode
|
|
|
|
# Changehost plugin: Automatically changes the hostmask (i.e. sets vHosts) on
|
|
# matching users as they connect. This requires the changehost: block to be
|
|
# configured correctly below.
|
|
#- changehost
|
|
|
|
# Servprotect plugin: disconnects from networks if too many kills or nick collisions to
|
|
# PyLink clients are received.
|
|
#- servprotect
|
|
|
|
# Global plugin: Janus-style global plugin; announces messages to all channels the PyLink
|
|
# client is in.
|
|
#- global
|
|
|
|
# Bots plugin: Allows you to manipulate PyLink service bots on networks.
|
|
#- bots
|
|
|
|
# Servermaps plugin: displays network /map's from the PyLink server's perspective.
|
|
#- servermaps
|
|
|
|
logging:
|
|
# This configuration block defines targets that PyLink should log commands,
|
|
# errors, etc., to.
|
|
|
|
# This sets the level for console logging, which is always enabled. Valid
|
|
# settings include DEBUG, INFO, WARNING, ERROR, and CRITICAL: see
|
|
# https://docs.python.org/3/library/logging.html#logging-levels for details.
|
|
# Prior to PyLink 1.2, this option was erroneously named 'log:stdout', even though the actual
|
|
# logging output goes to stderr. That option name (log:stdout) is now *deprecated*.
|
|
console: INFO
|
|
|
|
channels:
|
|
# Logs to channels on the specified networks.
|
|
# Make sure that the main PyLink client is also configured to join your
|
|
# log channel in the "channels:" block for the relevant networks.
|
|
|
|
# Note: Log messages are forwarded over relay, so you will get duplicate
|
|
# messages if you add log blocks for more than one channel in one
|
|
# relay.
|
|
|
|
# Note 2: DEBUG logging is not supported here: any log level settings
|
|
# below INFO be automatically raised to INFO.
|
|
|
|
inspnet:
|
|
"#services":
|
|
loglevel: INFO
|
|
"#pylink-notifications":
|
|
loglevel: WARNING
|
|
|
|
ts6net:
|
|
"#services":
|
|
loglevel: INFO
|
|
|
|
files:
|
|
# Logs to file targets. These will be placed in the log/ folder in the
|
|
# PyLink directory, with a filename based on the current instance name
|
|
# and the target name: instancename-targetname.log
|
|
|
|
# When running with ./pylink, this will create log/pylink-errors.log
|
|
# When running with ./pylink someconf.yml, this will create log/someconf-errors.log
|
|
"errors":
|
|
loglevel: ERROR
|
|
|
|
# Ditto above. When running with ./pylink, it will use log/pylink-commands.log
|
|
# When running with ./pylink someconf.yml, this will create log/someconf-commands.log
|
|
"commands":
|
|
loglevel: INFO
|
|
|
|
# Uncomment this to enable debug logging. This is only needed if you're developing for
|
|
# PyLink or are requested to enable this when reporting a bug.
|
|
#"debug":
|
|
# loglevel: DEBUG
|
|
|
|
#filerotation:
|
|
# Configures optional log file rotation. When enabled, PyLink will create rotate files
|
|
# in the format pylink-commands.log, pylink-commands.log.1, pylink-commands.log.2, etc.
|
|
# If either max_bytes or backup_count is 0, log rotation will be disabled.
|
|
|
|
# Max amount of bytes per file, before rotation is done. Defaults to 50 MiB (52428800 bytes).
|
|
#max_bytes: 52428800
|
|
|
|
# Amount of backups to make. Defaults to 5.
|
|
#backup_count: 5
|
|
|
|
changehost:
|
|
# This block configures the Changehost plugin. You don't need this if you
|
|
# aren't using it.
|
|
|
|
# Sets the networks where Changehost should be enabled. Please note: changehost does NOT support
|
|
# arbitrarily cloaking clients introduced by PyLink (e.g. relay clients), as doing so would make
|
|
# ban matching impossible. In these cases, it is the remote admin's job to turn on cloaking on
|
|
# their IRCd!
|
|
enabled_nets:
|
|
- inspnet
|
|
- ts6net
|
|
|
|
# Sets the networks where Changehost hosts should be enforced: that is, any attempts
|
|
# by the user or other services to overwrite a host will be reverted.
|
|
#enforced_nets:
|
|
# - inspnet
|
|
|
|
# Sets the masks that Changehost enforcement should ignore: these can be users with certain
|
|
# hosts, exttargets, etc.
|
|
enforce_exceptions:
|
|
- "*!*@yournet/staff/*"
|
|
#- "$account"
|
|
|
|
# Determines whether Changehost rules should also match the host portion of a mask by IP and
|
|
# real hosts. These default to false.
|
|
#match_ip: false
|
|
#match_realhosts: false
|
|
|
|
# This sets the hostmasks that Changehost should look for. Whenever someone
|
|
# with a matching nick!user@host connects, their host will be set to the
|
|
# text defined. The following substitutions are available here:
|
|
# $uid, $ts (time of connection), $nick, $realhost, $ident, and $ip.
|
|
# Invalid characters in hosts are replaced with a "-".
|
|
# Also, make sure you quote each entry so the YAML parser treats them as
|
|
# raw strings.
|
|
hosts:
|
|
|
|
# Here are some examples. Note that to keep your users' details
|
|
# private, you should probably refrain from using $ip or $realhost,
|
|
# in these hostmasks, unless cloaking is already disabled.
|
|
"*!GLolol@*.yournet.com": "$nick.opers.yournet.com"
|
|
"*!*@localhost": "some-server.hostname"
|
|
|
|
# Freenode-style masks are possible with this (though without the
|
|
# hashing)
|
|
"*!*@bnc-server.yournet.com": "yournet/bnc-users/$ident"
|
|
"*!*@ircip?.mibbit.com": "$ident.$realhost"
|
|
"WebchatUser*!*@*": "webchat/users/$ident"
|
|
|
|
relay:
|
|
# This block defines various options for the Relay plugin. You don't need this
|
|
# if you aren't using it.
|
|
|
|
# Determines whether remote opers will have user mode +H (hideoper) set on
|
|
# them. This has the benefit of lowering the oper count in /lusers and
|
|
# /stats (P|p), but only on IRCds that support it. This defaults to true
|
|
# if not set.
|
|
hideoper: true
|
|
|
|
# Determines whether real IPs should be sent across the relay. You should
|
|
# generally have a consensus with your linked networks on whether this should
|
|
# be turned on. You will see other networks' user IP addresses, and they
|
|
# will see yours. Individual networks can also opt out of IP sharing
|
|
# both ways by defining "relay_no_ips: true" in their server block.
|
|
show_ips: false
|
|
|
|
# Determines whether NickServ login info should be shown in the /whois output for
|
|
# relay users.
|
|
# Valid options include "all" (show this to everyone), "opers" (show only to
|
|
# opers), and "none" (disabled). Defaults to none if not specified.
|
|
whois_show_accounts: all
|
|
|
|
# Determines whether the origin server should be shown in the /whois output for
|
|
# relay users.
|
|
# Valid options include "all" (show this to everyone), "opers" (show only to
|
|
# opers), and "none" (disabled). Defaults to none if not specified.
|
|
whois_show_server: opers
|
|
|
|
# Determines whether the servers disconnecting in a netsplit should be shown when
|
|
# relaying quits due to a netsplit. Defaults to False.
|
|
show_netsplits: false
|
|
|
|
# Sets the default Relay separator. Defaults to / if not specified. The "separator"
|
|
# option in server blocks override this if specified.
|
|
separator: "/"
|
|
|
|
# Determines whether all nicks will be tagged by default, instead of only when a
|
|
# nick collision happens. It is HIGHLY RECOMMENDED that you enable this, unless you're
|
|
# absolutely sure NO ONE will be using the same nick on 2 or more networks in your
|
|
# relay.
|
|
# This defaults to True if not specified. Disabling this option is currently
|
|
# experimental.
|
|
tag_nicks: true
|
|
|
|
# If tag_nicks is False, this specifies a list of NICK globs that network
|
|
# tags should be added for anyways (e.g. network services).
|
|
forcetag_nicks:
|
|
- "*Serv"
|
|
|
|
# This determines whether private messages & notices will be forwarded over Clientbot relay,
|
|
# and whether the 'rpm' command will be allowed from Clientbot networks. This defaults to
|
|
# False.
|
|
allow_clientbot_pms: false
|
|
|
|
# Sets the suffix that relay subservers should use. Defaults to "relay" (as in net1.relay,
|
|
# net2.relay, etc.) if not specified. This can also be set per-network.
|
|
#server_suffix: "relay.yournet.net"
|
|
|
|
# Sets whether Clientbot mode sync will be enabled. Valid options:
|
|
# "full" - Sync bans, ban/invite exceptions, prefix modes, and all RFC1459-standard modes. The
|
|
# bot will need op in the Clientbot channel for this to work both ways.
|
|
# "half" - Sync only bans, ban/invite exceptions, and prefix modes. The bot will need op in the
|
|
# Clientbot channel for this to work both ways.
|
|
# "none" - Turns off mode sync. This is the default.
|
|
#
|
|
# Note: when mode sync is enabled and the bot is opped, CLAIM protection will be enforced across
|
|
# Clientbot links as well. This means that the bot will try to revert any mode changes by non-ops
|
|
# or services not in the channel. The workaround is to add all Clientbot networks to the CLAIM
|
|
# list of any affected channels.
|
|
#
|
|
#clientbot_modesync: none
|
|
|
|
# Determines whether messages from unknown clients (servers, clients not sharing in a -n channel,
|
|
# etc.) should be forwarded via the PyLink server. If this is disabled, these messages will be
|
|
# silently dropped. This defaults to True for consistency with older releases.
|
|
#accept_weird_senders: false
|
|
|
|
# Optionally defines a message that should be sent to all leaf channels that a network owns, when
|
|
# it disconnects. This uses a template string as documented at
|
|
# https://docs.python.org/3/library/string.html#template-strings, with the following substitutions:
|
|
# $network: the name of the network that this message is being announced to
|
|
# $channel: the channel that this message is being announced to
|
|
# $homenetwork: the name of the network that disconnected
|
|
# $homechannel: the original name of the channel this message is being announced to
|
|
# If this option is empty or not set, no announcement is made.
|
|
#disconnect_announcement: >-
|
|
# Network $homenetwork has disconnected: $channel will remain open as the link is
|
|
# re-established, but new links will be disabled.
|
|
|
|
#servprotect:
|
|
# This block configures the servprotect plugin; you don't need this if you aren't using it.
|
|
|
|
# length: How many KILL/SAVE's before a disconnect?
|
|
#length: 5
|
|
|
|
# age: Determines how much time (in seconds) should pass before the servprotect cache is reset.
|
|
# Note: updates to this option require a reload of the servprotect plugin, which automatically
|
|
# resets the cache.
|
|
#age: 10
|
|
|
|
automode:
|
|
# The following options in this block are common to all plugins that spawn service bots (games,
|
|
# automode, etc.):
|
|
|
|
# Sets the nick of the Automode service, if you're using it. If not defined, this defaults to
|
|
# the service name ("automode" in this case).
|
|
nick: Automode
|
|
#ident: Automode
|
|
|
|
# For each service, you can also specify what prefix modes you want the service bot to join channels with.
|
|
# Setting this to op (+o) for Automode makes it appear more like a standard IRC service, and lessens
|
|
# the risk of mode overrides being dropped.
|
|
joinmodes: 'o'
|
|
|
|
# Determines whether a separate service bot should be spawned for this plugin. This defaults to
|
|
# True, unless a network's protocol module doesn't support spawning extra service bots.
|
|
# This option overrides the global "spawn_services" option defined in "pylink:".
|
|
#spawn_service: true
|
|
|
|
# Defines a fantasy prefix for the Automode bot (requires spawn_services to be set and the
|
|
# fantasy plugin to be loaded). This overrides the "prefix" option in the "pylink:" config
|
|
# block.
|
|
prefix: "@"
|
|
|
|
# Determines whether this bot should respond to its nick (requires spawn_services to be set and the
|
|
# fantasy plugin to be loaded). This overrides the "respond_to_nick" option in the "pylink:" config
|
|
# block.
|
|
#respond_to_nick: true
|
|
|
|
# Determines whether we should show unknown command errors for this service bot. Defaults to True.
|
|
# This overrides the "show_unknown_commands" option in the "pylink:" config block.
|
|
#show_unknown_commands: true
|
|
|
|
games:
|
|
# Sets the nick of the Games service, if you're using it. This defaults to "games" if not defined.
|
|
nick: Games
|
|
|
|
# Ident, host, and realname can also be specified here, but they may be overriden per-network.
|
|
#ident: games
|
|
#host: play.games
|
|
#realname: Games Service
|
|
|
|
# Defines a fantasy prefix for the Games bot.
|
|
prefix: "./"
|
|
|
|
stats:
|
|
# Determines the time format that the Stats plugin should use for showing dates + times.
|
|
# Defaults to "%a, %d %b %Y %H:%M:%S +0000" (the RFC 2812 standard) if not specified.
|
|
time_format: "%c"
|
|
|
|
#global:
|
|
# Sets the text format for the global plugin, if it is loaded. This uses a template string as
|
|
# documented at https://docs.python.org/3/library/string.html#template-strings, with the
|
|
# following substitutions:
|
|
# $sender: the nick of the sender
|
|
# $network: the short network name of the origin network
|
|
# $fullnetwork: the full network name of the origin network
|
|
# $current_channel: the channel we're broadcasting on
|
|
# $current_network: the network we're currently broadcasting on
|
|
# $current_fullnetwork: the full name of the network we're currently broadcasting on
|
|
# $text: the global text
|
|
#format: "[$sender@$fullnetwork] $text"
|