====== MUTIL.INI Mystic BBS 1.12 Alpha ====== This is the current 'stock install' example of MUTIL.INI that ships with Mystic BBS 1.12 Alpha **48** ; MUTIL configuration file ; ------------------------------------------------------------------------- ; ; MUTIL is an automated maintainance and utility program driven by ; configuration files used to perform various tasks upon execution. ; ; The syntax to execute MUTIL is: MUTIL . If no ; configuration file is supplied, then the program will look for mutil.ini ; in the same directory. A second parameter -NOSCREEN can be used to turn ; off screen updates but the configuration file parameter MUST be supplied ; ex: mutil mutil.ini -NOSCREEN ; ; Many different configuration files can exist to perform any series of ; tasks supported by MUTIL, or a single configuration can be maintained that ; does everything. The minimum requirement is the General header with a ; task enabled, and then the specific header for that task that defines its ; options. ; ; Current abilities (enabled/disabled in the General header below): ; ; - Export Binkley-style FLO echomail/netmail ; - Import Binkley-style FLO echomail/netmail ; - Import Message Bases (by datafile analysis) ; - Import FIDONET.NA into Message bases ; - Import FILEBONE.NA into File bases ; - Export FILEBONE.NA from File bases ; - Export AREAS.BBSfrom Message Bases ; - Export Golded Areas Configuration from Message Bases ; - Mass upload files to all file bases (with FILE_ID.DIZ import and the ; ability to exclude files by filemask) ; - Generate Top 1 up to 99 Callers, Posters, Downloaders, Uploaders, PCR ; Completely configurable output by using template files ; - Import FILES.BBS into file bases ; - Generate all files listing ; - Purge Message bases (by age and max messages) ; - Pack and renumber message bases ; - Post text files to message bases ; - Merge nodelists into Mystic format ; - Toss TIC+files into BBS and to subscribed downlinks ; - Pack and check integrity of file base listings ; - Sort file base listings ; - Perform message base echomail reply linking ; - Purge user database marking inactive users for deletion ; - Pack user database and remove private messages of deleted users ; - Automatically hatch a list of files to FDN ; ; The concept here is that you can create your own custom command lines to ; complete any number of tasks. For example, you could create msgmaint.ini ; which executes message base purge, packing, and reply linking. Then you ; can simply execute "mutil msgmaint" to kick it off. ; ========================================================================== ; ========================================================================== ; ========================================================================== [General] ; list of functions to perform on startup Import_FIDONET.NA = false Import_MessageBase = false Import_FILEBONE.NA = false Export_FILEBONE.NA = false Export_AREAS.BBS = false Export_GOLDED = false Import_FILES.BBS = false MassUpload = false GenerateTopLists = false GenerateAllFiles = false PurgeMessageBases = false PostTextFiles = false PackMessageBases = false ImportEchoMail = false ExportEchoMail = false MergeNodeLists = false FileToss = false PackFileBases = false FileSort = false LinkMessages = false PurgeUserBase = false PackUserBase = false AutoHatch = false EchoNodeTracker = false ; Set this value if you want to run mutil from a directory other than ; the root Mystic directory or the mysticbbs environment variable: ; mystic_directory=c:\mystic\mystic.dat ; If no directory is specified in the logfile name, mUtil will attempt ; to use the configured LOGS directory from in Mystic's configuration. ; Comment out to disable logging completely. logfile=mutil.log ; If set to TRUE (*HIGHLY* recommended for MUTIL) then it will write the ; log file in increments of 8KB at a time. If set to FALSE it will write ; each individual line as it is logged. This will significantly reduce ; MUTIL performance if set to FALSE. logcache=true ; Level 1 = basic ; Level 2 = verbose ; Level 3 = debug ; ; Note that the loglevel can also be set in a specific stanza and that value ; will override the value defined here only for that specific stanza loglevel=2 ; logfile time stamp. defaults to NNN DD HH:II:SS if not set here ; logstamp = YYYYHHMMHHIISS ; Log roller type: ; 0 = Do not roll log files ; 1 = Roll by number of files/filesize ; 2 = Roll by number of days logtype = 0 ; number of log files to keep (0 to disable log rolling) maxlogfiles = 3 ; size of each log file in kilobytes maxlogsize = 1000 ; ========================================================================== ; ========================================================================== ; ========================================================================== [Import_FIDONET.NA] ; filename to import filename = fidonet.na ; convert tags to lower case for message base filename 1=yes lowercase_filename = 1 ; The following options define the "default" values used when creating ; any new message bases. netaddress must match an exiting network ; address configured within Mystic BBS. default values are also ; taken from the system configuration for origin line, colors, etc. netaddress = 1:1/1 acs_list = acs_read = acs_post = acs_sysop = s255 header = msghead read_template = ansimrd index_template = ansimlst max_msgs = 500 max_msgs_age = 365 ; true/false type values 0=false 1=true (newscan 2=forced) use_autosig = 1 use_realname = 0 use_ansi = 1 private_base = 0 new_scan = 1 qwk_scan = 1 ; value is either 0 for JAM or 1 for Squish base_format = 0 ; ========================================================================== ; ========================================================================== ; ========================================================================== [Import_FILEBONE.NA] ; filename of filebone.na filename = filebone.na ; root directory to create file paths under. when a new filebone echo ; is found, mUtil will create a file using "root_dir" + areatag. So ; for example if root is "c:\mystic\filebase\" and the areatag is ; MYSTICBBS it will create "c:\mystic\filebase\MYSTICBBS". This root ; directory MUST exist. root_dir = c:\mystic\files\ ; Use echotag for base description and FTP name use_echotag = false ; Convert tags to lower case for filebase base filename/dir ; True or 1 for yes, false or 0 for no lowercase_filename = true ; Default values when creating a new file base dispfile = template = ansiflst acs_list = acs_ftp = acs_download = acs_upload = acs_hatch = acs_sysop = s255 ; true/false type values 0=false 1=true (newscan 2=forced) new_scan = 1 free_files = 0 show_uploader = 1 anon_ftp = 0 ; ========================================================================== ; ========================================================================== ; ========================================================================== [Export_FILEBONE.NA] ; Path/Filename of NA file to create filename = filebone.na ; Include only the following zones (separated by commas) ; If commented out, all network bases that have an echotag and address ; set will be exported ; zones = 0,1,2,3,4 ; ========================================================================== ; ========================================================================== ; ========================================================================== [Export_AREAS.BBS] ; Path and filename to create filename = areas.bbs ; Only export Networked type message bases net_only = true ; ========================================================================== ; ========================================================================== ; ========================================================================== [Export_GOLDED] ; Path and filename to create filename = goldedareas.txt ; This is the value used in the group column when exporting group = 0 ; If set to a non-zero value, only bases configured with a network ; address that matches this zone will be exported zone = 0 ; ========================================================================== ; ========================================================================== ; ========================================================================== [Import_FILES.BBS] ; This function searches the filebase directories for existance of a ; text-based file listing file (often known as FILES.BBS but other ; formats can be imported as well such as PCBoard format listings. ; The files must physically exist in the same directory as the file ; in order for them to be uploaded to the BBS. ; Files that have have different file size in the database compared ; to the physical file can also be updated with the new size and a new ; file description, useful for using with external TIC processors. ; The name of the file to look for in each directory filesbbs=files.bbs ; Upload name for files uploaded by this function uploader_name = Mystic BBS ; Delete the FILES.BBS file after processing delete_after = false ; Update existing files in the database, if their file sizes do not match? ; Both size and description will be imported update_files = false ; The FILES.BBS format must be configured here using the following options ; ; DESC_FIRST: Defines how the first line of the file description is handled. ; ; If the value is 0, the importer will expect for the file description to ; appear directly after the filename (ie, the second "word" on the line). ; ; If the value is -1, then the importer will not look for a description on ; the first line. ; ; If the first description line is always at a specific character position ; on the first line, then DESC_FIRST should contain the character position desc_first = 0 ; If you are importing a files.bbs that has a filename and description on a ; single line Mystic will word wrap the description at 50 characters when ; enabled. desc_wrap = true ; DESC_CHAR: Defines the character identifier for an extended description line ; if this value is blank, it will mean a space. desc_char = ; DESC_START: Defines the character position of the extended description line. ; If a line contains the DESC_CHAR at the DESC_START position, ; then the importer will copy everything after that as an extended ; descripttion line. desc_start = 14 ; ========================================================================== ; ========================================================================== ; ========================================================================== [MassUpload] ; this function searches all configured file directories for new ; files and will upload them into the BBS. It will attempt to ; import FILE_ID.DIZ using the configured archivers if the option ; is enabled. ; Name to save has the uploader uploader_name = Mystic BBS ; Import FILE_ID.DIZ? 1=yes import_fileid = 1 ; Rename filenames that are longer than the maximum allowed length length_rename = true ; No description string used when no FILE_ID.DIZ is imported. no_description = No Description ; Ignore list one file mask per line (allows * and ? wildcards) ignore = files.bbs ;ignore = *.readme ; ========================================================================== ; ========================================================================== ; ========================================================================== [GenerateTopLists] ; Top list generator can generate up to top 99 for various different ; statistics. Each individual top file can be enabled or disabled and ; can each have their own template files that are totally configurable. ; ; 1=enable for top_call, top_post, etc. ; ; The number of items in each list is determined by the template. It ; could be any number between 1 and 99. ; ; In the templates use @NA01-99 for name and @DA01-99 for numerical data ; @DE returns the value set as _desc in the configuration. You can look ; at the provided template as an example. @RN01-99 can be used for the ; user's real name instead of their login name. ; ; namelen and datalen define the width the MCI code is padded to ; ; exclude list is one name per line text file listing names which should ; not be included in the generated output. lines that begin with a ; ; are considered comments. exclude_list = mutil.toplist.exclude.txt ; User name for "no one" when for example you have 3 users and make a ; top 10 list no_user = No one ; Sort order. You can use this to calculate top or bottom 99. 1=top sort_top=1 ; configuration for top callers generator ; @NA=name @DA=calls top_call = 1 top_call_template = mutil.toplist.txt top_call_output = topcallers.asc top_call_desc = Callers top_call_namelen = 30 top_call_datalen = 10 ; configuration for top downloads ; @NA=name @DA=downloads top_dl = 1 top_dl_template = mutil.toplist.txt top_dl_output = topdownload.asc top_dl_desc = Downloaders top_dl_namelen = 30 top_dl_datalen = 10 top_ul = 1 top_ul_template = mutil.toplist.txt top_ul_output = topupload.asc top_ul_desc = Uploaders top_ul_namelen = 30 top_ul_datalen = 10 top_post = 1 top_post_template = mutil.toplist.txt top_post_output = topposts.asc top_post_desc = Posters top_post_namelen = 30 top_post_datalen = 10 top_pcr = 1 top_pcr_template = mutil.toplist.txt top_pcr_output = toppcr.asc top_pcr_desc = Posts Per Call top_pcr_namelen = 30 top_pcr_datalen = 10 ; ========================================================================== ; ========================================================================== ; ========================================================================== [GenerateAllFiles] ; Generate all files list ; Path / filename of output filename. If the path is not included then the ; file will be created in whatever the current working directory is. filename = allfiles.txt ; ideas/features for the future? ; header, footer, baseheader, basefooter, exclude bases, uploader optional ; uploader line, format list line 1st,2nd line, space between files? ; ========================================================================== ; ========================================================================== ; ========================================================================== [PurgeMessageBases] ; No options for this function ; ========================================================================== ; ========================================================================== ; ========================================================================== [PackMessageBases] ; No options for this function ; ========================================================================== ; ========================================================================== ; ========================================================================== [PostTextFiles] ; Total number of text files to be posted. For each file there needs to ; be a file definition as show below. totalfiles = 2 ; This defines one file which will be posted to the message base. Each ; file should be prefixed with file# where # is a number from 1 to ; totalfiles. ; ; The delfile option (if true) will remove the filename after the message ; is posted. The baseidx is the permanent index of the message base to ; post the message into (shown as Index at the top of the message base ; editor in Mystic's configuration. Address is the echomail destination ; address file1_name = myfile.txt file1_baseidx = 2 file1_from = Sysop file1_to = All file1_subj = My subject file1_addr = 0:0/0 file1_delfile = false file2_name = myfile.txt file2_baseidx = 2 file2_from = Sysop file2_to = All file2_subj = My subject file2_addr = 0:0/0 file2_delfile = false ; ========================================================================== ; ========================================================================== ; ========================================================================== [Import_MessageBase] ; This option scans the message base directory, and creates any messages ; bases inside of Mystic that have data files in the directory. search_subdirs = true ; The following options define the "default" values used when creating ; new message bases. netaddress must match an exiting network ; address configured within Mystic BBS. default values are also ; taken from the system configuration for origin line, colors, etc. netaddress = 1:1/1 acs_list = acs_read = acs_post = acs_sysop = s255 header = msghead read_template = ansimrd index_template = ansimlst max_msgs = 500 max_msgs_age = 365 ; network type (0=local, 1=echomail, 2=newsgroup 3=netmail) net_type = 1 ; true/false type values 0=false 1=true (newscan 2=forced) use_autosig = 1 use_realname = 0 private_base = 0 new_scan = 1 qwk_scan = 1 use_ansi = 1 ; ========================================================================== ; ========================================================================== ; ========================================================================== [ImportEchoMail] ; If you want bad packets that cannot be imported moved to a directory ; then uncomment and set this value to an existing directory. ; bad_packet = c:\mystic\echomail\badpkt ; If you want to save duplicated / bad messages to a certain message ; base, then set this value to the *INDEX* of the message base (viewable ; at the top of the msgbase editor). Otherwise, set this value to -1 ; or leave it commented out and they will be ignored. ; dupe_msg_index = 5 ; This defines the number of messages to keep in the duplicate database. ; Each message takes 8 bytes of data, so for example 32,000 messages takes ; 256kb of memory while importing messages. Max is 250,000 messages. dupe_db_size = 32000 ; Enable or disable circular PATH dupe checking. This should be enabled ; in 99.99% of cases and will default to true if commented out. dupe_circular = true ; Toss packets from unsecure directory in addition to inbound? unsecure_dir = true ; Strip SEEN-BY lines from messages when importing? ; Note: This option should never be enabled if you current hub echomail ; or plan to act as an echo echomail hub for other BBS systems in the ; future. strip_seenby = false ; Rescan command to use when someone does a full %RESCAN on all bases ; This must be a valid command (ie R= D= or else the rescan ; will refuse to perform any action. The default is the last 250 messages ; for each base. Setting it to D=90 for example would give the last 90 ; days of messages. If you want the default to send every message in the ; base, then set it to go back a ridiculous number of messages R=999999999 default_rescan = R=250 ; If you want to remap netmail from one user name to another, you can ; define up to 50 remapped names below using the format ; ; Names are case insensitive. Fowards can even forward to other systems ; using the @address. ; ;forward = sysop;g00r00 ;forward = system operator;g00r00 ;forward = g00r00;g00r00@1:123/123 ; If you want to twit filter names so that messages are not imported ; or tossed to downlinks, then you can do one per line here, up to ; 100. Example: ;twit=John Guillory ;twit=kf5qeo ;twit=1:396/60 ;twit=46:1/138 ; If you want MUTIL to auto create message bases when it finds an ; echomail message for a non-existing base, set this value to true ; and use the options below to define the default values auto_create = true ; Use DOS 8.3 format filenames for JAM filename: ; 0 = Disabled (use echo tag for filename) ; 1 = Use shortened 8.3 filename (trimmed based on echo tag) ; 2 = Use random hex 8.3 filename dos_filename = 0 ; Convert filenames to lowercase lowercase_filename = true acs_list = acs_read = acs_post = acs_sysop = s255 header = msghead read_template = ansimrd index_template = ansimlst max_msgs = 500 max_msgs_age = 365 ; true/false type values 0=false 1=true (newscan 2=forced) use_autosig = 1 use_realname = 0 use_ansi = 1 new_scan = 1 qwk_scan = 1 ; If you want to create settings specific to certain node addresses you can! ; For example, if you want auto created bases that are linked to your AgoraNet ; address of 46:999/999 then you can by prefixing with the address: ;46:999/999_acs_list = ;46:999/999_acs_read = ;46:999/999_acs_post = ;46:999/999_acs_news = ;46:999/999_acs_sysop = s255 ;46:999/999_use_realname = 0 ; ========================================================================== ; ========================================================================== ; ========================================================================== [ExportEchoMail] ; Do not export messages from users currently online skip_online = false [MergeNodeLists] ; Finds the latest nodelists and merges them together in the mystic data ; folder. ; ; Set nodefile value one per line. The value should contain the full path ; and the base filename of the nodelist. ; ; examples: ; nodefile=c:\nodelist\nodelist ; nodefile=c:\nodelist\agoranet ; ; The above example will search in c:\nodelist and select the latest ; nodelist.### and agoranet.### nodelists. This comparison is first done ; by checking the day extension. If the extension is archived (.z12, etc) ; it will be unarchived before comparison. ; ; After decompressing, the 3-digit day extensions are compared, selecting ; the highest number. It will also compare the years of the file dates, ; and select the newest option. So if you have nodelist.025 dated 2013 ; and also nodelist.320 dated 2012, nodelist.025 will be selected. ; ; The same process is then be repeated for agoranet.### and once all of ; the defined 'nodefiles' are processed, they will be merged together and ; copied into Mystic's DATA folder so it can be used for nodelist lookups. ; ; If no nodelists are found, Mystic will not overwrite the current ; nodelist. Comments are stripped while merging to lower filesize and ; increase search performance. ; Strip nodes marked as DOWN? strip_down = true ; Strip nodes marked as PRIVATE? strip_private = true nodefile=d:\nodelists\nodelist nodefile=d:\nodelists\agoranet [FileToss] ; Processes .TIC files from incoming directories and move/upload files to the ; appropriate file bases (optionally creating them). Files are then tossed ; to the fileboxes of all downlinks connected to the file base. ; Directory where failed files are moved, or comment out to disable archive of ; failed files. This includes incorrect file sizes, bad CRC, missing area ; when auto-create is disabled, duplicate files, unsecured, etc. bad_dir=d:\mystic\files\badfile ; Toss TIC from unsecure directory in addition to inbound? unsecure_dir = false ; File description to use when no DIZ, long description or description can be ; found from the file or .TIC file. no_desc=No Description ; Name of the uploader to use when adding TIC files into the local file bases uploader=Mystic TIC ; Check size and CRC values supplied in TIC file (if found) against the actual ; file. If the value does not match, then skip tossing the file (moving it ; to the bad directory if enabled) check_crc = true check_size = true ; If this is true, then files that are FROM an unknown node will still be ; processed. If false, they will be moved to the bad directory or deleted ; depending on configuration. An "unsecure" node is one that is not directly ; configured within your echomail nodes configuration. allow_unsecure = false ; If this is true, then Mystic will allow the REPLACE TIC option, which will ; remove and replace files by the specified file mask. allow_replace = true ; If true, Mystic will do a case insensitive filename scan on case sensitive ; operating systems. IE if the .TIC file has a filename of "TEST.ZIP" but ; the actual filename on disk is "test.zip" Mystic will toss test.zip even ; though technically they are not the same filename. Note that enabling ; this will cause some additional disk scanning during tossing to search for ; files that have case variations. ignore_case = true ; If true, then Mystic will attempt to autocreate file bases when a file is ; found for an Area that does not already exist. If an unknown file is found ; and this option is disabled, the file will be considered a failure, and will ; be ignored/moved to bad directory (if enabled) auto_create = true ; The directory prefix for auto-created bases. This will be used with the ; areatag appended onto it, so for example if prefix was set to: ; ; dir_prefix=c:\mystic\files\fdn_ ; ; And the areatag was "nodelist", Mystic would create and the use path: ; c:\mystic\files\fdn_nodelist\ ; ; And the datafile would be fdn_nodelist dir_prefix = d:\mystic\files\fdn_ ; Auto create base options dispfile = template = ansiflst acs_list = acs_ftp = acs_download = acs_upload = acs_hatch = acs_sysop = s255 ; true/false type values 0=false 1=true (newscan 2=forced) free_files = 0 show_uploader = 1 new_scan = 1 ; Node-specific options allow some options to be overridden when a file is ; coming from a specific node. These options should be prefixed with the ; address, examples for each supported option are listed below in comments ;46:100/1_bad_dir = d:\mystic\files\badfile_agoranet\ ;46:100/1_dir_prefix = d:\mystic\files\agora_ ;46:100/1_allow_replace = true ;46:100/1_acs_list = s20z2 ;46:100/1_acs_ftp = s20z2 ;46:100/1_acs_download = s20z2 ;46:100/1_acs_upload = s20z2 ;46:100/1_acs_hatch = s20z2 ;46:100/1_acs_sysop = s255z2 [PackFileBases] ; If true, MUTIL will check to make sure files exist, and will update their ; file size in the listing, optionally removing missing files (remove_missing) check_files = true ; If true, MUTIL will remove any files which do not exist from the file ; list database while checking integrity. Otherwise they will be flagged as ; OFFLINE in the file listing. 0 byte files are considered "missing" remove_missing = false [LinkMessages] ; This function has no options [PurgeUserBase] ; Mark users for deletion that haven't called in days. ; This value cannot be less than 7 days = 180 [PackUserBase] [FileSort] ; Sort on which attribute (0=filename 1=size 2=date 3=downloads) attribute = 0 ; Sort direction 0=Ascending (A to Z, 1 to 10) 1=Descending (Z to A, 10 to 1) direction = 0 [AutoHatch] ; Files will be automatically hatched to connceted downlinks ; Each file must already exist in the file base. The format ; file= | filename | replaces filename (optional) file=nodelist | nodelist.z99 |nodelist.z99 file=3 | nodelist.z98 [EchoNodeTracker] ; Automatically reset the echonode tracking statistics after a specific ; number of days (or 0 to disable) reset_stats = 0 ; Set the number of days of inactivity before an Echomail Node is ; automatically deactivated (or 0 to disable) inactivity = 0 ; When a node is deactivated, should they also be unlinked from all ; subscribed message/file bases? unlink = false ; When set to TRUE, MUTIL will remove any files or mail packets from the ; node's outbound queue upon deactivation from inactivity clear_outbound = false ; When Mystic is unable to connect outbound to a node it can automatically ; change their mail type and filebox settings from "Crash" to "Hold" after ; a specific number of outbound connection failures combined with a specific ; number of days of outbound inactivity. Setting either to 0 will disable ; this feature and both requirements must be met for action to be taken. crash_errors = 0 crash_days = 0 [EchoUnlink] ; Echo must have existed for this many days to be considered for removal days_created = 30 ; Last post in base must be older than this to qualify for removal days_inactive = 90 ; Set mode to: 0=Notify SysOp only 1=Delete bases only 2=Notify+Delete action_mode = 0 ; Send Areafix unsubscribe to uplink when deleting message base send_areafix = false ; Excluded echotag list. These must always been listed at the bottom of the ; stanza after all other options. Excluded echotags can use wildcards and ; should be defined as one per line. ; exclude=MYSTIC ; exclude=FSX_*