Synchronet v3.21e-Win32 (install) has been released (Mar-2026).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
config:ini_files [2020/06/01 23:17] – [Section With Multiple Names] Document the string literal syntax (with colon instead of equals, quotes, etc.) digital manconfig:ini_files [2025/12/21 03:41] (current) – [Enumerated Values] Fix the confusing wording about enum key value word/partial-word matches digital man
Line 5: Line 5:
 ===== Configuration ===== ===== Configuration =====
  
-Synchronet supports a variety of configuration files of different formats. A growing majority of these configuration files are of the [[wp>INI file]] type. Synchronet's INI configuration files are typically stored in the ''[[dir:ctrl]]'' directory, with a ''.ini'' filename suffix/extension.+Synchronet's INI configuration files are typically stored in the ''[[dir:ctrl]]'' directory, with a ''.ini'' filename suffix/extension. 
 + 
 +==== Primary Configuration Files ==== 
 + 
 +The primary configuration files managed by the [[util:SCFG]] utility are: 
 +^ Filename    ^ Description ^ 
 +|''[[sbbs.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/sbbs.ini|Synchronet Server Initialization File]] | 
 +| ''main.ini'' | Primary system settings (e.g. BBS name, location, security settings) and command shells | 
 +| ''msgs.ini'' | Message areas, message options, and message networking | 
 +| ''file.ini'' | File areas (for uploads, download), text file areas, and file-related options | 
 +| ''xtrn.ini'' | External program configurations which includes timed events, message editors, hot-key events and doors | 
 +| ''chat.ini'' | Chat Features settings, specifically the Guru, Multi-node chat actions and channels, and external sysop pagers | 
 +| ''node.ini'' | Located in the [[dir:node|node directories]], and configured via the SCFG [[config:nodes]] menu | 
 + 
 +==== Secondary Configuration Files ====
  
 ^Filename Page             ^Default Contents^Description^ ^Filename Page             ^Default Contents^Description^
-|''[[cgi_env.ini]]''        |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/cgi_env.ini|cgi_env.ini]]|[[server:Web]] Server CGI Settings| +|''[[custom:text.ini]]''    |N/A | Customized ''text.dat'' strings (optional) | 
-|''[[formmail.ini]]''       |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/formmail.ini|formmail.ini]]|Configuration for ''[[dir:web]]/formmail.ssjs'', Synchronet's Server-side [[custom:JavaScript]] version of [[http://www.scriptarchive.com/formmail.html|FormMail]]| +|''text.//lang//.ini''      |varies | Alternate language ''text.ini'' files | 
-|''[[ircbot.ini]]''         |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/ircbot.ini|ircbot.ini]]|Configuration for IRC robots, optionally works with the Synchronet [[service:IRCd]]| +|''[[cgi_env.ini]]''        |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/cgi_env.ini|cgi_env.ini]]|[[server:Web]] Server CGI Settings| 
-|''[[listserver.ini]]''     |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/listservier.ini|listserver.ini]]|Configuration for the Synchronet ListServer module (''[[dir:exec]]/[[module:listserver]].js'')| +|''[[formmail.ini]]''       |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/formmail.ini|formmail.ini]]|Configuration for ''[[dir:web]]/formmail.ssjs'', Synchronet's Server-side [[custom:JavaScript]] version of [[http://www.scriptarchive.com/formmail.html|FormMail]]| 
-|''[[mailproc.ini]]''       |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/mailproc.ini|mailproc.ini]]|Configuration of External Mail Processors for the [[server:Mail]] Server (SMTP)| +|''[[ircbot.ini]]''         |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/ircbot.ini|ircbot.ini]]|Configuration for IRC robots, optionally works with the Synchronet [[service:IRCd]]| 
-|''[[mime_types.ini]]''     |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/mime_types.ini|mime_types.ini]]|MIME File Types registered in the [[server:Web]] Server| +|''[[ircd.ini]]''         |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/ircd.ini|ircd.ini]]|Configuration for IRC server. Replaces old ircd.conf on modern Synchronet [[service:IRCd]]| 
-|''[[modopts.ini]]''        |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/modopts.ini|modopts.ini]]|Configuration settings (options) for various [[custom:JavaScript]] modules, stock and/or 3rd party| +|''[[listserver.ini]]''     |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/listservier.ini|listserver.ini]]|Configuration for the Synchronet ListServer module (''[[dir:exec]]/[[module:listserver]].js'')| 
-|''[[rss.ini]]''            |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/rss.ini|rss.ini]]|Configuration for Synchronet RSS Feed module (''[[dir:web]]/root/rss.ssjs'')+|''[[mailproc.ini]]''       |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/mailproc.ini|mailproc.ini]]|Configuration of External Mail Processors for the [[server:Mail]] Server (SMTP)| 
-|''[[sbbs.ini]]''           |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/sbbs.ini|sbbs.ini]]|Synchronet Initialization File|+|''[[mime_types.ini]]''     |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/mime_types.ini|mime_types.ini]]|MIME File Types registered in the [[server:Web]] Server| 
 +|''[[modopts.ini]]''        |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/modopts.ini|modopts.ini]]|Configuration settings (options) for various [[custom:JavaScript]] modules, stock and/or 3rd party| 
 +|''[[rss.ini]]''            |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/rss.ini|rss.ini]]|Configuration for Synchronet RSS Feed module (''[[dir:exec]]/rss.ssjs'')|
 |''[[sbbsctrl.ini]]''       |N/A|Configuration for Synchronet Control Panel ([[monitor:SBBSCTRL]]) for Windows, exported from Windows Registry| |''[[sbbsctrl.ini]]''       |N/A|Configuration for Synchronet Control Panel ([[monitor:SBBSCTRL]]) for Windows, exported from Windows Registry|
-|''[[sbbsexec.ini]]''           |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/exec/sbbsexec.ini|sbbsexec.ini]]|Configuration for the Synchronet Virtual FOSSIL / UART Driver for Windows| +|''[[sbbsexec.ini]]''           |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/exec/sbbsexec.ini|sbbsexec.ini]]|Configuration for the Synchronet Virtual FOSSIL / UART Driver for Windows| 
-|''[[services.ini]]''       |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/services.ini|services.ini]]|Configuration for Synchronet [[service:|Services]]|+|''[[services.ini]]''       |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/services.ini|services.ini]]|Configuration for Synchronet [[service:|Services]]|
 |''[[sexpots.ini]]''       |N/A|Configuration for Synchronet External POTS Support utility ([[util:SEXPOTS]])| |''[[sexpots.ini]]''       |N/A|Configuration for Synchronet External POTS Support utility ([[util:SEXPOTS]])|
 |''[[sexyz.ini]]''       |N/A|Configuration for Synchronet External X/Y/ZMODEM protocol driver ([[util:SEXYZ]])| |''[[sexyz.ini]]''       |N/A|Configuration for Synchronet External X/Y/ZMODEM protocol driver ([[util:SEXYZ]])|
-|''[[sockopts.ini]]''       |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/sockopts.ini|sockopts.ini]]|Configuration of TCP/IP socket options| +|''[[sockopts.ini]]''       |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/sockopts.ini|sockopts.ini]]|Configuration of TCP/IP socket options| 
-|''[[web_handler.ini]]''    |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/web_handler.ini|web_handler.ini]]|Configuration of special content (file type) handlers for the [[server:Web]] Server| +|''[[web_handler.ini]]''    |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/web_handler.ini|web_handler.ini]]|Configuration of special content (file type) handlers for the [[server:Web]] Server| 
-|''[[webicons.ini]]''       |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/webicons.ini|webicons.ini]]|Configuration of icon files used to represent specific file types in the [[server:Web]] Server|+|''[[webicons.ini]]''       |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/webicons.ini|webicons.ini]]|Configuration of icon files used to represent specific file types in the [[server:Web]] Server|
  
 ===== Database ===== ===== Database =====
Line 110: Line 126:
  
 === Quotes === === Quotes ===
-If the first non-white-space character following the colon key/value separate is a double-quote (''"'') character, then the string will be terminated at the last (right-most) double-quote character. This allows a string value to be specified with trailing white-space:+If the first non-white-space character following the colon key/value separate is a double-quote (''"'') character, then the string will be terminated at the last (right-most) double-quote character. This allows a string value to be specified with trailing white-space without risk that a text editor might remove it:
   mystring: "a string with trailing white-space "   mystring: "a string with trailing white-space "
  
Line 133: Line 149:
 <code ini> <code ini>
 !include another.ini !include another.ini
 +</code>
 +
 +In Synchronet v3.18c, the ability to include multiple files was added, e.g.
 +
 +<code ini>
 +!include sub-dir/*.ini
 </code> </code>
  
Line 155: Line 177:
 String values are terminated by a new-line sequence or the end of file. String values are terminated by a new-line sequence or the end of file.
  
-Trailing white-space is normally removed from the string value, unless the ''key:value'' syntax is used (instead of ''key=value'').+Trailing white-space is normally removed from string values, unless the ''key:value'' (string literal) syntax is used instead of ''key=value''.
  
 ==== Boolean Values ==== ==== Boolean Values ====
Line 172: Line 194:
 ==== Enumerated Values ==== ==== Enumerated Values ====
  
-Some keys support values specified either by number (typically from ''0'' through n) or by a symbolic name for each supported value. These are referred to enumerated values.+Some keys support values specified either by number (typically from ''0'' through n) or by a symbolic name for each supported value. These are referred to as enumerated values.
  
 A numeric value higher than the highest supported enumerated value will be treated the same as the highest supported enumerated value. A numeric value higher than the highest supported enumerated value will be treated the same as the highest supported enumerated value.
 +
 +When a word is provided as an enumerated key value, an initial partial word match is all that is required. So for example, a key value of "Debugging" would match the enum value of ''Debug'', and "Informational" would match the enum value of ''Info''. These string matches are also performed case-insensitively so "ERROR" and "error" are equivalents.
  
 === Log Levels === === Log Levels ===
Line 180: Line 204:
 ''LogLevel'' keys are one example of a key with enumerated values. The ''LogLevel'' value may be specified as a decimal number (from ''0'' to ''7'') or by specifying one of the following enumerated names: ''LogLevel'' keys are one example of a key with enumerated values. The ''LogLevel'' value may be specified as a decimal number (from ''0'' to ''7'') or by specifying one of the following enumerated names:
  
-^Value ^Name ^ +^Value ^Name             ^ Description 
-|0     |Emergency    | +|0     |''Emergency''    | Fatal condition 
-|1     |Alert        | +|1     |''Alert''        | Very Serious condition 
-|2     |Critical     | +|2     |''Critical''     | Serious condition 
-|3     |Error        |  +|3     |''Error''        | Unexpected/erroneous condition 
-|4     |Warning      | +|4     |''Warning''      | Suspicious condition 
-|5     |Notice       | +|5     |''Notice''       | Infrequent event 
-|6     |Informational| +|6     |''Info''         | Common activity (AKA "Informational"
-|7     |Debugging    |+|7     |''Debug''        | Extra detail sometimes helpful during issue analysis (AKA "Debugging"|
  
 Log entries with a log level //higher// than the specified ''LogLevel'' value will not be logged/displayed. Log entries with a log level //higher// than the specified ''LogLevel'' value will not be logged/displayed.
  
-The ''Debugging'' (7) log level enables //all// possible log output.+The ''Debug'' (7) log level enables //all// possible log output.
  
 ==== Bit-field Values ==== ==== Bit-field Values ====
Line 217: Line 241:
 ===== Source Code ===== ===== Source Code =====
  
-Synchronet's INI file support comes from the XPDEV C library. The main source file is [[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/src/xpdev/ini_file.c]].+Synchronet's INI file support comes from the XPDEV C library. The main source file is [[https://gitlab.synchro.net/sbbs/sbbs/-/blob/master/src/xpdev/ini_file.c]].
  
 ===== See Also ===== ===== See Also =====
Line 226: Line 250:
   * [[config:cfg_files|CFG Files]]   * [[config:cfg_files|CFG Files]]
   * [[config:cnf_files|CNF Files]]   * [[config:cnf_files|CNF Files]]
-  
    
  
 +{{tag>configuration file_type ini}}