Global settings
Note: Most 'matching' settings take wild card lists as parameters, for example "fred*" will match "freddy" and "Fred@bob". And "1.2.*,2.3.*" will match 1.2.4.4 and 2.3.99.100. Many settings will also accept a ! as a "not", and are processed from left to right. eg "!*,127.*,10.*" would first "deny all" then try and match on any 127.* or 10.* domains.
g_access_allow - List of ip addresses to allow access to
This is the simplist level of access you can provide, simply list ip addresses using wild cards that the server should permit to read news.
Syntax: g_access_allow string
See also: access_groups, g_access_deny, g_access_deny_msg, g_access_msg, g_access_feed, g_access_header
g_access_deny - List of deny IP addresses
List of ip addresses/wild cards to deny access to. Use this to specifically disallow problem users/abusers.
Syntax: g_access_deny string
See also: access_groups, g_access_allow, g_access_deny_msg, g_access_msg, g_access_feed, g_access_header
g_access_deny_msg - String to give to denied IP addresses
The message to give when the access setting bans access to the user.
Syntax: g_access_deny_msg string
See also: access_groups, g_access_allow, g_access_deny, g_access_msg, g_access_feed, g_access_header
g_access_feed - List of sites to allow to send us ihave/full feeds
This setting should be used to grant access to your incoming IHAVE, traditional news feeds.
Syntax: g_access_feed string
See also: access_groups, g_access_allow, g_access_deny, g_access_deny_msg, g_access_msg, g_access_header
g_access_header - List of sites which are sending us diablo format 'header' feeds
This permits a special form of header feed used by Diablo systems.
Syntax: g_access_header string
See also: access_groups, g_access_allow, g_access_deny, g_access_deny_msg, g_access_msg, g_access_feed
g_access_msg - String to send when group is protected/private
This message is sent when the user tries to read a protected news group
Syntax: g_access_msg string
See also: access_groups, g_access_allow, g_access_deny, g_access_deny_msg, g_access_feed, g_access_header
g_admin_ip - Admin IP access
Mask of valid IP addresses for admin users (default *), this is a security setting you can use to restrict remote web admin access to trusted IP addresses, example setting would be "127.0.0.1,10.0.0.*"
Syntax: g_admin_ip string
g_admin_localhost - Allow localhost admin without user/pass
Allows a localhost connection to access the web admin port without using the administrator username / password. This is good if you keep forgetting the admin password like I do.
Syntax: g_admin_localhost bool
See also: g_admin_ip
g_authent_cachelife - Time in seconds to cache authent lookups, default 3600 seconds
Set this very low if your authent module is doing something cleaver :-)
Syntax: g_authent_cachelife int
See also: g_authent_process, g_authent_domain, g_authent_number, g_authent_info, g_authent_setused, g_authent_setdelay, g_authent_setauto, g_authent_ip, g_rss_auth
g_authent_domain - Authent domain
If this is 'true', the virtual domain name is appended to the username before it is passed to the authent process. This lets the authent process deal with virtual domains. As a general rule, this should ALWAYS be true.
Syntax: g_authent_domain string
g_authent_info - Authent info
Defines a piece of information to store about the user in the user database (phone number, name, address, etc). Each piece of information is given a name, a field and an access mode. The name defines what appears in the web management display, the field is what is sent to the authent_process and the access mode can be one of the following: none, createonly, user, domadmin, or admin.
An access mode of 'admin' means that only the system admin can see the information, 'domadmin' means the sysadmin and any domain admin can see the information, 'user' means the user can see the information, 'createonly' means the user sets the information at creation time but cannot see it after that and 'none' ensures that no-one can see or modify the information (used for information that is handled by SurgeNews itself, either through the interface or otherwise) e.g.
g_authent_info name="Phone Number" field="phone" access="user"Syntax: g_authent_info name=string field=string access=string
g_authent_ip - Send ip number on end of authent lookups
This allows you to check a user is connecting from the right ip address
Syntax: g_authent_ip bool
See also: g_authent_cachelife, g_authent_process, g_authent_domain, g_authent_number, g_authent_info, g_authent_setused, g_authent_setdelay, g_authent_setauto, g_rss_auth
g_authent_number - Authent number
The number of concurrent authent processes to run. If you are using a slow external authent module (e.g. sql) then it is probably worth running 3-4, there is no need to have more than 1 when using nwauth.exe. (Default = 1)
Syntax: g_authent_number int
g_authent_process - Authent process
The command line of a NetWin authentication module. You can use one of our standard modules for LDAP, ODBCAuth, MYSQL etc or write your own, for more information on these modules see the authentication section of the manual
Syntax: g_authent_process string
g_authent_setauto - Minutes between setused for all users
If set this runs a tellnews setused_all every 'x' minutes
Syntax: g_authent_setauto int
g_authent_setdelay - Min time between sending newsused to database, e.g. 600 seconds
To prevent overloading a backend database with sets this stops the set command being used too often.
Syntax: g_authent_setdelay int
See also: g_authent_cachelife, g_authent_process, g_authent_domain, g_authent_number, g_authent_info, g_authent_setused, g_authent_setauto, g_authent_ip, g_rss_auth
g_authent_setused - Set 'newsused=NNNk' in authent module
Records the users 'usage' in your authent module/database, this is 'write only' information for your records/accounting only
Syntax: g_authent_setused bool
See also: g_authent_cachelife, g_authent_process, g_authent_domain, g_authent_number, g_authent_info, g_authent_setdelay, g_authent_setauto, g_authent_ip, g_rss_auth
g_back_mem - Memory to use for feeding buffer, default is 20mb
This controls how much buffering to use in memory for feeding, on a feed server you might set this to 500mb
Syntax: g_back_mem int
g_back_throttle - Millisecond delay between each send from back store, default 300
This throttles the back feed, it should not normally be adjusted, set to 1 to speed up the back feed.
Syntax: g_back_throttle int
g_backstore_path (and size)- Path to back store for outgoing feeds.
This area is used when items cannot be sent upstream or downstream immediately. On a normal system 10-100 mb is approriate. But if you are relaying a news feed then you probably want a larger backstore. Ideally any feed should have a 'backup' mechanism (a pull feed for example, or a delayed feed), in which case a small backstore is again reasonable.
Syntax: g_backstore_path string
g_con_perip - Connections per IP
Maximum number of connections allowed per IP address. Primarily this is used to prevent simple denial of service attacks where one user could otherwise use up all the channels your system can support and then do nothing with them.
Syntax: g_con_perip int
g_con_perip_webnews - Global concurrent connection limit per ip address from webnews
Connection limit for webnews sessions per ip. This needs to be higher than the nntp limit as web browsers often open multiple connections for images.
Syntax: g_con_perip_webnews int
See also: g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_create_allow - List of characters allowed in usernames/passwords
Defaults to A-Za-z0-9\-_. meaning usernames/password may contain letters, numbers, -, _ and . and nothing else. Only takes effect if g_create_strict is checked.
Syntax: g_create_allow string
g_create_badnames - List of illegal usernames
Comma separated list of illegal usernames, may contain wild cards, if username contains part of a non-wild card or matches a wildcard it is disallowed.
Syntax: g_create_badnames string
g_create_dictionary - File containing dictionary words to compare passwords to
Text file containing one word per line, passwords are compared to all words longer than 4 characters in this file, if a username or password contains a word in this file it is not allowed. Only takes effect if g_create_strict is checked.
Syntax: g_create_dictionary string
g_create_strict - Whether to apply strict rules to usernames/passwords
Checking this causes SurgeNews to check usernames/passwords only contain characters in g_create_allow, passwords do not contain words longer than 4 characters from g_create_dictionary, as well as requiring the password to be 6+ characters, and usernames/passwords to contain more than 1 character.
Syntax: g_create_strict bool
g_crosspost_max - Limit crossposts, e.g. 3
Limits cross posts for all incoming items
Syntax: g_crosspost_max int
See also: g_expire_nobody, g_expire_replicate, g_expire_hour, g_expire_range, g_pull_expire_slow
g_db_break - Break file writes to see what will happen
This setting is for debugging.
Syntax: g_db_break bool
g_db_nostore - Don't store messages (for feed server)
When using surgenews as a news router there is no need to store messages so this setting improves performance
Syntax: g_db_nostore bool
g_db_repair - Delete items that appear corrupt on disk
This is a little risky but can tidy up faults that may be reducing performance
Syntax: g_db_repair bool
g_domain_separator - Separator character for virtual domains
Strongly not recommended
Syntax: g_domain_separator string
See also: g_authent_cachelife, g_authent_process, g_authent_domain, g_authent_number, g_authent_info, g_authent_setused, g_authent_setdelay, g_authent_setauto, g_authent_ip, g_rss_auth
g_empty_hide - Hide empty groups from 'list' command
Many groups are empty, this setting hides them so your users time is not wasted looking through or downloading lists of groups that are empty.
Syntax: g_empty_hide bool
See also: g_hide_domain, g_hide_days, g_hide_port, g_hide_key, g_hide_allow, g_hide_userip, g_webnews_hide_partial, g_webnews_hideprot
g_expire_hour - Hour of day to start the expire
For example to start at 6a.m. set it to 6.
Syntax: g_expire_hour int
See also: g_expire_nobody, g_expire_replicate, g_expire_range, g_pull_expire_slow
g_expire_nobody - Expire items if body doesn't exist
On a non pull/header feed if item bodies expire, then the header should be expired, in which case this setting must be on.
Syntax: g_expire_nobody bool
See also: g_expire_replicate, g_expire_hour, g_expire_range, g_pull_expire_slow
g_expire_range - Expire items outside nitems*2
This can tidy up groups with big 'gaps' in the numbering
Syntax: g_expire_range bool
See also: g_expire_nobody, g_expire_replicate, g_expire_hour, g_pull_expire_slow
g_expire_replicate - Expire based on host we replicate from
This attempts to expire local items if they dont exist on the host we got the header feed from. It judges which is the primary host for a group based on the percent of items it holds, so if the upstream server holds less than half of the items it doesn't use it to expire
Syntax: g_expire_replicate bool
See also: g_expire_nobody, g_expire_hour, g_expire_range, g_pull_expire_slow
g_feed - List of outgoing news feeds.
Paramter Description host Host name to send items to. groups News groups to send, e.g. "rec.humor,netwin.*,alt.*" user Username to authenticate on upstream site pass Password to authenticxate on upstream site bind Local ip address to bind to when sucking from this site min Only send items larger than this max Only send items smaller than this exclude Don't send to sites if this name is in the 'path' header type Type of feed (normal,mixed,header,posting) In the 'status' output is a summary of each outgoing news feed:
See feed.htm for examples:
Syntax: g_feed name=string host=string groups=string user=string pass=string bind=string min=int max=int exclude=string type=string hash=int maxchan=int only=string
g_feed_debug - Write 'feed.log' of all outgoing feed articles
Used for debugging only
Syntax: g_feed_debug bool
See also: g_spam_allow
g_feed_delay - Delay ALL outgoing feeds this many seconds
Please note this delays all outgoing feeds, it is not intended for normal use but for specialised machines sending a delayed feed across an expensive network link
Syntax: g_feed_delay int
See also: g_access_feed, g_feed, g_feed_hash, g_feed_hash_me, g_feed_debug, g_feed_strip, g_feed_once, g_feed_noback, g_filter_feed, g_log_feed_size, g_log_feedout_size
g_feed_hash - (EXPERIMENTAL) Split up feed into this many equal parts, use hash=0-->n-1 to specify where each one should go
To distribut the feed over 3 servers use use a value of 3, then set the hash value for each of the 3 feeds to 0, 1 and 2, then send a 'header' only feed from each backend system to all the front end systems. Each front end system must be set to do replicate numbering as well.
Syntax: g_feed_hash int
g_feed_hash_me - If hash of message id doesn't match 'n' then don't store locally
Use this if the surgenews is acting as the central feed as well as one of the hash back ends
Syntax: g_feed_hash_me int
g_feed_noback - Disable backfeed
Just drop messages if we can't send them right away
Syntax: g_feed_noback bool
See also: g_access_feed, g_feed, g_feed_hash, g_feed_hash_me, g_feed_debug, g_feed_strip, g_feed_delay, g_feed_once, g_filter_feed, g_log_feed_size, g_log_feedout_size
g_feed_once - Only send cross posts to one outgoing feed
This allows you to split an incoming feed without duplicating crossposts to backends, it is a global setting so applies to all feeds
Syntax: g_feed_once bool
See also: g_access_feed, g_feed, g_feed_hash, g_feed_hash_me, g_feed_debug, g_feed_strip, g_feed_delay, g_feed_noback, g_filter_feed, g_log_feed_size, g_log_feedout_size
g_feed_strip - Strip dubious headers from outgoing feed articles (xref)
Use if sending to non surgenews servers
Syntax: g_feed_strip bool
See also: g_spam_allow
g_filter_feed - Filter incoming feed using body_filter.dat
Filter all incoming messages using the file body_filter.dat, each line in the file is a word/string that if found will result in the incoming message being rejected. Each line must be at least 3 characters long.
Syntax: g_filter_feed bool
See also: g_spam_allow
g_filter_post - Filter incoming local posts using body_filter.dat
Filter posts using the file body_filter.dat, each line in the file is a word/string that if found will result in the incoming message being rejected. Each line must be at least 3 characters long.
Syntax: g_filter_post bool
See also: g_spam_allow
g_fts_all - Index all messages not just ones with attachments
Turns on FTS indexing for ALL words in the subject of the message in all news groups. This could affect performance. The FTS index is used for searching groups via webnews.
Syntax: g_fts_all bool
See also: g_fts_disable
g_fts_disable - Turns off FTS
Disables the FTS indexing system.
Syntax: g_fts_disable bool
See also: g_fts_all
g_getmail - Get mail from a pop server into a news group
Paramter Description host Host name to fetch email messages from group News groups to send, e.g. "rec.humor,netwin.*,alt.*" user Username to authenticate on upstream site pass Password to authenticxate on upstream site header If specified then use the header specified as the news group to send the item to. Typically "to". The domain name is trimmed.
Syntax: g_getmail host=string user=string pass=string group=string header=string
g_getmail_add - Add headers to mail from pop server before posting locally.
This setting adds headers to a local post before submitting to the news group.
Syntax: g_getmail_add string
g_getmail_every - Minutes between checks, default is 10
Normally the default is sufficient, the units is 'minutes'
Syntax: g_getmail_every int
g_getmail_keep_to - Keep to and cc headers (with prefix of x-original-)
Normally to/cc headers are stripped, with this setting they are kept with the prefix x-original- added.
Syntax: g_getmail_keep_to bool
g_group_auto - Create groups automatically if they don't exist (not recommended)
This can result in a lot of news groups on your server, many of which may be foreign or generally useless. You should only use this for a feeding server.
Syntax: g_group_auto bool
See also: access_groups, g_groups, g_groups_block
g_groups - Global mask of visible groups, can be a file name
This settings lets you block unwanted groups in a simple global manner
Syntax: g_groups string
g_groups_block - Block messages even cross posted to these groups
This can help to stop in appropriate cross posts from porno news groups.
Syntax: g_groups_block string
g_hdr_add - Add header(s) to local posts
This only affects 'posts' not incoming feeds.
Syntax: g_hdr_add string
See also: post_add, g_crosspost_max, g_filter_post, g_postlimit, g_postlimit_silent, g_post_rec_days, g_post_rec_disabled, g_post_rec_nosubject, g_post_replace_date, g_replicate_post
g_hdr_strip - Strip header(s) from local posts
This only affects local posts. This is useful for removing headers that cause some problem upstream.
Syntax: g_hdr_strip string
See also: post_add, g_crosspost_max, g_filter_post, g_postlimit, g_postlimit_silent, g_post_rec_days, g_post_rec_disabled, g_post_rec_nosubject, g_post_replace_date, g_replicate_post
g_hide_allow - Email address to allow incoming gatewaying from
Sometimes you'll want to define some trusted addresses from which you will accept gatewayed messages, normally any address must be listed as an address that the server sends to
Syntax: g_hide_allow string
g_hide_days - Days to allow responses to a post via email (default 30)
This setting limits any spammy use of the email address by expiring the address after that many days.
Syntax: g_hide_days int
g_hide_domain - Domain to use when hiding users email addresses
Spammers routinely harvest your users email addresses from newsgroups. SurgeNews includes a unique technology to replace email addresses in headers with ever changing addresses. It then acts as a mail server firewall and only allows responses to the actual news messages to go through to the real email addresses (and only for a fixed time period)
This is the domain to use when hiding a users email address, lets say the users original header is:
From: joe@xyz.comThen if 'g_hide_doman' is set to "newsmail.netwin.co.nz" the post will be modified to
From: joe_N@newsmail.netwin.co.nzThe number 'n' is replaced by an integer.
Note: You must ensure there is an mx and a record for the 'g_hide_domain' pointing to your news server.
Note: Also define the g_hide_port setting to be "25"
Syntax: g_hide_domain string
g_hide_key - Key for authenticated user header encryption, set to a number on all cluster members
When set the authenticated users name is encrypted, and can be decrypted using the tellnews unhide command.
Syntax: g_hide_key int
g_hide_port - Port for incoming smtp connections (default 6025)
This must be changed to 25 to work, but you can only do this if you do not also have a mail server running on this same system.
Syntax: g_hide_port string
g_hide_userip - Use server ip for x-trace and nntp-posting-host
Helps keep users anonymous
Syntax: g_hide_userip bool
See also: access_groups, g_groups, g_groups_block
g_history_host - Central history server
For news router farms to avoid accepting duplicates
Syntax: g_history_host string
See also: g_history_path, g_history_max
g_history_max - History entries in memory, default 3000000
For very long history retention where you needs lookups by history id to work you could set a number as large as 100,000,000
Syntax: g_history_max int
See also: g_history_path, g_history_host
g_history_path - History file path
The history file is used to store the 'messageid' of every incoming message, this is used for several things, primarily to avoid accepting 'duplicate' messages when multiple incoming news feeds offer the same item. This area will need to be about 1 gig in size for a full news feed.
Syntax: g_history_path string
See also: g_history_max, g_history_host
g_home - Home path of server configs log etc
The main path to the SurgeNews files. This should not generally be changed.
Syntax: g_home string
g_ignore_badindex - Don't auto rebuild_index if index is corrupt
This setting is useful if the server gets into an endless loop rebuilding it's index, this should never happen of course!
Syntax: g_ignore_badindex bool
g_ignore_gaps - Ignore index gaps on restart
This is used for debugging. Best left alone :-), without this setting, sometimes surgenews will compress the indexes during startup.
Syntax: g_ignore_gaps bool
g_index_mask - Wild card mask of groups to fetch from index server
Experimental setting, do not use
Syntax: g_index_mask string
See also: g_ignore_badindex, g_index_path, g_index_server, g_index_servers, g_index_username, g_index_password, g_index_sendall, g_index_nocheck
g_index_nocheck - Skip index block consistency check on startup
Experimental setting, do not use
Syntax: g_index_nocheck bool
g_index_password - Password for index servers
Experimental setting, do not use
Syntax: g_index_password string
g_index_path - Path to index files (message id lookups)
The files in the 'index path' are used to handle messagid-group/item lookups. Some news clients request items by 'messageid' so this index allows the news server to find the relevant item. This index can be 'quite big'. For a full feed consider a partition of 4-8 gig.
Syntax: g_index_path string
g_index_sendall - If true, then request all headers not just 'read' ones
Experimental setting, do not use
Syntax: g_index_sendall bool
g_index_server - True if this is an index server
Experimental setting, do not use
Syntax: g_index_server bool
g_index_servers - List of root index servers
Experimental setting, do not use
Syntax: g_index_servers string
g_index_username - Username for index servers
Experimental setting, do not use
Syntax: g_index_username string
g_limit_domain - Add domain to limits
This lets the limits be applied 'per virtual domain' as if they were seperate servers, not generally useful.
Syntax: g_limit_domain bool
See also: g_limit_nohead, g_postlimit, g_postlimit_silent
g_limit_nohead - Don't count xover or headers against users download limits
Some people like to only count article bodies
Syntax: g_limit_nohead bool
See also: g_limit_domain, g_postlimit, g_postlimit_silent
g_log_date - Log full date in log lines
Log the full date instead of just the month in all log files
Syntax: g_log_date bool
g_log_feed_size - Size of each in.log and send.log file (e.g. 5mb)
You might set this to 500mb while tracking feed completion problems
Syntax: g_log_feed_size int
See also: g_log_flush, g_log_level, g_log_tcp_read, g_log_tcp_write, g_log_ignore, g_log_size, g_log_feedout_size, g_log_date, g_log_today, g_loguse, g_perflog_disable, g_perflog_flush_interval, g_perflog_lowres, g_perflog_logall, g_webnews_require_login
g_log_feedout_size - Size of feedout.log file (e.g. 5mb)
You might set this to 500mb while tracking feed completion problems
Syntax: g_log_feedout_size int
See also: g_log_flush, g_log_level, g_log_tcp_read, g_log_tcp_write, g_log_ignore, g_log_size, g_log_feed_size, g_log_date, g_log_today, g_loguse, g_perflog_disable, g_perflog_flush_interval, g_perflog_lowres, g_perflog_logall, g_webnews_require_login
g_log_flush - Flushing log - flush on every write
This makes the server flush log data after every write to the file. This affects performance but can sometimes be the only way to track down an unusual fault, e.g. if the server dies the log is completely up to date and shows the last thing the server did before dying.
Syntax: g_log_flush bool
g_log_ignore - Comma seperated list of things to NOT log, this is slow, use sparingly if at all, requires restart
A list of log file fragments, if found in the log lines then the log line is not printed to the log file.
Syntax: g_log_ignore string
See also: g_log_flush, g_log_level, g_log_tcp_read, g_log_tcp_write, g_log_size, g_log_feed_size, g_log_feedout_size, g_log_date, g_log_today, g_loguse, g_perflog_disable, g_perflog_flush_interval, g_perflog_lowres, g_perflog_logall, g_webnews_require_login
g_log_level - Set logging level
Set the logging level. This is primarily intended for finding faults with the server. Info level logging is the default. Alternatives are 'error' and 'debug'
Syntax: g_log_level string
g_log_size - Size of each news*.log file (e.g. 5mb)
Not generally useful.
Syntax: g_log_size int
See also: g_log_flush, g_log_level, g_log_tcp_read, g_log_tcp_write, g_log_ignore, g_log_feed_size, g_log_feedout_size, g_log_date, g_log_today, g_loguse, g_perflog_disable, g_perflog_flush_interval, g_perflog_lowres, g_perflog_logall, g_webnews_require_login
g_log_tcp_read,g_log_tcp_write - Log actual data for a specific IP
These settings let you 'trace' the data going 'to' and or 'from' a specific IP address (or list, or wild card) Lets say you have a client on a specific address that has a problem where the fault could be server/client or network related. To track it down add this to surgenews.ini
g_log_tcp_read "2.3.4.5"
g_log_tcp_write "2.3.4.5"Then try whatever if 'failing' and examine 'news.log' to see what was read/written to that client.
Syntax: g_log_tcp_read string
g_log_today - Log each session stats to 'today.rec'
This file is renamed to yesterday.rec at the end of the day
Syntax: g_log_today bool
g_loguse - Enable dnews style loguse u_yyyymmdd.rec log files
These files are only for backward compatibility
Syntax: g_loguse bool
See also: g_log_flush, g_log_level, g_log_tcp_read, g_log_tcp_write, g_log_ignore, g_log_size, g_log_feed_size, g_log_feedout_size, g_log_date, g_log_today, g_perflog_disable, g_perflog_flush_interval, g_perflog_lowres, g_perflog_logall, g_webnews_require_login
g_lookup_names - Lookup names for connecting IP addresses
This is one of those things that you very likely do not want to turn on. It makes the mail server lookup the IP name of any connecting user, however lookups can take 30-90 seconds so it can negatively impact apparent performance. Most of the access rules in the server can accept IP names if this setting is enabled, e.g. instead of specifying local users are 153.2.3.* you can say '*.netwinsite.com"
Syntax: g_lookup_names bool
g_manager - Email address of manager
Email address to send reports to.
Syntax: g_manager string
g_manager_port - Manager port (default 8120)
This is the port the web manager and web mail access will run on. Use the keyword 'disabled' to disable this part of the surgemail service.
Syntax: g_manager_port string
g_manager_secure_port - Manager secure port (default 8119)
This should be the main server management port and provides a secure server management connection. https://your.mail.server:8119. Use the keyword 'disabled' to disable this part of the surgemail service.
Syntax: g_manager_secure_port string
g_manager_smtp - SMTP server for manager Emails about failures
Defines the mail server to send manager reports with, defaults to 127.0.0.1
Syntax: g_manager_smtp string
g_max_gap - Max gap in a group, default 20,000
If a gap is found bigger than this, then the items before the gap are hidden. This fixes various problems that occur when item numbering is messed up and makes news client's happier.
Syntax: g_max_gap int
See also: g_max_items
g_max_items - Max items in a single group, if exceeded old items are expired
This setting is useful for keeping groups to a manageable size, remember a group with a million items in it will be difficult and slow for your users to read with a news client. Default is 10000000
Syntax: g_max_items int
g_moderator_match - Only allow posts to moderated groups if the moderator matches the logged in user
This can make local moderated groups secure, it also means the approved header is not required as surgenews can add it.
Syntax: g_moderator_match bool
See also: g_log_flush, g_log_level, g_log_tcp_read, g_log_tcp_write, g_log_ignore, g_log_size, g_log_feed_size, g_log_feedout_size, g_log_date, g_log_today, g_loguse, g_perflog_disable, g_perflog_flush_interval, g_perflog_lowres, g_perflog_logall, g_webnews_require_login
g_monitor_disable - Disable the monitor process
This allows the monitor process to be completely disabled. The monitor process is the nwatch executable and can be setup to monitor and automatically restart SurgeNews if it crashes. The monitor process is also used to start SurgeNews from the using the web interface if it has been shutdown.
Syntax: g_monitor_disable bool
g_monitor_port - SurgeMail monitor port (default 8121)
The port SurgeMail monitor runs on allowing SurgeMail to be remotely started. Typically you won't need to change this, however you can specify an IP address to bind to or a list of alternate ports, e.g. 10.3.2.3:7027 or 7027,8027 etc...
Syntax: g_monitor_port string
g_msg_max - Max size of a single message (units k) default is 10mb
Increase this limit at your perril, and certainly a setting over 100mb is not advisable.
Syntax: g_msg_max int
g_news_max_sessions - Max users
This setting protects the system from abuse and denial of service attacks. It also protects the system from memory/resource problems. The default is set to be appropriate for most systems, so don't generally set this unless you have an actual problem.
Syntax: g_news_max_sessions int
g_nntp_port - NNTP port(s) to listen for 'news' connections, default is 119
Typically you won't need to change this, however you can specify an IP address to bind to or a list of alternate ports, e.g. 10.3.2.3:119 or 119,2119 etc... By default the news server listens to port 119 on all adapters/addresses.
Syntax: g_nntp_port string
g_nntp_secure_port - port(s) to listen for secure SSL connections, default is 563
This protocol is 'secure' so that no one can 'spy' on the data as it goes past, this also protects your username and password while using this protocol.
Syntax: g_nntp_secure_port string
g_nntp_timeout - Timeout (units is minutes) default 30
On a busy server this could be sensibly set to 5 minutes
Syntax: g_nntp_timeout int
See also: g_nntp_port, g_nntp_secure_port
g_no_proxy_user - If set then doesn't add X-Proxy-User: header
This is useful to hide the identity of your users from upstream machines.
Syntax: g_no_proxy_user bool
See also: g_nntp_port, g_nntp_secure_port, g_nntp_timeout
g_part_dir - Part Directory
Used for part completion, part completion is generally a bad idea, don't use this.
Syntax: g_part_dir string
See also: g_part_size, g_webnews_hide_partial
g_part_size - Part Size e.g. 3gig or 400mb
Not a good idea, don't use this.
Syntax: g_part_size int
See also: g_part_dir, g_webnews_hide_partial
g_path_stamp - Path used in Path header and other appropriate spots
This setting should be the name your host is known, it should also be fully qualified, e.g. host.domain.com
Syntax: g_path_stamp string
g_perflog_disable - Completely disable 'perflog' historical performance logging
This setting has no further documentation currently available
Syntax: g_perflog_disable bool
g_perflog_flush_interval - Interval in seconds to flush the performance log files to disk (default 1hr = 3600)
This setting has no further documentation currently available
Syntax: g_perflog_flush_interval int
g_perflog_logall - Log all counters including the currently undisplayed counters
This setting has no further documentation currently available
Syntax: g_perflog_logall bool
g_perflog_lowres - Do low resolution perflog sampling (hiding hour scale)
This setting has no further documentation currently available
Syntax: g_perflog_lowres bool
g_pile - Expiration rules - for what to keep where, and how long to keep it.
Each 'pile' rule defines a set of groups, and a percent of your total disk space to use for those groups, as the 'last matching' pile is used you should define the first pile as groups="*" so that the news server can always find somewhere to put an item.
As the pile becomes 'full' the news server picks the 'oldest' 'bucket' file in that pile and deletes it.
The 'days' parameter specifies to keep a pile for a certain number of days and delete buckets older than that. As entire buckets are deleted this method is not exact but should be approximately right.
The bodycache flag if set to true, means this pile should only be used to store the bodies of messages. This is useful when you want to specify an area just for caching bodies for all groups.
Syntax: g_pile groups=string use=string days=int bodycache=bool
g_post_rec_days - If true the post.rec changes to post_DAYOFMONTH.rec
This means the server keeps 30 days of post.rec information.
Syntax: g_post_rec_days bool
g_post_rec_disabled - Disables post.rec
Completely stops logging to post.rec file for local posts
Syntax: g_post_rec_disabled bool
g_post_rec_nosubject - Removes subject from post.rec
Removese the subject from the records.
Syntax: g_post_rec_nosubject bool
g_post_replace_date - Replace date header for local posts
This prevents local users abusing the date header
Syntax: g_post_replace_date bool
g_postlimit - Max posts per hour before messages are blocked
This stops a spammer posting to all of your groups, a limit of about 100 is reasonable for most purposes
Syntax: g_postlimit int
g_postlimit_silent - Silently reject posts if limit exceeded
This stops spammers realizing why their posts don't get through. Be sure to check post_limit.log incase non spammers are being caught
Syntax: g_postlimit_silent bool
g_proxy - Proxy some or all groups to another server
Proxy settings tell surgenews to fetch some or all groups from one or more backend servers.
Paramter Descriptoin host The news host to connect to for these groups groups The groups that this proxy rule applies to, e.g. all binary groups except groups with fred in the name. "*binaries*,!*fred*" user Optional, user name to login to upstream server pass Optional, password. See proxy.htm for more information.
Syntax: g_proxy host=string groups=string user=string pass=string
g_proxy_cache_all - Cache all messages not just popular groups
If you have a large cache this setting might be worth using
Syntax: g_proxy_cache_all bool
g_proxy_entries - Max number of entries in cache
Generally you don't need to set this, a value of 10000 to 10000000 is valid
Syntax: g_proxy_entries int
g_proxy_nocreate - Don't create groups if they don't exist
This lets you limit proxying to groups you've specifically created locally
Syntax: g_proxy_nocreate bool
g_proxy_path - Path to proxy cache files (optional)
When using the proxy settings you can specify a cache for article bodies to improve performance and offload the backend server.
Syntax: g_proxy_path string
g_proxy_size - Size of proxy cache (optional)
The size of the proxy cache. e.g. g_proxy_size 300mb
Syntax: g_proxy_size int
g_proxy_xover - Beta feature, do not use
Not implemented yet.
Syntax: g_proxy_xover bool
g_pull - Sites to 'pull' news items from on request
Each pull setting defines a host surge can pull news from.
Paramter Description host Host name to fetch items from groups News groups to fetch, e.g. "rec.humor,netwin.*,alt.*" user Username to authenticate on upstream site pass Password to authenticxate on upstream site mb Daily 'mb' limit on this site, stop fetching after we have this much. last Max depth of items to fetch, e.g. 10 would only fetch the last '10' items no matter how many were new. connections Number of simultaneous connections we can use. maxbody Items larger than this will be 'header' sucked, and the body will then only be fetched if a user 'reads' the item. fetch_time Time in minutes between fetches, default is 15 minutes expire If 'true' then items are expired if this 'upstream' site doesn't have them. bodyonly If 'true' then this pull site is only used for fetching bodies on the fly, actual pulling of new headers is never done. This lets you specify a host that will only be used to find the body of a message when it is already know but not local xover If "true" then SurgeNews will only use the 'xover' command to pull header information, it will then 'reconstruct' fake headers based on the xover data. This setting is experimental, it is very fast particularly if your upstream server is slow to retrieve headers, but the results are not entirely accurate so use entirely at your own risk :-) See pull.htm for more info.
Syntax: g_pull name=string host=string groups=string mb=int last=int connections=int maxbody=int expire=bool fetch_time=string user=string pass=string bodyonly=bool xover=bool bind=string
g_pull_batchsize - Max bytes to pull from a single group at one time.
This setting helps limit the time spent on very large groups.
Syntax: g_pull_batchsize int
See also: g_pull, g_pull_life, g_pull_speed, g_pull_fast, g_pull_expire_slow, g_pull_upto_manual, g_pull_noxbody, g_pull_tryall
g_pull_expire_slow - Uses xhdr request to expire local items, not a good idea if upstream server has a lot of messages
Best not used.
Syntax: g_pull_expire_slow bool
See also: g_pull, g_pull_life, g_pull_speed, g_pull_batchsize, g_pull_fast, g_pull_upto_manual, g_pull_noxbody, g_pull_tryall
g_pull_fast - Tries to tune TCP to pull faster
You should never need this setting in normal usage.
Syntax: g_pull_fast bool
See also: g_pull, g_pull_life, g_pull_speed, g_pull_batchsize, g_pull_expire_slow, g_pull_upto_manual, g_pull_noxbody, g_pull_tryall
g_pull_life - Number of days to pull a group after it's read, default is 10
See title
Syntax: g_pull_life int
See also: g_pull, g_pull_speed, g_pull_batchsize, g_pull_fast, g_pull_expire_slow, g_pull_upto_manual, g_pull_noxbody, g_pull_tryall
g_pull_noxbody - Don't use XBODY header to choose site to pull bodies from
Useful if trying to get headers/bodies from different servers
Syntax: g_pull_noxbody bool
See also: g_pull, g_pull_life, g_pull_speed, g_pull_batchsize, g_pull_fast, g_pull_expire_slow, g_pull_upto_manual, g_pull_tryall
g_pull_speed - Global throttle for total pulling speed, bytes/second
See title
Syntax: g_pull_speed int
See also: g_pull, g_pull_life, g_pull_batchsize, g_pull_fast, g_pull_expire_slow, g_pull_upto_manual, g_pull_noxbody, g_pull_tryall
g_pull_tryall - Try all pull hosts even if xbody header found and failed
Searches harder to find the body of a message
Syntax: g_pull_tryall bool
See also: g_pull, g_pull_life, g_pull_speed, g_pull_batchsize, g_pull_fast, g_pull_expire_slow, g_pull_upto_manual, g_pull_noxbody
g_pull_upto_manual - Don't reset upto counter if upstream server numbering changes
This is useful if the upstream server numbering changes every day, this stops surgenews refetching old articles each time the numbering changes
Syntax: g_pull_upto_manual bool
See also: g_pull, g_pull_life, g_pull_speed, g_pull_batchsize, g_pull_fast, g_pull_expire_slow, g_pull_noxbody, g_pull_tryall
g_quota_host - Widearea quota limits, central host
SurgeNews can manage the 'quota' limits over a cluster of several systems. This allows you to add servers for increased load, or specialized servers and still maintain limits across all the systems. The quota host can be any 'surgenews' system, and the quota password must match.
(see 'domain' settings for usergroup and area limits)
Syntax: g_quota_host string
g_replicate - Use XRef numbering but only if host name matches this string
Replication is very dangerous as item numbering can be totally ruined by it. And once ruined you would need to delete the entire spool. This setting lets you specify one, or more hosts to accept replication from. This must match the XREF name of that host.
Syntax: g_replicate string
See also: g_expire_replicate, g_replicate_post
g_replicate_post - Name of host to send local posts to if we are replicating
When replicating item numbering must happen on the master host, so this lets you send local posts to the right place.
Syntax: g_replicate_post string
See also: g_expire_replicate, g_replicate
g_restart - Auto restart server
If turned on nwatch (a spawned second process) checks every 30 seconds to see if the server is still running. If it isn't running but it's pid file still exists (so if it died) this second process restarts the missing server and sends the manager account an Email reporting the fault.
For this to work on NT you need to set Dr Watson NOT to show visual notification of faults:
This sets Dr Watson to be the default debugger) c:/> drwtsn32 /i This brings up the Dr Watson settings, un-tick "Visual Notification" c:/> drwtsn32Syntax: g_restart bool
g_rss_auth - Only allow authenticated users to read rss feeds
This makes RSS only visible to users with a valid username/password
Syntax: g_rss_auth bool
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_rss_body - Characters to fetch from body, set to -1 to disable
This is a fraction slower under heavy load but nice too, so usually worth doing.
Syntax: g_rss_body int
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_rss_page - Size of rss page to generate, last 'n' items
If you set this too large it makes rss slow, but if you set it too small people may miss items. I recommend a setting of about 20 (which is the default), only increase on very busy groups, and probably then rss is an unwise reading choice.
Syntax: g_rss_page int
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_rule_age - Block messages older than this many days
This can help limit duplicates if you are sucking items and have a large number of items.
Syntax: g_rule_age int
See also: g_access_feed, g_feed, g_feed_hash, g_feed_hash_me, g_feed_debug, g_feed_strip, g_feed_delay, g_feed_once, g_feed_noback, g_filter_feed, g_log_feed_size, g_log_feedout_size
g_rule_attach - Block if attachment filename matches, last rule only is used, source=feed,post
Rules for controlling attachement file names. To allow *.jpg, use *,!*.jpg, to block exe files use *.exe,*.com. Only the last rule that matches the group wild card is used. This setting is for blocking files you don't want
Syntax: g_rule_attach groups=string name=string source=string
See also: g_spam_allow
g_send_domain - Domain used for bounce addresses when sending emails.
Sets the from address for messages sent to subscribed users
Syntax: g_send_domain string
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_server_name - SERVER_NAME to set for list of wildcard urls
Used by web interface, probably not relevant to this product.
Syntax: g_server_name url=string name=string
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_slow_bytes - Monthly download to allow before slowing a user down
The idea is to allow users to run at full speed until they have gone above a certain 'reasonable' limit, at which point you realize they aren't reading the stuff so wasting bandwidth on them is a bit pointless.
Syntax: g_slow_bytes string
See also: g_limit_domain, g_limit_nohead, g_postlimit, g_postlimit_silent
g_slow_speed - Speed for links which have downloaded more than x per month
See g_slow_bytes
Syntax: g_slow_speed string
See also: g_limit_domain, g_limit_nohead, g_postlimit, g_postlimit_silent
g_spam_allow - IP Wild card exceptions to spam limits
Matching ip addresses skip most spam checking, in particular. g_dns_require, g_black...,g_con_persubnet,g_spam_bounce_all,g_user_pipe,g_con_perip,g_verify_helo,g_ban_helo,tarpit limits etc...
Syntax: g_spam_allow string
g_spool - Define a spool disk for storage
Each of these settings defines a spool disk / path, you can have a hundred of these if necessary. SurgeNews will try and 'spread' the load over these disks.
Syntax: g_spool path=string mb=int
See also: g_spool_min
g_spool_min - Set min before throttling incoming feed
The default is 100mb, also see g_work_min, setting these values too low can have bad affects, the server may loose items if it runs out of disk space at a bad moment!
Syntax: g_spool_min string
See also: g_spool
g_ssl_allow - IP Wild card list to allow SSL encryption from
Allow ssl connections from these ip addresses
Syntax: g_ssl_allow string
See also: g_ssl_require, g_ssl_per_domain
g_ssl_per_domain - Create/use an SSL certificate for each domain
This setting has no further documentation currently available
Syntax: g_ssl_per_domain bool
g_ssl_require - IP Wild card list to require SSL encryption from
Require ssl connections from these ip addresses
Syntax: g_ssl_require string
See also: g_ssl_allow, g_ssl_per_domain
g_subscrip - Default subscriptions (news groups new users see)
Some news clients will issue the list subscrip nntp command to find the default list of subscribed groups, this setting lets you list your important local groups to help new users find something interesting right away. e.g.
g_subscrip "rec.humor,rec.arts.juggling,alt.humor.puns"
Syntax: g_subscrip string
g_testing - Testing, debugging code do not use
Test feature, do not use
Syntax: g_testing bool
g_thread_reuse - Reuse threads - fixes unix bug
Obsolete, do not use
Syntax: g_thread_reuse bool
g_thumb_path - Path to thumbnail images
This area can grow to a significant size, you can move it at any time, the cache files will just rebuild as needed.
Syntax: g_thumb_path string
g_timezone - Set timezone for posts with no date header
Use this to over-ride the default, only used if the date header is missing.
Syntax: g_timezone string
g_tomail - Send posts from a news group to an email address
Use for sending a newsgroup to an email address or mailing list.
Syntax: g_tomail to=string groups=string from=string subj_add=string
See also: g_webnews_tomail
g_user_keepdomain - Don't strip domain name for user lookup if user specified the domain
This results in a lookup of user@domain@domain, this setting is usually not a good idea but can be good for coping with existing 'odd' usernames that include an 'at'
Syntax: g_user_keepdomain bool
See also: g_authent_cachelife, g_authent_process, g_authent_domain, g_authent_number, g_authent_info, g_authent_setused, g_authent_setdelay, g_authent_setauto, g_authent_ip, g_rss_auth
g_webnews_domain - Map a domain to a different webnews template directory
This allows virtual domains to be setup in webnews templates
Syntax: g_webnews_domain host=string path=string
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_webnews_hide_partial - Hide incomplete multi part items (user can over-ride)
See title
Syntax: g_webnews_hide_partial bool
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_webnews_hideprot - Hide groups not visible to this user
This slows performance slightly.
Syntax: g_webnews_hideprot bool
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_webnews_port - Webnews port, default is 9080
The webnews interface may be more appropriate on port 80 if your server is not already running a web server.
Syntax: g_webnews_port string
See also: g_con_perip_webnews, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_webnews_require_login - If true then don't allow users to browse/read groups without logging in first
Webnews can allow anonymous browsing/reading or it can work in 'logged in only' mode.
Syntax: g_webnews_require_login bool
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_webnews_secure_port - Webnews secure port, default is 9081
The webnews interface may be more appropriate on port 443 if your server is not already running a web server.
Syntax: g_webnews_secure_port string
See also: g_con_perip_webnews, g_webnews_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_webnews_tomail - Show buttons so users can subscribe to a group and get messages via email
Lets users get a news group via email, users must be logged in to see this feature. Also ensure you have defined g_manager_smtp to point to a valid SMTP mail server.
Syntax: g_webnews_tomail bool
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_url, g_webnews_verify
g_webnews_url - Url to use for confirm message
e.g. http://host.name:port this setting may be used at other times when surgenews needs to generate a full web address
Syntax: g_webnews_url string
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_verify
g_webnews_verify - Force local posters to prove they are human
This can be used to stop automated spam robots
Syntax: g_webnews_verify bool
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_xq, g_webnews_domain, g_webnews_tomail, g_webnews_url
g_webnews_xq - Show 'download queue' buttons (not yet implemented)
Show download queue in webmail interface.
Syntax: g_webnews_xq bool
See also: g_con_perip_webnews, g_webnews_port, g_webnews_secure_port, g_webnews_require_login, g_webnews_hide_partial, g_webnews_hideprot, g_webnews_domain, g_webnews_tomail, g_webnews_url, g_webnews_verify
g_work_min - Set min before throttling incoming feed
The default is 100mb, also see g_spool_min, setting these values too low can have bad affects, the server may loose items if it runs out of disk space at a bad moment! This limit applies to all paths other than the 'spool' path
Syntax: g_work_min string
See also: g_work_path
g_work_path - Workarea for misc files
General scratch area for index files of various sorts. A partition of at least 1 gig is recommended for a full feed.
Syntax: g_work_path string
g_xover_max - Limits xover response to last 'n' messages in group
If you have news groups with 10 million items, and a stupid news client asks for all the items in the group, this tends to waste a lot of resources. This setting limits the response to only the last 'n' items in the group, a good setting might be 100000
Syntax: g_xover_max int
g_xover_nhandle - Number of handles to xover files
Typical values 20-400, uses up file handles.
Syntax: g_xover_nhandle int
g_xover_path - Xover index files
The indexes for xover data are stored here, this area may need to be very large on a heavily used system. For a full feed consider a 8-16 gig partition.
Syntax: g_xover_path string
g_xpat_disable - Disable xpat command
The xpat command can cause performance issues and is not required by the rfc, so may be worth disabling
Syntax: g_xpat_disable bool
g_yenc_bounce - Bounces faulty yenc messages
This is for tracking corrupted yenc attachments, not for general use.
Syntax: g_yenc_bounce bool
g_yenc_crc - Does simple check on yenc parts based on crc (Slower)
This is for tracking corrupted yenc attachments, not for general use!
Syntax: g_yenc_crc bool
g_yenc_size - Does simple check on yenc parts based on size
This is for tracking corrupted yenc attachments, not for general use!
Syntax: g_yenc_size bool