###############################################
# AzerothCore Auth Server configuration file #
###############################################
[authserver]

###################################################################################################
# SECTION INDEX
#
#    EXAMPLE CONFIG
#    AUTH SERVER SETTINGS
#    MYSQL SETTINGS
#    CRYPTOGRAPHY
#    UPDATE SETTINGS
#    LOGGING SYSTEM SETTINGS
#
###################################################################################################

###################################################################################################
# EXAMPLE CONFIG
#
#    Variable
#        Description: Brief description what the variable is doing.
#        Important:   Annotation for important things about this variable.
#        Example:     "Example, i.e. if the value is a string"
#        Default:     10 - (Enabled|Comment|Variable name in case of grouped config options)
#                     0  - (Disabled|Comment|Variable name in case of grouped config options)
#
# Note to developers:
# - Copy this example to keep the formatting.
# - Line breaks should be at column 100.
###################################################################################################

###################################################################################################
# AUTH SERVER SETTINGS
#
#    LogsDir
#        Description: Logs directory setting.
#        Important:   LogsDir needs to be quoted, as the string might contain space characters.
#                     Logs directory must exists, or log file creation will be disabled.
#        Example:     "/home/youruser/azerothcore/logs"
#        Default:     "" - (Log files will be stored in the current path)

LogsDir = ""

#
#    MaxPingTime
#        Description: Time (in minutes) between database pings.
#        Default:     30

MaxPingTime = 30

#
#    RealmServerPort
#        Description: TCP port to reach the auth server.
#        Default:     3724

RealmServerPort = 3724

#
#
#    BindIP
#        Description: Bind auth server to IP/hostname
#        Default:     "0.0.0.0" - (Bind to all IPs on the system)

BindIP = "0.0.0.0"

#
#    EnableProxyProtocol
#        Description: Enables Proxy Protocol v2. When your server is behind a proxy,
#                     load balancer, or similar component, you need to enable Proxy Protocol v2 on both
#                     this server and the proxy/load balancer to track the real IP address of players.
#        Example:     1 - (Enabled)
#        Default:     0 - (Disabled)

EnableProxyProtocol = 0

#
#    PidFile
#        Description: Auth server PID file.
#        Example:     "./authserver.pid"  - (Enabled)
#        Default:     ""                  - (Disabled)

PidFile = ""

#
#    UseProcessors
#        Description: Processors mask for Windows and Linux based multi-processor systems.
#        Example:  For a computer with 3 CPUs:
#                     1 - 1st CPU only
#                     2 - 2nd CPU only
#                     4 - 3rd CPU only
#                     6 - 2nd + 3rd CPUs, because "2 | 4" -> 6
#        Default:     0  - (Selected by OS)
#                     1+ - (Bit mask value of selected processors)

UseProcessors = 0

#
#    ProcessPriority
#        Description: Process priority setting for Windows and Linux based systems.
#        Details:     On Linux, a nice value of -15 is used. (requires superuser). On Windows, process is set to HIGH class.
#        Default:     0 - (Normal)
#                     1 - (High)

ProcessPriority = 0

#
#    RealmsStateUpdateDelay
#        Description: Time (in seconds) between realm list updates.
#        Default:     20 - (Enabled)
#                     0  - (Disabled)

RealmsStateUpdateDelay = 20

#
#    WrongPass.MaxCount
#        Description: Number of login attempts with wrong password before the account or IP will be
#                     banned.
#        Default:     0  - (Disabled)
#                     1+ - (Enabled)

WrongPass.MaxCount = 0

#
#    WrongPass.BanTime
#        Description: Time (in seconds) for banning account or IP for invalid login attempts.
#        Default:     600 - (10 minutes)
#                     0   - (Permanent ban)

WrongPass.BanTime = 600

#
#    WrongPass.BanType
#        Description: Ban type for invalid login attempts.
#        Default:     0 - (Ban IP)
#                     1 - (Ban Account)

WrongPass.BanType = 0

#
#    WrongPass.Logging
#        Description: Additionally log attempted wrong password logging
#        Default:     0 - (Disabled)
#                     1 - (Enabled)

WrongPass.Logging = 0

#
#    BanExpiryCheckInterval
#        Description: Time (in seconds) between checks for expired bans
#        Default:     60
#

BanExpiryCheckInterval = 60

#
#    StrictVersionCheck
#        Description: Prevent modified clients from connecting
#        Default:     0 - (Disabled)
#                     1 - (Enabled)
#

StrictVersionCheck = 0

#
#    SourceDirectory
#        Description: The path to your AzerothCore source directory.
#                     If the path is left empty, the built-in CMAKE_SOURCE_DIR is used.
#        Example:     "../AzerothCore"
#        Default:     ""
#

SourceDirectory = ""

#
#    MySQLExecutable
#        Description: The path to your MySQL CLI binary.
#                     If the path is left empty, built-in path from cmake is used.
#        Example:     "C:/Program Files/MySQL/MySQL Server 8.4/bin/mysql.exe"
#                     "mysql.exe"
#                     "/usr/bin/mysql"
#        Default:     ""
#

MySQLExecutable = ""

#
#    TempDir
#        Description: Temp directory setting.
#        Important:   TempDir needs to be quoted, as the string might contain space characters.
#                     TempDir directory must exists, or the server can't work properly
#        Example:     "/home/youruser/azerothcore/temp"
#        Default:     "" - (Temp files will be stored in the current path)

TempDir = ""

#
#    IPLocationFile
#        Description: The path to your IP2Location database CSV file.
#        Example:     "C:/acore/IP2LOCATION-LITE-DB1.CSV"
#                     "/home/acore/IP2LOCATION-LITE-DB1.CSV"
#        Default:     ""  - (Disabled)

IPLocationFile = ""

#
#    AllowLoggingIPAddressesInDatabase
#        Description: Specifies if IP addresses can be logged to the database
#        Default:     1 - (Enabled)
#                     0 - (Disabled)
#

AllowLoggingIPAddressesInDatabase = 1

#
###################################################################################################

###################################################################################################
# MYSQL SETTINGS
#
#    LoginDatabaseInfo
#        Description: Database connection settings for the realm server.
#        Example:     "hostname;port;username;password;database"
#                     ".;somenumber;username;password;database" - (Use named pipes on Windows
#                                                                 "enable-named-pipe" to [mysqld]
#                                                                 section my.ini)
#                     ".;/path/to/unix_socket;username;password;database" - (use Unix sockets on
#                                                                           Unix/Linux)
#        Default:     "127.0.0.1;3306;acore;acore;acore_auth"

LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth"

#
#    Database.Reconnect.Seconds
#    Database.Reconnect.Attempts
#
#        Description: How many seconds between every reconnection attempt
#                     and how many attempts will be performed in total
#        Default:     20 attempts every 15 seconds
#

Database.Reconnect.Seconds = 15
Database.Reconnect.Attempts = 20

#
#    LoginDatabase.WorkerThreads
#        Description: The amount of worker threads spawned to handle asynchronous (delayed) MySQL
#                     statements. Each worker thread is mirrored with its own connection to the
#        Default:     1

LoginDatabase.WorkerThreads = 1

#
#    LoginDatabase.SynchThreads
#        Description: The amount of MySQL connections spawned to handle.
#        Default:     1 - (LoginDatabase.WorkerThreads)
#

LoginDatabase.SynchThreads = 1

#
###################################################################################################

###################################################################################################
# CRYPTOGRAPHY

#
#    EnableTOTP
#        Description: Check if a TOTP token is needed on account login
#
#        Default:     0 - (Disabled)
#                     1 - (Enabled)

EnableTOTP = 0

#    TOTPMasterSecret
#        Description: The master key used to encrypt TOTP secrets for database storage.
#                     If you want to change this, uncomment TOTPOldMasterSecret, then copy
#                     your old secret there and startup authserver once. Afterwards, you can re-
#                     comment that line and get rid of your old secret.
#
#        Default:     <blank> - (Store TOTP secrets unencrypted)
#        Example:     000102030405060708090A0B0C0D0E0F

TOTPMasterSecret =
# TOTPOldMasterSecret =

#
###################################################################################################

###################################################################################################
# UPDATE SETTINGS
#
#    Updates.EnableDatabases
#        Description: A mask that describes which databases shall be updated.
#
#        Following flags are available
#           DATABASE_LOGIN     = 1, // Auth database
#
#        Default:     0  - (All Disabled)
#                     1  - (All Enabled)

Updates.EnableDatabases = 1

#
#    Updates.AutoSetup
#        Description: Auto populate empty databases.
#        Default:     1 - (Enabled)
#                     0 - (Disabled)

Updates.AutoSetup = 1

#
#    Updates.Redundancy
#        Description: Perform data redundancy checks through hashing
#                     to detect changes on sql updates and reapply it.
#        Default:     1 - (Enabled)
#                     0 - (Disabled)

Updates.Redundancy = 1

#
#    Updates.ArchivedRedundancy
#        Description: Check hashes of archived updates (slows down startup).
#        Default:     0 - (Disabled)
#                     1 - (Enabled)

Updates.ArchivedRedundancy = 0

#
#    Updates.AllowRehash
#        Description: Inserts the current file hash in the database if it is left empty.
#                     Useful if you want to mark a file as applied but you don't know its hash.
#        Default:     1 - (Enabled)
#                     0 - (Disabled)

Updates.AllowRehash = 1

#
#    Updates.CleanDeadRefMaxCount
#        Description: Cleans dead/ orphaned references that occur if an update was removed or renamed and edited in one step.
#                     It only starts the clean up if the count of the missing updates is below or equal the Updates.CleanDeadRefMaxCount value.
#                     This way prevents erasing of the update history due to wrong source directory state (maybe wrong branch or bad revision).
#                     Disable this if you want to know if the database is in a possible "dirty state".
#        Default:     3 - (Enabled)
#                     0 - (Disabled)
#                    -1 - (Enabled - unlimited)

Updates.CleanDeadRefMaxCount = 3
###################################################################################################

###################################################################################################
#
#  LOGGING SYSTEM SETTINGS
#
#  Appender config values: Given an appender "name"
#    Appender.name
#        Description: Defines 'where to log'
#        Format:      Type,LogLevel,Flags,optional1,optional2,optional3
#
#                     Type
#                         0 - (None)
#                         1 - (Console)
#                         2 - (File)
#                         3 - (DB)
#
#                     LogLevel
#                         0 - (Disabled)
#                         1 - (Fatal)
#                         2 - (Error)
#                         3 - (Warning)
#                         4 - (Info)
#                         5 - (Debug)
#                         6 - (Trace)
#
#                     Flags:
#                         0 - None
#                         1 - Prefix Timestamp to the text
#                         2 - Prefix Log Level to the text
#                         4 - Prefix Log Filter type to the text
#                         8 - Append timestamp to the log file name. Format: YYYY-MM-DD_HH-MM-SS (Only used with Type = 2)
#                        16 - Make a backup of existing file before overwrite (Only used with Mode = w)
#
#                     Colors (read as optional1 if Type = Console)
#                         Format: "fatal error warn info debug trace"
#                         0 - BLACK
#                         1 - RED
#                         2 - GREEN
#                         3 - BROWN
#                         4 - BLUE
#                         5 - MAGENTA
#                         6 - CYAN
#                         7 - GREY
#                         8 - YELLOW
#                         9 - LRED
#                        10 - LGREEN
#                        11 - LBLUE
#                        12 - LMAGENTA
#                        13 - LCYAN
#                        14 - WHITE
#                         Example: "1 9 3 6 5 8"
#
#                     File: Name of the file (read as optional1 if Type = File)
#                         Allows to use one "%s" to create dynamic files
#
#                     Mode: Mode to open the file (read as optional2 if Type = File)
#                          a - (Append)
#                          w - (Overwrite)
#
#                     MaxFileSize: Maximum file size of the log file before creating a new log file
#                     (read as optional3 if Type = File)
#                         Size is measured in bytes expressed in a 64-bit unsigned integer.
#                         Maximum value is 4294967295 (4 GB). Leave blank for no limit.
#                         NOTE: Does not work with dynamic filenames.
#                         Example:  536870912 (512 MB)
#

Appender.Console=1,5,0,"1 9 3 6 5 8"
Appender.Auth=2,5,0,Auth.log,w

#  Logger config values: Given a logger "name"
#    Logger.name
#        Description: Defines 'What to log'
#        Format:      LogLevel,AppenderList
#
#                     LogLevel
#                         0 - (Disabled)
#                         1 - (Fatal)
#                         2 - (Error)
#                         3 - (Warning)
#                         4 - (Info)
#                         5 - (Debug)
#                         6 - (Trace)
#
#                     AppenderList: List of appenders linked to logger
#                     (Using spaces as separator).
#

Logger.root=4,Console Auth

#
###################################################################################################
