Configuration reference¶
Every section and key of bbs.conf, from the comments in
bbs.conf.sample
(the same help the configuration screens
show). Live keys take effect when the file is read again
(systemctl reload bbs, or saving in the configuration screens); the
rest when the BBS starts again. Configuration says how
the file is laid out.
| section | what it is |
|---|---|
[general] |
The system: its name, database, log, logins, and what callers see. |
[listen NAME] |
A listener: a port (or unix socket) callers come in by, and how their terminals are treated. |
[security] |
keeping callers out: a file of addresses and networks refused, one of names no new user may take (* wildcards), the hack log, and how long an address throttled for failed logins is banned outright. |
[event NAME] |
scheduled events: a program (no shell), daily at a time or every N minutes; see the wiki's Sysop tools. |
[backup] |
Backups: this file, the database (a SQLite file, whatever the engine, taken whole at one moment while callers are on) and the files' directories (file areas, image boards, FidoNet, screens, scripts), one archive (bbs-YYYYMMDD-HHMMSS.tar.gz) a backup. |
[acme NAME] |
Certificates from Let's Encrypt, ZeroSSL or any ACME CA, got and renewed by the BBS itself (in the manner of acme.sh), for every TLS server here: one given no cert_file (or tls_cert) and key_file uses them, the one whose names cover the name the client asks for, or the first. |
[modemmenu] |
modemmenu's auth socket ([authd] there): the accounts modemmenu logs in (no password here) log in by telnet, SSH, the web ... |
[http] |
The HTTP API (REST, server-sent events, and WebSockets in JSON and protobuf): see docs/wiki/HTTP-API.md. |
[chan] |
How the image boards are run. |
[level NAME] |
An access level: a user's level gets what the [level] at or below it says. |
[ftp] |
The FTP server for the file areas: users log in with their BBS name and password; each file area is a directory. |
[news] |
Newsgroups: a message area with a newsgroup name (bbs area newsgroup General bbs.general) is a newsgroup, served by NNTP to newsreaders and kept in step with peer news servers. |
[nntp] |
The NNTP server. |
[peer NAME] |
A peer news server, one section each. |
[mail] |
E-mail. |
[smarthost] |
An outgoing mail server to send through, instead of straight to each domain's MX: your provider's, or a relay such as Postfix. |
[pop3] |
The mail servers: each runs only with its section. |
[imap] |
IMAP: mail programs read and file mail in the folders. |
[smtp] |
mail submission: users send mail, logged in (port 587 or 465) |
[mx] |
mail from the internet: on port 25, named by the domain's MX record. |
[lmtp] |
LMTP, for a mail server in front (Postfix's virtual_transport) to hand mail in: a unix socket's path or host:port. |
[fido] |
FidoNet (or another FTN network). |
[binkp] |
binkp: answer the links' calls. |
[link NAME] |
A system we exchange mail with, one section each. |
[qwknet NAME] |
QWK networks this BBS is a node of (DOVE-Net and the like), one section each. |
[door NAME] |
A door: a program callers play, or another system's doors. |
[irc] |
IRC: the chat rooms as channels (#main ...), for IRC clients. |
[oscar] |
AIM and ICQ: the chat for AIM and ICQ clients (OSCAR), beside IRC. |
[irclink] |
IRC server linking: the BBS as a hub server on an IRC network, by TS6 (Solanum, charybdis, ircd-ratbox; ircd-hybrid 8 with protocol = hybrid) or P10 (ircu, Undernet's, with protocol = p10). |
[ircpeer NAME] |
A server the BBS links with, one section each: [ircpeer ITS.NAME]. |
[aol] |
AOL: a host for AOL's own clients (3.0, 4.0 and on, over TCP). |
[msn] |
MSN Messenger: the chat for MSN Messenger 1.0 to 4.7 and Windows Messenger 4.x (MSNP2 to 7), beside IRC and AIM. |
[marvel] |
The Microsoft Network of 1995 to 1998, for the MSN client that came with Windows 95: users sign in with their BBS names and passwords, the message areas are its Categories, and each area is an MSN bulletin board to read and post in. |
[ymsg] |
Yahoo! Messenger: the chat for Yahoo! Messenger clients (YMSG 9 to 16), beside IRC, AIM and MSN. |
[mrc] |
Multi Relay Chat: the BBSes' chat network. |
[finger] |
finger: who is on ("finger @host"), and who a user is ("finger name@host"). |
[gopher] |
gopher: about the system, who is on, and what areas the sysop opens: no login, so anyone sees them. |
[gemini] |
gemini: gopher's capsule over Gemini (gemini://, TLS): about the system, who is on, users as finger tells of them, and what areas the sysop opens: no login, so anyone sees them. |
[feeds] |
News, weather and quotes: the main menu's [N], as the online services had them. |
[feed NAME] |
A feed of the sysop's, or changes to the catalogue's of that name (enabled = no leaves it out) |
[weather] |
Each caller's weather, for where they say they are (a US ZIP code, a town anywhere, or a latitude and longitude): the National Weather Service's forecast and warnings in the US, Open-Meteo's forecast elsewhere (free for non-commercial use, credited), and the USGS's earthquakes near. |
[quotes] |
Stock quotes from IEX (the Investors Exchange): its own trades and quotes, not the whole market's. |
[time] |
Time. |
[ntp] |
an NTP server (UDP). |
[nts] |
an NTS-KE server (RFC 8915): TLS 1.3, its clients' keys and cookies for [ntp], which then answers NTS-secured requests too. |
[ptp] |
a PTP grandmaster (IEEE 1588, UDP ports 319 and 320, as root): two-step, end to end. |
[menu NAME] |
A menu of the sysop's: [menu main] takes the place of the built-in main menu; others are reached from it (menu:NAME). |
[strings] |
The prompts and messages, with @-codes and tags. |
[general]¶
The system: its name, database, log, logins, and what callers see.
| key | default | live | what it does |
|---|---|---|---|
name |
yes | the system's name, its sysop's, and where it is (system info, @-codes) Examples: D-Modem BBS. |
|
sysop |
yes | the system's name, its sysop's, and where it is (system info, @-codes) Examples: Sysop. |
|
location |
yes | the system's name, its sysop's, and where it is (system info, @-codes) Examples: Somewhere, Earth. |
|
postal_address |
yes | how to reach it, for the system info (and @POSTAL@, @PHONE@, @ADDRESSES@): its postal address, the numbers callers dial, and its internet addresses. Examples: 1 Main St, Springfield. |
|
phone |
yes | how to reach it, for the system info (and @POSTAL@, @PHONE@, @ADDRESSES@): its postal address, the numbers callers dial, and its internet addresses. Examples: +1 555 0100 (300-33600), +1 555 0101 (V.92). |
|
addresses |
yes | how to reach it, for the system info (and @POSTAL@, @PHONE@, @ADDRESSES@): its postal address, the numbers callers dial, and its internet addresses. Examples: telnet bbs.example.org, ssh bbs.example.org:2222, https://bbs.example.org/. |
|
user |
; started as root, serve binds its ports (23, 79 ...) and sockets, then runs as this user (and its group, or group; with the user's other groups, for socket_group and docker): what it makes is that user's. Other bbs commands run as root become it too (but check, config, backup restore). Under systemd: no User= then. See docs/wiki/Running.md. Examples: bbs. |
||
group |
; started as root, serve binds its ports (23, 79 ...) and sockets, then runs as this user (and its group, or group; with the user's other groups, for socket_group and docker): what it makes is that user's. Other bbs commands run as root become it too (but check, config, backup restore). Under systemd: no User= then. See docs/wiki/Running.md. Examples: bbs. |
||
database |
the database: SQLite's file, or a PostgreSQL, MySQL or MariaDB server (whose password then lives here: keep this file 0640). bbs db copy moves one into another. See docs/wiki/Databases.md. Examples: /var/lib/bbs/bbs.db, postgres://bbs:PASSWORD@db.example.org/bbs, mysql://bbs:PASSWORD@db.example.org:3306/bbs, mariadb://bbs:PASSWORD@db.example.org:3306/bbs. |
||
log |
syslog (daemon facility), stderr, none, or a file. Examples: syslog. |
||
banner |
yes | shown before the login (text, or a file) Examples: Call us at 555-1000, 300 to 33600 bit/s.. |
|
banner_file |
yes | shown before the login (text, or a file) Examples: /etc/bbs/banner.txt. |
|
motd |
yes | the message of the day, after the login: motd, then the file (read at each login) Examples: The line is down for maintenance on Sunday.. |
|
motd_file |
yes | the message of the day, after the login: motd, then the file (read at each login) Examples: /etc/bbs/motd.txt. |
|
screens_dir |
the sysop's screens (display files): logon, newuser, welcome, goodbye and those menus name; NAME.ans (ANSI, CP437), NAME.asc (text), NAME.3270. screens.sample has some to start from. Examples: /etc/bbs/screens. |
||
scripts_dir |
the sysop's JavaScript: NAME.js runs from a menu's script:NAME, logon.js after each login; scripts.sample has some to start from. Examples: /etc/bbs/scripts. |
||
page_command |
yes | a caller pages the sysop and no sysop is on: tell them this way ({user}, {node} and {reason} filled in; no shell). E.g. a push by ntfy.sh: Examples: curl -s -d "{user} on node {node}: {reason}" https://ntfy.sh/my-bbs-pages. |
|
goodbye |
yes | shown when a caller logs off. Examples: Thanks for calling.. |
|
qwk_id |
yes | QWK offline mail: the packets' name (BBSID.QWK), up to 8 letters and digits; by default made of the name. See docs/wiki/Offline-Mail.md. Examples: DMODEM. |
|
logo |
the logo: a PNG (at most 1000x400), shown as sixel graphics on telnet terminals that have them, and on 3270s (below). Without one, the system's name is drawn in a pixel font. Examples: /etc/bbs/logo.png. |
||
tn3270_symbols |
3270 graphics. Box drawing (graphic escape) is used wherever the terminal has it. tn3270_symbols: the logo (the system's name, or tn3270_logo, a PNG, or logo: one color, dark or opaque pixels drawn) loaded as programmed symbols on terminals that take them (IBM PCOMM, HostExplorer; not the x3270 family). tn3270_vector: pictures (an image board's) drawn in the terminal's own colors, and the logo, with vector graphics on terminals that have them (PCOMM with host graphics on); without them, pictures are drawn in programmed symbols (tn3270_symbols), in blocks (graphic escape, x3270), or said in words. Examples: yes. |
||
tn3270_vector |
3270 graphics. Box drawing (graphic escape) is used wherever the terminal has it. tn3270_symbols: the logo (the system's name, or tn3270_logo, a PNG, or logo: one color, dark or opaque pixels drawn) loaded as programmed symbols on terminals that take them (IBM PCOMM, HostExplorer; not the x3270 family). tn3270_vector: pictures (an image board's) drawn in the terminal's own colors, and the logo, with vector graphics on terminals that have them (PCOMM with host graphics on); without them, pictures are drawn in programmed symbols (tn3270_symbols), in blocks (graphic escape, x3270), or said in words. Examples: yes. |
||
tn3270_logo |
3270 graphics. Box drawing (graphic escape) is used wherever the terminal has it. tn3270_symbols: the logo (the system's name, or tn3270_logo, a PNG, or logo: one color, dark or opaque pixels drawn) loaded as programmed symbols on terminals that take them (IBM PCOMM, HostExplorer; not the x3270 family). tn3270_vector: pictures (an image board's) drawn in the terminal's own colors, and the logo, with vector graphics on terminals that have them (PCOMM with host graphics on); without them, pictures are drawn in programmed symbols (tn3270_symbols), in blocks (graphic escape, x3270), or said in words. Examples: /etc/bbs/logo.png. |
||
files_dir |
file areas: where the files are kept (by number, never by their names), the largest file, and what a user may upload a day (sysops: no limit) Examples: /var/lib/bbs/files. |
||
max_file_size |
file areas: where the files are kept (by number, never by their names), the largest file, and what a user may upload a day (sysops: no limit) Examples: 64M. |
||
upload_quota |
file areas: where the files are kept (by number, never by their names), the largest file, and what a user may upload a day (sysops: no limit) Examples: 256M. |
||
new_users |
yes | callers may make their own accounts (NEW at the login, PF5 on a 3270) Examples: yes. |
|
max_nodes |
yes | callers at once, on all listeners together. Examples: 32. |
|
attempts |
yes | logins before hanging up, seconds after a wrong one. Examples: 3. |
|
fail_delay |
yes | logins before hanging up, seconds after a wrong one. Examples: 3. |
|
login_timeout |
yes | seconds to log in, and for a key once logged in. Examples: 120. |
|
idle_timeout |
yes | seconds to log in, and for a key once logged in. Examples: 600. |
|
throttle_failures |
yes | this many failed logins (or new accounts) from one IP address or caller ID within throttle_time seconds turn it away until they age out (0: never). Callers with neither (a modem server's, no caller ID) are not throttled: one would lock out all. Examples: 10. |
|
throttle_time |
yes | this many failed logins (or new accounts) from one IP address or caller ID within throttle_time seconds turn it away until they age out (0: never). Callers with neither (a modem server's, no caller ID) are not throttled: one would lock out all. Examples: 600. |
|
line_speeds |
yes | line speeds: callers by telnet, SSH or the web (not modem callers, whose line has a speed of its own) may have the BBS send to them at a modem's speed, 300 to 115200 bit/s, ANSI art drawn as it was. Each picks theirs on the profile (B), or with Ctrl-B at any prompt; it is kept with their account. Break (telnet's or SSH's) or Ctrl-X sends the rest of a slow screen at once. line_speeds = no: none may. line_speed: what callers get until they pick (off: full speed). line_speed_ask = yes: asked at each login. Examples: yes. |
|
line_speed |
yes | line speeds: callers by telnet, SSH or the web (not modem callers, whose line has a speed of its own) may have the BBS send to them at a modem's speed, 300 to 115200 bit/s, ANSI art drawn as it was. Each picks theirs on the profile (B), or with Ctrl-B at any prompt; it is kept with their account. Break (telnet's or SSH's) or Ctrl-X sends the rest of a slow screen at once. line_speeds = no: none may. line_speed: what callers get until they pick (off: full speed). line_speed_ask = yes: asked at each login. Examples: off. |
|
line_speed_ask |
yes | line speeds: callers by telnet, SSH or the web (not modem callers, whose line has a speed of its own) may have the BBS send to them at a modem's speed, 300 to 115200 bit/s, ANSI art drawn as it was. Each picks theirs on the profile (B), or with Ctrl-B at any prompt; it is kept with their account. Break (telnet's or SSH's) or Ctrl-X sends the rest of a slow screen at once. line_speeds = no: none may. line_speed: what callers get until they pick (off: full speed). line_speed_ask = yes: asked at each login. Examples: no. |
|
geoip |
yes | where callers are. geoip: a country database, a MaxMind DB (.mmdb: GeoLite2 Country, DB-IP Lite...) or a CSV of ranges, read again when it changes; with it the log, who's online and the web forum's flags give callers' countries. A city database (GeoLite2 City, DB-IP City Lite, IP2Location DB3 and up) gives the log and the sysop their region and city too (some 120 MB of memory). geoip_credit: the credit its licence asks for, at the foot of the pages that show it. See docs/wiki/Modem-Callers.md. Examples: /var/lib/bbs/dbip-country-lite.mmdb, /var/lib/bbs/dbip-city-lite.mmdb. |
|
geoip_credit |
yes | where callers are. geoip: a country database, a MaxMind DB (.mmdb: GeoLite2 Country, DB-IP Lite...) or a CSV of ranges, read again when it changes; with it the log, who's online and the web forum's flags give callers' countries. A city database (GeoLite2 City, DB-IP City Lite, IP2Location DB3 and up) gives the log and the sysop their region and city too (some 120 MB of memory). geoip_credit: the credit its licence asks for, at the foot of the pages that show it. See docs/wiki/Modem-Callers.md. Examples: IP geolocation by DB-IP. |
|
geoip_credit_url |
yes | where callers are. geoip: a country database, a MaxMind DB (.mmdb: GeoLite2 Country, DB-IP Lite...) or a CSV of ranges, read again when it changes; with it the log, who's online and the web forum's flags give callers' countries. A city database (GeoLite2 City, DB-IP City Lite, IP2Location DB3 and up) gives the log and the sysop their region and city too (some 120 MB of memory). geoip_credit: the credit its licence asks for, at the foot of the pages that show it. See docs/wiki/Modem-Callers.md. Examples: https://db-ip.com. |
|
phone_country |
yes | phone_country: the country (ISO 3166: US, GB, DE) whose national numbers modem caller IDs are, as the exchange sends them ("4155550123", "02071234567"); international ones (+44..., 011 44...) are read anyway. A caller ID gives the country, the kind of number and, where the plan says, the place (by libphonenumber's tables, built in) Examples: US. |
|
geoip_users |
yes | geoip_users: new users are asked, and may say in their profile, whether the sysops may see where they call from (by geoip, or a modem's caller ID); the place of each who says yes is kept at each login, for the sysop's user pages. It needs geoip or phone_country. Examples: yes. |
|
geoip_prefill |
yes | geoip_prefill: a new user's "Where are you calling from?" starts filled in with where their address or caller ID says (they may change it) Examples: yes. |
|
new_user_level |
20 |
yes | Access levels: a new user's level (0-255). |
validated_level |
20 |
yes | Access levels: the level a sysop's validation gives a user. |
[listen NAME]¶
A listener: a port (or unix socket) callers come in by, and how their terminals are treated.
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
type |
telnet |
a telnet server; with tn3270 = yes (the default), a client that says it is a 3270 (IBM-3278-2-E, IBM-DYNAMIC) gets the 3270 screens raw the caller's bytes as they come, no protocol: app_dmodem's mode = tcp, modemmenu tcp/unix items rlogin RFC 1282, as modemmenu's rlogin items speak it ssh SSH: passwords or users' keys (host_keys, legacy) Examples: telnet, raw, ssh, rlogin. |
|
address |
host:port |
or a unix socket's path (/run/bbs/bbs.sock) Examples: :2300, :992, 127.0.0.1:2323, :2324, :2222, 127.0.0.1:2513, /run/bbs/menu.sock, /run/bbs/handoff.sock. |
|
via |
... |
how its callers came, in who's online (telnet, modem, rlogin by type) | |
ansi |
auto |
the terminal's ANSI color: auto asks the terminal (or believes its terminal type), yes, no. | |
utf8 |
auto |
UTF-8 both ways: auto by the terminal type (xterm and friends yes; "ansi" BBS terminals no), yes, no. | |
sixel |
auto |
the logo as sixel graphics on terminals that say they have them (device attributes); no. auto for telnet, no for raw and rlogin (slow modem lines) | |
petscii |
no |
Commodore 64s and 128s: yes (every caller is one), auto (a caller that is not ANSI is watched while it logs in: a key only a C64 has, or DEL asked for after a name in capitals, makes it PETSCII), no. | |
vt |
auto |
ask terminals what they are (answerback, DA1, DA2, XTVERSION; ESC Z for a VT52): DEC line drawing for VTs without UTF-8, bold on monochrome VTs, a VT52's escapes; no: ask nothing. | |
rip |
auto |
RIPscrip menus and screens for terminals that answer ESC [ ! (BBS terminals; modern ones are not asked), yes, no. | |
max_per_ip |
4 |
connections at once from one address (loopback and unix sockets: no limit, they are modem servers) | |
header |
no |
yes: a session header comes first, NAME=value lines and an empty line: app_dmodem's DMODEM_* or a modemmenu item's MODEM_* (rate, caller ID, number) Examples: yes. |
|
header_timeout |
10 |
seconds for the header. | |
handoff |
no |
type = raw on a unix socket, with header = yes: the caller's line itself may come with the header (SCM_RIGHTS, modemmenu's item with handoff = yes), the session then on that terminal, nothing copied; closing the connection gives the line back. Examples: yes. |
|
trust_user |
no |
yes: the header's MODEM_USER (an rlogin's server user) is logged in without a password. Only where nothing but trusted menus can connect. Examples: yes. |
|
create_users |
no |
yes, with trust_user: a user unknown here gets an account (with no password of its own) Examples: yes. |
|
socket_mode |
0660 |
a unix socket's permissions. | |
socket_group |
... |
and its group. Examples: asterisk. |
|
frontend |
bbs |
what callers get: the BBS, or compuserve: the CompuServe Information Service (telnet and raw listeners; no 3270). See the wiki's CompuServe. Or marvel: The Microsoft Network, for the MSN client of Windows 95 dialing in (telnet and raw). See the wiki's MSN-Classic. Examples: compuserve. |
|
connect |
9600 |
compuserve: the CONNECT line before Host Name: (telnet: 9600; raw: none, the modem says its own) | |
tn3270 |
See the section above. Examples: yes. |
||
tls_cert |
See the section above. Examples: /etc/bbs/cert.pem. |
||
tls_key |
See the section above. Examples: /etc/bbs/key.pem. |
||
host_keys |
See the section above. Examples: /etc/bbs/ssh_host_ed25519_key /etc/bbs/ssh_host_rsa_key. |
||
legacy |
old clients only: CBC ciphers and 1024-bit DH too. Examples: no. |
[security]¶
keeping callers out: a file of addresses and networks refused, one of names no new user may take (* wildcards), the hack log, and how long an address throttled for failed logins is banned outright.
| key | default | live | what it does |
|---|---|---|---|
deny_file |
See the section above. Examples: /etc/bbs/deny.txt. |
||
name_deny_file |
See the section above. Examples: /etc/bbs/names.txt. |
||
hack_log |
See the section above. Examples: /var/log/bbs/hack.log. |
||
ban_minutes |
See the section above. Examples: 60. |
[event NAME]¶
scheduled events: a program (no shell), daily at a time or every N minutes; see the wiki's Sysop tools.
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
command |
See the section above. Examples: /usr/local/bin/poll-something. |
||
every |
See the section above. Examples: 60. |
||
timeout |
See the section above. Examples: 600. |
[backup]¶
Backups: this file, the database (a SQLite file, whatever the engine, taken whole at one moment while callers are on) and the files' directories (file areas, image boards, FidoNet, screens, scripts), one archive (bbs-YYYYMMDD-HHMMSS.tar.gz) a backup. bbs backup makes one now; bbs backup restore ARCHIVE puts one back. See docs/wiki/Backups.md.
| key | default | live | what it does |
|---|---|---|---|
dir |
yes | where the archives go (by default backups beside an SQLite database; a server's database needs one said). Keep it on another disk if you can. Examples: /var/backups/bbs. |
|
at |
yes | daily, at this time (none: only when asked) Examples: 03:30. |
|
keep |
yes | archives kept, the oldest taken away (0: all) Examples: 7. |
|
files |
yes | the files' directories too (no: the configuration, database and SSH host keys alone) Examples: yes. |
[acme NAME]¶
Certificates from Let's Encrypt, ZeroSSL or any ACME CA, got and renewed by the BBS itself (in the manner of acme.sh), for every TLS server here: one given no cert_file (or tls_cert) and key_file uses them, the one whose names cover the name the client asks for, or the first. cert_file = acme says so outright; cert_file = acme:NAME picks an [acme NAME]. Gemini (its pinned certificate) and Yahoo! Messenger (login.yahoo.com's) keep their own unless told. They are kept in acme/ beside the database, renewed 30 days before they run out (or when the CA says), and read again by every server as they change. bbs acme list shows them; bbs acme renew gets them now. See docs/wiki/Certificates.md.
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
email |
the account's contact: the CA writes here of a certificate not renewed. Examples: sysop@example.org. |
||
ca |
letsencrypt, letsencrypt-staging (for trying it out), zerossl, buypass, google, sslcom, or a directory's URL. Examples: letsencrypt. |
||
eab_kid |
External Account Binding, for CAs that need it (Google's; ZeroSSL's is got by email if not given) Examples: kid-from-the-ca. |
||
eab_hmac_key |
External Account Binding, for CAs that need it (Google's; ZeroSSL's is got by email if not given) Examples: base64url-key. |
||
domains |
the names of [acme]'s own certificate (named default); more in [acme NAME]. Examples: bbs.example.org, www.bbs.example.org, mail.example.org, imap.example.org, smtp.example.org. |
||
challenge |
how the CA is shown the names are this host's: http (a token on port 80), tls-alpn (a certificate on port 443, from any TLS server of the BBS's there) or dns (a TXT record; the only one for *.wildcards) Examples: http, tls-alpn. |
||
http_address |
HTTP-01's port 80 (by default :80 when a certificate uses it, unless a web server here is on port 80 already, which answers it then; no: none) Examples: :80. |
||
dns |
DNS-01's provider: cloudflare, route53, digitalocean, hetzner, gandiv5, ovh, namecheap, porkbun, godaddy, desec, duckdns, pdns, rfc2136, acme-dns, httpreq; exec:PROGRAM (run as PROGRAM present|cleanup NAME VALUE); or acmesh:dns_xx, one of acme.sh's 150 dnsapi scripts (needs acmesh) Examples: cloudflare. |
||
dns_env_file |
KEY=value lines: the provider's credentials, as lego names them for its providers (CF_DNS_API_TOKEN=...) or acme.sh for its (CF_Token=...) Examples: /etc/bbs/acme-dns.env. |
||
acmesh |
acme.sh, for dns = acmesh:..., and its home if not beside it (where its account.conf keeps the credentials it saved) Examples: /home/bbs/.acme.sh/acme.sh. |
||
acmesh_home |
acme.sh, for dns = acmesh:..., and its home if not beside it (where its account.conf keeps the credentials it saved) Examples: /home/bbs/.acme.sh. |
||
dns_resolvers |
DNS servers asked whether the record is out yet (default: the system's) Examples: 1.1.1.1:53, 8.8.8.8:53. |
||
dns_check |
how: authoritative (the zone's own servers), resolvers (dns_resolvers) or no (just wait dns_wait seconds, as acme.sh's --dnssleep) Examples: authoritative. |
||
dns_wait |
how: authoritative (the zone's own servers), resolvers (dns_resolvers) or no (just wait dns_wait seconds, as acme.sh's --dnssleep) Examples: 0. |
||
key_type |
the key: ec256, ec384, rsa2048, rsa3072 or rsa4096 (Windows XP's clients know only RSA) Examples: ec256. |
||
renew_days |
renew this many days before the end. Examples: 30. |
||
hook |
run (by sh) after each new certificate, with CERT_NAME, CERT_FILE, KEY_FILE and CERT_DOMAINS set: to hand it to other programs. Examples: systemctl reload nginx. |
||
dir |
where the account and certificates are kept (default acme/ beside the database) Examples: /var/lib/bbs/acme. |
[modemmenu]¶
modemmenu's auth socket ([authd] there): the accounts modemmenu logs in (no password here) log in by telnet, SSH, the web ... with their modemmenu password, asked of modemmenu's backends. See docs/wiki/Modem-Callers.md.
| key | default | live | what it does |
|---|---|---|---|
auth_socket |
See the section above. Examples: /run/modemmenu/auth.sock. |
||
create_users |
a user modemmenu knows and the BBS does not gets an account at their first login, any way in. Examples: yes. |
||
timeout |
seconds for its answer. Examples: 15. |
[http]¶
The HTTP API (REST, server-sent events, and WebSockets in JSON and protobuf): see docs/wiki/HTTP-API.md. Tokens: POST /api/v1/login, or bbs token add USER -scope read,post. Without this section there is none.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :8443. |
||
cert_file |
TLS is the default; tls = no only on 127.0.0.1 behind a proxy that has it. With no cert_file and key_file, the [acme] certificates. Examples: /etc/bbs/tls/cert.pem. |
||
key_file |
TLS is the default; tls = no only on 127.0.0.1 behind a proxy that has it. With no cert_file and key_file, the [acme] certificates. Examples: /etc/bbs/tls/key.pem. |
||
trusted_proxies |
behind a reverse proxy (nginx, Caddy): its addresses (or ranges), which are believed when they say whose a request is (X-Forwarded-For, Forwarded, X-Real-IP), for rate limits, logs, bans and the deny lists. secure_cookies: logins' cookies over HTTPS only (the default with tls = yes; say yes when the proxy has TLS) Examples: 127.0.0.1, ::1. |
||
secure_cookies |
behind a reverse proxy (nginx, Caddy): its addresses (or ranges), which are believed when they say whose a request is (X-Forwarded-For, Forwarded, X-Real-IP), for rate limits, logs, bans and the deny lists. secure_cookies: logins' cookies over HTTPS only (the default with tls = yes; say yes when the proxy has TLS) Examples: yes. |
||
anonymous |
anonymous callers may see /system and /who. Examples: yes. |
||
cors |
one browser origin allowed to call it (no *) Examples: https://www.example.org. |
||
metrics |
Prometheus metrics, on an address of their own (keep it private) Examples: 127.0.0.1:9100. |
||
max_per_ip |
connections at once from one address. Examples: 20. |
||
rate |
requests a second per token (or per IP without one), and the burst. Examples: 10. |
||
burst |
requests a second per token (or per IP without one), and the burst. Examples: 20. |
||
session_hours |
how long a /login session lasts. Examples: 24. |
||
terminal |
the web terminal at /terminal: the BBS in a browser (xterm.js, built in) Examples: yes. |
||
forum |
the web forum at /forum/ (and /): the message areas as a bulletin board; forum_guests: those not logged in read the areas anyone may read. Examples: yes. |
||
forum_guests |
yes | the web forum at /forum/ (and /): the message areas as a bulletin board; forum_guests: those not logged in read the areas anyone may read. Examples: yes. |
|
forum_flags |
yes | forum_flags: posters' countries' flags by their names, where [general] geoip or phone_country knew them when they posted. Examples: yes. |
|
forum_theme |
yes | the forum's theme until a caller chooses (at the foot of each page): ipb3 (in the manner of Invision Power Board 3), ipb5 (fresh, as Invision Community 5), ipb4 (modern, as Invision Community 4), ipb2 (classic, as IPB 2), ipb1 (retro, as IPB 1), ikon (grey, as Ikonboard 2), vb6 (clean, as vBulletin 6), vb5 (connect, as vBulletin 5), vb4 (steel, as vBulletin 4), vb3 (blue, as vBulletin 3), vb2 (purple, as vBulletin 2), vblite (lavender, as vBulletin Lite), xf23 (light, as XenForo 2.3), xf2 (xen, as XenForo 2), xf1 (classic, as XenForo 1), mybb18 (flat, as MyBB 1.8), mybb16 (classic, as MyBB 1.6), mybb12 (original, as MyBB 1.2), pun14 (oxygen 2, as PunBB 1.4), flux15 (air, as FluxBB 1.5), pun12 (oxygen, as PunBB 1.2), yabb25 (silver, as YaBB 2.5), yabb2 (default, as YaBB 2), yabb1 (gold, as YaBB 1 Gold), smf30 (natural, as Simple Machines Forum 3.0), smf21 (simple, as SMF 2.1), smf20 (curve, as SMF 2.0), smf1 (core, as SMF 1), phpbb33, phpbb32, phpbb31 and phpbb30 (prosilver, as phpBB 3.3, 3.2, 3.1 and 3.0), phpbb2 (silver, as phpBB 2) or phpbb1 (dark, as phpBB 1) Examples: ipb3. |
|
chan |
the image boards at /chan/ (bbs chan board add b Random); see docs/wiki/Image-Boards.md. Examples: yes. |
[chan]¶
How the image boards are run.
| key | default | live | what it does |
|---|---|---|---|
dir |
images and thumbnails, a directory a board; and the boards' secret. Examples: chan. |
||
max_file |
yes | the largest image (a board can have its own: bbs chan board set) Examples: 4M. |
|
thread_wait |
yes | flood control: seconds between an address's threads, and its posts. Examples: 60. |
|
reply_wait |
yes | flood control: seconds between an address's threads, and its posts. Examples: 15. |
|
max_comment |
yes | the longest comment, in characters. Examples: 2000. |
|
strip_metadata |
yes | JPEGs' EXIF (where a phone took the photo) taken out. Examples: yes. |
|
captcha |
yes | those not signed in answer a captcha (made here) to post; the BBS's users signed in at /chan/login, and callers on the terminals, do not. Examples: yes. |
|
captcha_length |
yes | its letters (4 to 10), how hard to read (easy, normal, hard), and the seconds one lasts. Examples: 6. |
|
captcha_level |
yes | its letters (4 to 10), how hard to read (easy, normal, hard), and the seconds one lasts. Examples: normal. |
|
captcha_lifetime |
yes | its letters (4 to 10), how hard to read (easy, normal, hard), and the seconds one lasts. Examples: 600. |
|
options |
yes | the post form's Options line (sage: no bump; nonoko); a board may say otherwise: bbs chan board set DIR options yes|no|default. Examples: yes. |
|
ffmpeg |
yes | files besides images, on the boards that take them (bbs chan board set DIR files webm,mp4,pdf; sound yes): the programs that make their thumbnails (a video's first frame, a PDF's first page; without them a card saying what the file is), and the longest a video may run, in seconds (0: any) Examples: ffmpeg. |
|
pdftoppm |
yes | files besides images, on the boards that take them (bbs chan board set DIR files webm,mp4,pdf; sound yes): the programs that make their thumbnails (a video's first frame, a PDF's first page; without them a card saying what the file is), and the longest a video may run, in seconds (0: any) Examples: pdftoppm. |
|
max_video |
yes | files besides images, on the boards that take them (bbs chan board set DIR files webm,mp4,pdf; sound yes): the programs that make their thumbnails (a video's first frame, a PDF's first page; without them a card saying what the file is), and the longest a video may run, in seconds (0: any) Examples: 120. |
|
ruffle |
yes | Flash (files swf,flv), played in the page by Ruffle: its self-hosted package's directory (make ruffle fetches it into ruffle/) Examples: /opt/bbs/ruffle. |
|
archive_days |
yes | days a thread pruned off a board's last page stays in its archive (/chan/b/archive: read-only, its files kept; 0: always). A board can keep none: bbs chan board set DIR archive no. Examples: 3. |
|
geoip |
yes | a country database for the boards with flags (bbs chan board set DIR flags yes): a MaxMind DB (.mmdb: GeoLite2 Country, DB-IP Lite...) or a CSV of ranges; read again when it changes. By default [general]'s. Examples: /var/lib/bbs/GeoLite2-Country.mmdb. |
|
geoip_credit |
yes | the credit its licence asks for, at the foot of each page (by default [general]'s) Examples: IP geolocation by DB-IP. |
|
geoip_credit_url |
yes | the credit its licence asks for, at the foot of each page (by default [general]'s) Examples: https://db-ip.com. |
|
style |
yes | the style callers get until they choose: by the board (yotsuba-b if it is worksafe, else yotsuba), or yotsuba, yotsuba-b, futaba, burichan, photon, tomorrow. |
[level NAME]¶
An access level: a user's level gets what the [level] at or below it says.
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
name |
yes | shown in the profile and to the API. Examples: New user, Member. |
|
time |
yes | minutes online a day, and files downloaded a day (0: no limit) Examples: 30, 120. |
|
downloads |
yes | minutes online a day, and files downloaded a day (0: no limit) Examples: 2, 20. |
|
ratio |
yes | files a user may download for each they upload (0: no ratio), and how many before the ratio counts. Examples: 3. |
|
ratio_free |
yes | files a user may download for each they upload (0: no ratio), and how many before the ratio counts. Examples: 10. |
|
post |
yes | what it may do (yes unless it says no): post, mail, chat, page the sysop, download, upload, doors. Examples: no. |
|
mail |
yes | what it may do (yes unless it says no): post, mail, chat, page the sysop, download, upload, doors. Examples: no. |
|
chat |
yes | what it may do (yes unless it says no): post, mail, chat, page the sysop, download, upload, doors. Examples: no. |
|
page |
yes | what it may do (yes unless it says no): post, mail, chat, page the sysop, download, upload, doors. Examples: yes. |
|
download |
yes | what it may do (yes unless it says no): post, mail, chat, page the sysop, download, upload, doors. Examples: yes. |
|
upload |
yes | what it may do (yes unless it says no): post, mail, chat, page the sysop, download, upload, doors. Examples: no. |
|
doors |
yes | what it may do (yes unless it says no): post, mail, chat, page the sysop, download, upload, doors. Examples: yes. |
[ftp]¶
The FTP server for the file areas: users log in with their BBS name and password; each file area is a directory. bbs filearea add NAME makes one. Without this section there is no FTP server.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :2121. |
||
passive_ports |
passive data connections: open these in the firewall too. Examples: 50000-50100. |
||
public_host |
behind NAT: the public IP address passive replies give. Examples: 203.0.113.7. |
||
tls |
required: explicit FTPS (AUTH TLS before USER); implicit: TLS from the first byte; optional or no: passwords may cross in the clear. Examples: required. |
||
cert_file |
required: explicit FTPS (AUTH TLS before USER); implicit: TLS from the first byte; optional or no: passwords may cross in the clear. Examples: /etc/bbs/cert.pem. |
||
key_file |
required: explicit FTPS (AUTH TLS before USER); implicit: TLS from the first byte; optional or no: passwords may cross in the clear. Examples: /etc/bbs/key.pem. |
||
anonymous |
anonymous and ftp may log in to download. Examples: no. |
||
max_clients |
connections at once, and from one address; seconds idle before one is closed. Examples: 32. |
||
max_per_ip |
connections at once, and from one address; seconds idle before one is closed. Examples: 4. |
||
idle_timeout |
connections at once, and from one address; seconds idle before one is closed. Examples: 300. |
||
advertise |
the address users are told, in the file areas. Examples: bbs.example.org:2121. |
[news]¶
Newsgroups: a message area with a newsgroup name (bbs area newsgroup General bbs.general) is a newsgroup, served by NNTP to newsreaders and kept in step with peer news servers. [news] names this site in Path and Message-IDs; it defaults to the machine's name.
| key | default | live | what it does |
|---|---|---|---|
hostname |
See the section above. Examples: news.example.org. |
||
domain |
See the section above. Examples: news.example.org. |
||
organization |
See the section above. Examples: D-Modem BBS. |
||
max_article |
the largest article taken (from readers and peers) Examples: 64K. |
[nntp]¶
The NNTP server. Without this section there is none (peers still sync)
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :1119. |
||
tls |
no, optional (STARTTLS), required (no AUTHINFO before STARTTLS), implicit (TLS from the first byte, NNTPS: usually port 563) Examples: required. |
||
cert_file |
no, optional (STARTTLS), required (no AUTHINFO before STARTTLS), implicit (TLS from the first byte, NNTPS: usually port 563) Examples: /etc/bbs/cert.pem. |
||
key_file |
no, optional (STARTTLS), required (no AUTHINFO before STARTTLS), implicit (TLS from the first byte, NNTPS: usually port 563) Examples: /etc/bbs/key.pem. |
||
read |
read = anyone, or users: AUTHINFO first. post = yes: logged-in users post. Examples: anyone. |
||
post |
read = anyone, or users: AUTHINFO first. post = yes: logged-in users post. Examples: yes. |
||
max_clients |
connections at once, and from one address; seconds idle before one is closed. Examples: 32. |
||
max_per_ip |
connections at once, and from one address; seconds idle before one is closed. Examples: 8. |
||
idle_timeout |
connections at once, and from one address; seconds idle before one is closed. Examples: 600. |
[peer NAME]¶
A peer news server, one section each. pull: its new articles in our newsgroups are fetched (GROUP, OVER, ARTICLE); push: our new articles are offered (IHAVE, or POST if it refuses IHAVE). accept_from: the addresses it may send us articles from by IHAVE (nothing else may)
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: news.example.net:119. |
||
tls |
See the section above. Examples: starttls. |
||
ca_file |
See the section above. Examples: /etc/bbs/peer-ca.pem. |
||
username |
See the section above. Examples: bbs. |
||
password |
See the section above. Examples: secret. |
||
groups |
See the section above. Examples: bbs.*,!bbs.test. |
||
pull |
See the section above. Examples: yes. |
||
push |
See the section above. Examples: yes. |
||
interval |
See the section above. Examples: 600. |
||
max_per_run |
See the section above. Examples: 1000. |
||
initial |
on first contact, how many of each group's latest articles to fetch. Examples: 100. |
||
accept_from |
the addresses it may send us articles from (IHAVE) Examples: news.example.net. |
[mail]¶
E-mail. Each user is name@domain (bbs mail address NAME shows it), and their BBS mail is their e-mail: Inbox, Sent, Drafts, Starred, Unread, All Mail and Trash, in any mail program, over POP3 and IMAP. Without this section the BBS has no e-mail.
| key | default | live | what it does |
|---|---|---|---|
domain |
See the section above. Examples: example.org. |
||
hostname |
this host's name, said in SMTP's greeting and Received lines. Examples: mail.example.org. |
||
outbound |
how mail for elsewhere goes: direct (to each domain's MX, port 25), smarthost (through [smarthost]) or none (only mail here) Examples: direct. |
||
max_message |
the largest message taken; recipients in one; days in the trash before mail is gone (0: until emptied); days the queue keeps trying. Examples: 10M. |
||
max_recipients |
the largest message taken; recipients in one; days in the trash before mail is gone (0: until emptied); days the queue keeps trying. Examples: 50. |
||
trash_days |
the largest message taken; recipients in one; days in the trash before mail is gone (0: until emptied); days the queue keeps trying. Examples: 30. |
||
queue_days |
the largest message taken; recipients in one; days in the trash before mail is gone (0: until emptied); days the queue keeps trying. Examples: 5. |
||
postmaster |
who gets postmaster@, abuse@ and bounces' notes (default: the sysop) Examples: sysop. |
||
dkim_key_file |
DKIM: bbs mail dkim /etc/bbs/dkim.pem makes the key and prints its DNS record (selector._domainkey.domain) Examples: /etc/bbs/dkim.pem. |
||
dkim_selector |
DKIM: bbs mail dkim /etc/bbs/dkim.pem makes the key and prints its DNS record (selector._domainkey.domain) Examples: bbs. |
||
cert_file |
the certificate for the mail servers (each can name its own) Examples: /etc/bbs/cert.pem. |
||
key_file |
the certificate for the mail servers (each can name its own) Examples: /etc/bbs/key.pem. |
[smarthost]¶
An outgoing mail server to send through, instead of straight to each domain's MX: your provider's, or a relay such as Postfix. tls: starttls, implicit (port 465) or no. insecure = yes: its certificate unchecked.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: smtp.example.net:587. |
||
tls |
See the section above. Examples: starttls. |
||
username |
See the section above. Examples: bbs@example.org. |
||
password |
See the section above. Examples: secret. |
||
insecure |
See the section above. Examples: no. |
[pop3]¶
The mail servers: each runs only with its section. tls: no, optional (STARTTLS offered), required (STARTTLS before a login) or implicit (TLS from the first byte: POP3S 995, IMAPS 993, SMTPS 465). Each takes address, tls, cert_file, key_file, max_clients, max_per_ip and idle_timeout, as [nntp] does. POP3: mail programs fetch the inbox.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :1110. |
||
tls |
See the section above. Examples: required. |
[imap]¶
IMAP: mail programs read and file mail in the folders. Its IDLE wants a long idle_timeout.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :1143. |
||
tls |
See the section above. Examples: required. |
||
idle_timeout |
See the section above. Examples: 1800. |
[smtp]¶
mail submission: users send mail, logged in (port 587 or 465)
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :1587. |
||
tls |
See the section above. Examples: required. |
[mx]¶
mail from the internet: on port 25, named by the domain's MX record. checks = yes: SPF, DKIM and DMARC checked; mail is refused that fails a DMARC reject policy, or (no DMARC) fails SPF and is not signed.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :25. |
||
tls |
See the section above. Examples: optional. |
||
checks |
See the section above. Examples: yes. |
||
dnsbl |
DNS blocklists the sending address is looked up in (none by default). A listed sender is refused at MAIL FROM (554, with the list's reason); a list that does not answer refuses no one. Spamhaus refuses queries through public resolvers (8.8.8.8, 1.1.1.1) and wants a paid feed for heavy or commercial use: run a resolver of your own (unbound) for it. Examples: zen.spamhaus.org, bl.spamcop.net. |
[lmtp]¶
LMTP, for a mail server in front (Postfix's virtual_transport) to hand mail in: a unix socket's path or host:port.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: /run/bbs/lmtp.sock. |
[fido]¶
FidoNet (or another FTN network). bbs area echo General FSX_GEN makes an area an echo; mail to Name@zone:net/node is netmail. Without this section the BBS is not on FidoNet.
| key | default | live | what it does |
|---|---|---|---|
address |
our address, then any AKAs. Examples: 21:1/999. |
||
origin |
the origin line under echomail written here. Examples: D-Modem BBS, by phone and telnet. |
||
dir |
inbound, outbound and bad packets go under it. Examples: /var/lib/bbs/fido. |
||
charset |
what messages are written in: cp437 (what FidoNet reads) or utf-8. Examples: cp437. |
||
max_message |
the largest message taken. Examples: 64K. |
||
nodelist |
nodelists, to check netmail and look systems up: paths or patterns (the newest file of each), or area:NAME, the newest file in a file area. Examples: /var/lib/bbs/fido/nodelist/NODELIST.* area:Nodelist. |
[binkp]¶
binkp: answer the links' calls. Without it, links are only called.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :24554. |
||
max_clients |
See the section above. Examples: 16. |
||
max_per_ip |
See the section above. Examples: 4. |
[link NAME]¶
A system we exchange mail with, one section each.
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: 21:1/100. |
||
host |
to call it (port 24554 if none); without a host it calls us; nodelist: where the nodelist says. Examples: hub.example.net:24554. |
||
password |
the session password (CRAM-MD5); and the packets', up to 8 characters. Examples: secret. |
||
packet_password |
the session password (CRAM-MD5); and the packets', up to 8 characters. | ||
plain_password |
it may be sent in the clear to a mailer without CRAM-MD5. Examples: no. |
||
echoes |
the echoes exchanged with it: a wildmat of tags. Examples: FSX_*. |
||
route |
netmail for systems that are not links goes by it (one link at most) Examples: yes. |
||
fileechoes |
the file echoes (TIC) exchanged with it: a wildmat (none if unset); and the TICs' password, both ways. Examples: FSX_*. |
||
tic_password |
the file echoes (TIC) exchanged with it: a wildmat (none if unset); and the TICs' password, both ways. | ||
areafix |
it asks for echoes and file echoes by AreaFix and FileFix (of those echoes and fileechoes allow) with this password; we ask its with it too. Examples: no. |
||
areafix_password |
it asks for echoes and file echoes by AreaFix and FileFix (of those echoes and fileechoes allow) with this password; we ask its with it too. | ||
create |
make the echoes and file echoes it sends that are not here. Examples: no. |
||
packer |
how mail to it is bundled: zip, arc, arj, lha; none: bare packets. Examples: zip. |
||
poll |
call it every this many seconds, mail or not (0: only with mail) Examples: 3600. |
||
aka |
which of our addresses it knows us by (default: ours in its zone) Examples: 21:1/999. |
[qwknet NAME]¶
QWK networks this BBS is a node of (DOVE-Net and the like), one section each. The BBS calls the hub by FTP, puts a REP of what was written here in the network's areas, and takes the hub's packet. A hub run by this BBS gives each node an account: bbs user qwknode NAME. See docs/wiki/Offline-Mail.md.
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
address |
the hub's FTP server. Examples: hub.example.org:21. |
||
tls |
FTPS: explicit (AUTH TLS), implicit, or no. Examples: explicit. |
||
user |
the account the hub gave this node. Examples: MYBBS. |
||
password |
the account the hub gave this node. Examples: secret. |
||
dir |
where the hub keeps its packet ("/" for one in the root) Examples: /qwk. |
||
hub_id |
the hub's BBSID (by default: the packet found there) Examples: VERT. |
||
every |
call it every this many minutes (0: only with bbs qwknet call) Examples: 60. |
Any other key is a conference carried here: CONFERENCE = AREA (the hub's conference number, this BBS's area).
[door NAME]¶
A door: a program callers play, or another system's doors.
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
description |
See the section above. Examples: Legend of the Red Dragon. |
||
command |
See the section above. Examples: docker run --rm -i --network none --name bbs-door{node} --user {uid}:{gid} -v /srv/doors:/doors -v {dir}:/node bbs-dosemu2 'F:\LORD' 'START.BAT {node}', /usr/games/adventure. |
||
dir |
the node's directory ({node} its number): mounted as /node above. Examples: /var/lib/bbs/doors/node{node}. |
||
drop_files |
the node's directory ({node} its number): mounted as /node above. Examples: door.sys dorinfo1.def door32.sys chain.txt. |
||
charset |
cp437: shown as UTF-8 to UTF-8 terminals; utf-8; raw: as it comes. Examples: cp437, utf-8. |
||
time_limit |
minutes a visit. Examples: 60. |
||
sysop_only |
yes: for sysops only. Examples: no. |
||
single |
yes: one caller at a time (a door that is not multi-node) Examples: no. |
||
cleanup |
after the door: make sure its container is gone. Examples: docker rm -f bbs-door{node}. |
||
pty |
See the section above. Examples: yes. |
||
door32_comm |
See the section above. Examples: local. |
||
type |
See the section above. Examples: telnet, rlogin, bbslink, doorparty. |
||
address |
See the section above. Examples: doors.example.org:2323, doors.example.org:513. |
||
client_user |
the names it is given: the caller's ({user}) Examples: {user}. |
||
server_user |
the names it is given: the caller's ({user}) Examples: {user}. |
||
syscode |
See the section above. Examples: XXXXXX. |
||
authcode |
See the section above. Examples: XXXXXX. |
||
schemecode |
See the section above. Examples: XXXXXX. |
||
door |
See the section above. Examples: lord. |
||
url |
its web address, for the codes (by default http://games.bbslink.net) Examples: http://games.bbslink.net. |
||
ssh_user |
See the section above. Examples: myuser. |
||
ssh_password |
See the section above. Examples: secret. |
||
tag |
See the section above. Examples: XB. |
||
host_key |
See the section above. Examples: SHA256:.... |
||
rlogin_address |
its RLogin server, where the SSH session goes on to. Examples: dp.throwbackbbs.com:513. |
[irc]¶
IRC: the chat rooms as channels (#main ...), for IRC clients. Users log in with their BBS names and passwords (SASL PLAIN, or the server password as name:password). See docs/wiki/IRC.md.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :6667. |
||
tls_address |
IRC over TLS (and address = none for TLS only); with no tls_cert and tls_key, the [acme] certificates. Examples: :6697. |
||
tls_cert |
IRC over TLS (and address = none for TLS only); with no tls_cert and tls_key, the [acme] certificates. Examples: /etc/bbs/tls.crt. |
||
tls_key |
IRC over TLS (and address = none for TLS only); with no tls_cert and tls_key, the [acme] certificates. Examples: /etc/bbs/tls.key. |
||
server_name |
IRC over TLS (and address = none for TLS only); with no tls_cert and tls_key, the [acme] certificates. Examples: irc.example.org. |
||
network |
IRC over TLS (and address = none for TLS only); with no tls_cert and tls_key, the [acme] certificates. Examples: DModem. |
||
max_clients |
IRC over TLS (and address = none for TLS only); with no tls_cert and tls_key, the [acme] certificates. Examples: 64. |
||
max_per_ip |
IRC over TLS (and address = none for TLS only); with no tls_cert and tls_key, the [acme] certificates. Examples: 4. |
||
service |
the services bot's nick: /msg BBSServ HELP (your account's settings) Examples: BBSServ. |
[oscar]¶
AIM and ICQ: the chat for AIM and ICQ clients (OSCAR), beside IRC. Users sign on with their BBS names (or ICQ numbers: uin_base plus the account's number) and passwords; buddies are the BBS's users, online by any route; an IM is a private message (a PRIVMSG on IRC), a chat room a room (an IRC channel). The port is AOL's 5190, which AOL's own clients will share. See docs/wiki/AIM-and-ICQ.md.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :5190. |
||
host |
where clients are sent to reconnect, host:port (default: the address each one came to; set it behind NAT) Examples: aim.example.org:5190. |
||
max_clients |
where clients are sent to reconnect, host:port (default: the address each one came to; set it behind NAT) Examples: 256. |
||
max_per_ip |
each client opens a few connections: sign-on, the BOS, chat rooms. Examples: 16. |
||
uin_base |
an account's ICQ number is this plus its number. Examples: 100000. |
||
system |
the screen name the BBS's notices come from. Examples: OnlineHost. |
[irclink]¶
IRC server linking: the BBS as a hub server on an IRC network, by TS6 (Solanum, charybdis, ircd-ratbox; ircd-hybrid 8 with protocol = hybrid) or P10 (ircu, Undernet's, with protocol = p10). Every BBS user online is a user there, whom anyone can /msg and /whois; the rooms beginning irc- are its channels (irc-retro is #retro). A nick taken there is the BBS user's as Nick|Tag. See docs/wiki/IRC-Linking.md.
| key | default | live | what it does |
|---|---|---|---|
server_name |
the BBS's server name on the network. Examples: irc.bbs.example.org. |
||
sid |
the TS6 server ID: a digit, then two letters or digits, the network's own. Examples: 1BB. |
||
numeric |
the P10 server numeric, 0 to 4095, the network's own (for a P10 link) Examples: 42. |
||
description |
its description, in LINKS (default: the BBS's name) Examples: The D-Modem BBS. |
||
network |
the network's name, as WHOIS of its users shows it. Examples: MyNet. |
||
tag |
Nick|Tag for a BBS user whose nick is taken. Examples: DM. |
||
host |
the BBS users' host, as the network sees them (default: server_name) Examples: users.bbs.example.org. |
||
prefix |
the rooms that are channels (none: every room) Examples: irc-. |
||
nick_length |
the network's NICKLEN (Solanum's 31 less one; ratbox and hybrid: 9; ircu: 12, the default with a P10 peer) Examples: 30. |
||
address |
where servers link in (and address = none for none) Examples: :7000. |
||
tls_address |
where servers link in (and address = none for none) Examples: :7001. |
||
tls_cert |
the certificate and key for tls_address. Examples: /etc/bbs/tls.crt. |
||
tls_key |
the certificate and key for tls_address. Examples: /etc/bbs/tls.key. |
||
retry |
between tries of a link out, in seconds. Examples: 30. |
[ircpeer NAME]¶
A server the BBS links with, one section each: [ircpeer ITS.NAME].
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
address |
where to link out to (none: it links in) Examples: hub.example.net:7000. |
||
tls |
link out by TLS. Examples: yes. |
||
tls_verify |
check its certificate (a self-signed one: no) Examples: yes. |
||
send_password |
the password we send it (its accept_password) Examples: ours-to-it. |
||
accept_password |
the password it sends us (its send_password) Examples: its-to-us. |
||
tag |
its users' tag, beside a BBS user of the same nick (Nick|Tag) Examples: HUB. |
||
protocol |
ts6 (Solanum, charybdis, ratbox), hybrid (ircd-hybrid 8) or p10 (ircu) Examples: ts6. |
[aol]¶
AOL: a host for AOL's own clients (3.0, 4.0 and on, over TCP). Users sign on with their BBS names and passwords and get the BBS's Welcome window. The client's port is 5190: with [oscar] there too, the two share it. The client finds its host as AmericaOnline.aol.com (point that name here in its machine's hosts file, or edit its TCP.CCL).
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :5190. |
||
max_clients |
See the section above. Examples: 256. |
||
max_per_ip |
See the section above. Examples: 4. |
[msn]¶
MSN Messenger: the chat for MSN Messenger 1.0 to 4.7 and Windows Messenger 4.x (MSNP2 to 7), beside IRC and AIM. Users sign in as name@domain with their BBS passwords; contacts are their friends list; an IM is a private message (a PRIVMSG on IRC), kept for one away. The clients must be pointed at this host (see the wiki page). See docs/wiki/MSN-Messenger.md.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :1863. |
||
host |
where clients are sent for conversations, host:port (default: the address each one came to; set it behind NAT) Examples: msn.example.org:1863. |
||
domain |
handles are name@domain (default bbs.invalid); clients may sign in with any domain, as MSN 1.0's @hotmail.com. Examples: msn.example.org. |
||
max_clients |
handles are name@domain (default bbs.invalid); clients may sign in with any domain, as MSN 1.0's @hotmail.com. Examples: 256. |
||
max_per_ip |
each conversation is a connection of its own. Examples: 16. |
||
system |
the name the BBS's notices come from. Examples: BBS. |
||
site |
a web address the clients' links (inbox, profiles) open. Examples: https://bbs.example.org/. |
[marvel]¶
The Microsoft Network of 1995 to 1998, for the MSN client that came with Windows 95: users sign in with their BBS names and passwords, the message areas are its Categories, and each area is an MSN bulletin board to read and post in. Over TCP its port is 569, which the client can't be told otherwise; modem callers come through a listener with frontend = marvel. See docs/wiki/MSN-Classic.md.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :569. |
||
max_clients |
See the section above. Examples: 64. |
||
max_per_ip |
See the section above. Examples: 4. |
[ymsg]¶
Yahoo! Messenger: the chat for Yahoo! Messenger clients (YMSG 9 to 16), beside IRC, AIM and MSN. Users sign in with their BBS names (without spaces) and passwords; the buddy list is their friends list and the ignore list their blocked list; an IM is a private message, kept for one away; Yahoo chat rooms are the chat rooms, and a conference a room of its own. The clients must be pointed at this host (see the wiki page). See docs/wiki/Yahoo-Messenger.md.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :5050. |
||
http_address |
the web half, for Y!M 9 and later and the room list: point vcs1.msg.yahoo.com, vcs2.msg.yahoo.com and insider.msg.yahoo.com here. Examples: :80. |
||
https_address |
Y!M 9's login, its password over HTTPS: point login.yahoo.com here, with a certificate for it the client trusts. Examples: :443. |
||
tls_cert |
Y!M 9's login, its password over HTTPS: point login.yahoo.com here, with a certificate for it the client trusts. Examples: /etc/bbs/login.yahoo.com.crt. |
||
tls_key |
Y!M 9's login, its password over HTTPS: point login.yahoo.com here, with a certificate for it the client trusts. Examples: /etc/bbs/login.yahoo.com.key. |
||
host |
the pager's address the web half gives Y!M 9 (default: the address each one asked on; set it behind NAT) Examples: 203.0.113.5. |
||
max_clients |
the pager's address the web half gives Y!M 9 (default: the address each one asked on; set it behind NAT) Examples: 256. |
||
max_per_ip |
the pager's address the web half gives Y!M 9 (default: the address each one asked on; set it behind NAT) Examples: 4. |
||
system |
the Yahoo ID the BBS's notices come from. Examples: bbs. |
[mrc]¶
Multi Relay Chat: the BBSes' chat network. Its rooms are the chat rooms beginning mrc- here (mrc-lobby is its lobby), on terminals and IRC alike. See docs/wiki/MRC.md.
| key | default | live | what it does |
|---|---|---|---|
address |
or TLS, on 5001. Examples: mrc.bottomlessabyss.net:5000, mrc.bottomlessabyss.net:5001. |
||
tls |
or TLS, on 5001. Examples: yes. |
||
prefix |
or TLS, on 5001. Examples: mrc-. |
||
system_name |
or TLS, on 5001. Examples: \|11My \|03BBS. |
||
web |
or TLS, on 5001. Examples: https://bbs.example.org/. |
||
telnet |
or TLS, on 5001. Examples: bbs.example.org:23. |
||
ssh |
or TLS, on 5001. Examples: bbs.example.org:22. |
||
require |
or TLS, on 5001. Examples: 20. |
[finger]¶
finger: who is on ("finger @host"), and who a user is ("finger name@host"). Port 79 needs CAP_NET_BIND_SERVICE (bbs.service.sample)
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :79. |
||
online |
See the section above. Examples: yes. |
||
users |
See the section above. Examples: yes. |
[gopher]¶
gopher: about the system, who is on, and what areas the sysop opens: no login, so anyone sees them. Port 70 needs CAP_NET_BIND_SERVICE.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :70. |
||
hostname |
the name and port menus send clients back to. Examples: bbs.example.org. |
||
port |
the name and port menus send clients back to. Examples: 70. |
||
areas |
message areas shown (a wildmat of area names; "": none) Examples: general,announcements. |
||
files |
file areas listed and downloadable. Examples: no. |
[gemini]¶
gemini: gopher's capsule over Gemini (gemini://, TLS): about the system, who is on, users as finger tells of them, and what areas the sysop opens: no login, so anyone sees them. Port 1965 needs no privilege.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :1965. |
||
hostname |
the host name bbs gemini cert offers for a new certificate. Examples: bbs.example.org. |
||
cert_file |
the certificate and key (PEM); with neither, gemini-cert.pem and gemini-key.pem beside the database, which bbs gemini cert makes (it asks for the host names, organization and years first). Clients trust it on first use and warn if it ever changes, so an ACME one (cert_file = acme) is for capsules whose visitors check it against a CA. Examples: /etc/bbs/gemini-cert.pem. |
||
key_file |
the certificate and key (PEM); with neither, gemini-cert.pem and gemini-key.pem beside the database, which bbs gemini cert makes (it asks for the host names, organization and years first). Clients trust it on first use and warn if it ever changes, so an ACME one (cert_file = acme) is for capsules whose visitors check it against a CA. Examples: /etc/bbs/gemini-key.pem. |
||
areas |
message areas shown (a wildmat of area names; "": none) Examples: general,announcements. |
||
files |
file areas listed and downloadable. Examples: no. |
||
users |
/users: look up a user, as finger tells of them. Examples: yes. |
[feeds]¶
News, weather and quotes: the main menu's [N], as the online services had them. News feeds (RSS, Atom, JSON Feed) are posted to read-only message areas, made when first needed, so they are read everywhere areas are: the terminals, newsreaders (an area made a newsgroup), QWK, the web forum, gopher. An item is its headline, its summary and a link: what feeds are published for. bbs feeds catalog lists the feeds the BBS knows.
| key | default | live | what it does |
|---|---|---|---|
contact |
a way to reach the sysop, sent to the sites read (the SEC refuses readers without one, the National Weather Service asks for one) Examples: sysop@example.org. |
||
catalog |
feeds of the catalogue: all, groups (news, business, technology, science, government) or feeds by name. Examples: all. |
||
every |
minutes between readings, and days items are kept (0: for ever), for feeds that say none of their own. Examples: 30. |
||
keep_days |
minutes between readings, and days items are kept (0: for ever), for feeds that say none of their own. Examples: 30. |
||
max_items |
the most items of a feed posted at one reading. Examples: 50. |
[feed NAME]¶
A feed of the sysop's, or changes to the catalogue's of that name (enabled = no leaves it out)
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
enabled |
See the section above. Examples: yes. |
||
url |
See the section above. Examples: https://lobste.rs/rss. |
||
title |
See the section above. Examples: Lobsters. |
||
area |
the area (its name by default), and the group it is listed under. Examples: Lobsters. |
||
group |
the area (its name by default), and the group it is listed under. Examples: Technology. |
||
description |
the area (its name by default), and the group it is listed under. Examples: Lobsters: computing. |
||
every |
the area (its name by default), and the group it is listed under. Examples: 60. |
||
keep_days |
the area (its name by default), and the group it is listed under. Examples: 14. |
[weather]¶
Each caller's weather, for where they say they are (a US ZIP code, a town anywhere, or a latitude and longitude): the National Weather Service's forecast and warnings in the US, Open-Meteo's forecast elsewhere (free for non-commercial use, credited), and the USGS's earthquakes near.
| key | default | live | what it does |
|---|---|---|---|
contact |
as [feeds] contact (which it defaults to) Examples: sysop@example.org. |
||
international |
forecasts outside the US, from Open-Meteo. Examples: yes. |
||
quake_radius |
earthquakes within this many km, of this magnitude or more. Examples: 300. |
||
quake_min |
earthquakes within this many km, of this magnitude or more. Examples: 2.5. |
||
alerts_at_login |
serious warnings (Severe, Extreme) where a caller is, told at the login. Examples: yes. |
[quotes]¶
Stock quotes from IEX (the Investors Exchange): its own trades and quotes, not the whole market's. bbs quotes fetch reads IEX's free HIST file of the last session (some 16 GB, read as it comes: nothing is kept but the quotes) into file; an [event] runs it each morning: [event quotes] command = /usr/local/bin/bbs -config /etc/bbs/bbs.conf quotes fetch at = 06:30 timeout = 3600 The change from the day before needs that day's file first: bbs quotes fetch YYYYMMDD of the session before, then bbs quotes fetch.
| key | default | live | what it does |
|---|---|---|---|
file |
See the section above. Examples: /var/lib/bbs/quotes.json.gz. |
||
default |
the symbols a caller sees before they choose their own. Examples: SPY DIA QQQ AAPL MSFT. |
||
listen |
a live TOPS feed (IEX's real-time feed, or its free delayed one; both need a connection to IEX): its UDP address (a multicast group, joined on the interface), and how far behind it is, for the callers. Examples: 233.215.21.4:10378. |
||
interface |
a live TOPS feed (IEX's real-time feed, or its free delayed one; both need a connection to IEX): its UDP address (a multicast group, joined on the interface), and how far behind it is, for the callers. Examples: eth1. |
||
delay |
a live TOPS feed (IEX's real-time feed, or its free delayed one; both need a connection to IEX): its UDP address (a multicast group, joined on the interface), and how far behind it is, for the callers. Examples: 15 minutes. |
||
alpaca_key |
or Alpaca's market data (alpaca.markets), live: its free plan has IEX's trades and quotes for 30 symbols at a time on its stream (those callers looked at last, and default), any symbol by its snapshots. The keys are an Alpaca account's (a paper-trading one will do): keep this file 0640. Alpaca's terms ask for 30 days' notice before its data is shown to others. bbs quotes alpaca AAPL tries them. Examples: PK.... |
||
alpaca_secret |
or Alpaca's market data (alpaca.markets), live: its free plan has IEX's trades and quotes for 30 symbols at a time on its stream (those callers looked at last, and default), any symbol by its snapshots. The keys are an Alpaca account's (a paper-trading one will do): keep this file 0640. Alpaca's terms ask for 30 days' notice before its data is shown to others. bbs quotes alpaca AAPL tries them. Examples: .... |
||
alpaca_feed |
iex (the free plan), sip (every exchange: a paid plan) or delayed_sip. Examples: iex. |
||
alpaca_symbols |
the most symbols on the stream at once (the free plan's limit) Examples: 30. |
[time]¶
Time. The BBS's clock can follow time servers, and the BBS can be a time server itself: NTP, NTS (NTP made secure with TLS keys) and PTP. With no servers it tells of the system clock (kept by chrony, ntpd ...).
| key | default | live | what it does |
|---|---|---|---|
servers |
servers followed: KIND HOST, by commas. ntp HOST[:PORT], nts HOST[:PORT] (its NTS-KE port, 4460 if none), ptp HOST (unicast; ports 319 and 320) Examples: nts time.cloudflare.com, nts nts.netnod.se, ntp pool.ntp.org. |
||
poll |
seconds between asking them (16 at least) Examples: 64. |
||
set_clock |
set the system clock (Linux; root, or CAP_SYS_TIME kept: with [general] user, systemd's AmbientCapabilities=CAP_SYS_TIME). No: the BBS keeps the offset and serves corrected time, leaving the system clock alone. Examples: no. |
||
stratum |
with no servers: the stratum told (0: 3 while the kernel says the clock is synchronised, else unsynchronised), and stratum 1's reference (GPS, PPS) Examples: 0. |
||
refid |
with no servers: the stratum told (0: 3 while the kernel says the clock is synchronised, else unsynchronised), and stratum 1's reference (GPS, PPS) Examples: GPS. |
||
root_cas |
a PEM file NTS-KE servers' certificates are checked against ("": the system's) Examples: /etc/bbs/nts-ca.pem. |
||
utc_offset |
TAI - UTC, in seconds, for PTP (37 since 2017) Examples: 37. |
[ntp]¶
an NTP server (UDP). Port 123 needs CAP_NET_BIND_SERVICE.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :123. |
||
rate |
requests a second an address may make (0: no limit), and at once. Examples: 2. |
||
burst |
requests a second an address may make (0: no limit), and at once. Examples: 16. |
[nts]¶
an NTS-KE server (RFC 8915): TLS 1.3, its clients' keys and cookies for [ntp], which then answers NTS-secured requests too. The certificate is read again when its file changes (a renewal); with no tls_cert and tls_key, the [acme] certificates.
| key | default | live | what it does |
|---|---|---|---|
address |
See the section above. Examples: :4460. |
||
tls_cert |
See the section above. Examples: /etc/bbs/cert.pem. |
||
tls_key |
See the section above. Examples: /etc/bbs/key.pem. |
||
ntp_host |
the NTP server clients are told to use ("": this one) Examples: time.example.org. |
||
max_clients |
the NTP server clients are told to use ("": this one) Examples: 64. |
||
max_per_ip |
the NTP server clients are told to use ("": this one) Examples: 8. |
[ptp]¶
a PTP grandmaster (IEEE 1588, UDP ports 319 and 320, as root): two-step, end to end. Multicast to 224.0.1.129 on interface, and unicast to the clients that ask (linuxptp's unicast_master_table, ptp4u's clients)
| key | default | live | what it does |
|---|---|---|---|
address |
the address bound ("": all) | ||
interface |
multicast's interface, and hardware timestamps' ("": no multicast) Examples: eth0. |
||
multicast |
multicast's interface, and hardware timestamps' ("": no multicast) Examples: yes. |
||
unicast |
multicast's interface, and hardware timestamps' ("": no multicast) Examples: yes. |
||
domain |
multicast's interface, and hardware timestamps' ("": no multicast) Examples: 0. |
||
priority1 |
multicast's interface, and hardware timestamps' ("": no multicast) Examples: 128. |
||
priority2 |
multicast's interface, and hardware timestamps' ("": no multicast) Examples: 128. |
||
log_sync_interval |
intervals, as powers of two seconds: multicast syncs (0: 1 s) and announcements (1: 2 s); the shortest a unicast client is granted (-4: 1/16 s) Examples: 0. |
||
log_announce_interval |
intervals, as powers of two seconds: multicast syncs (0: 1 s) and announcements (1: 2 s); the shortest a unicast client is granted (-4: 1/16 s) Examples: 1. |
||
log_min_interval |
intervals, as powers of two seconds: multicast syncs (0: 1 s) and announcements (1: 2 s); the shortest a unicast client is granted (-4: 1/16 s) Examples: -4. |
||
max_clients |
unicast clients at once. Examples: 256. |
||
timestamping |
software (the kernel's stamps) or hardware (the network card's: its clock kept on the system's, phc2sys -s CLOCK_REALTIME -c eth0 -O 0) Examples: software. |
[menu NAME]¶
A menu of the sysop's: [menu main] takes the place of the built-in main menu; others are reached from it (menu:NAME).
There may be any number of these, each with its own NAME.
| key | default | live | what it does |
|---|---|---|---|
title |
yes | See the section above. Examples: {cyan}{bright}@BBS@{reset}, {cyan}Extras{reset}. |
|
screen |
yes | See the section above. Examples: mainmenu. |
|
prompt |
yes | See the section above. Examples: {cyan}Extras{default}>. |
|
require |
yes | The access a caller needs to be taken into the menu (a level and flags; see docs/wiki/Access-Levels.md). |
Any other key is a menu item: KEY = ACTION Label, KEY one character; ACTION areas, mail, who, users, profile, info, files, boards, doors, chat, page, callers, feedback, qwk, sysop, terminal, back, logoff, or door:NAME menu:NAME screen:NAME script:NAME area:NAME; |REQUIRE after the label limits it.
[strings]¶
The prompts and messages, with @-codes and tags.
| key | default | live | what it does |
|---|---|---|---|
name_prompt |
yes | See the section above. Examples: {cyan}Name:{default}. |
|
new_name_prompt |
yes | See the section above. Examples: {cyan}Name{default} (or NEW):. |
|
password_prompt |
yes | See the section above. Examples: {cyan}Password:{default}. |
|
command_prompt |
yes | See the section above. Examples: {yellow}@USER@{default} @ {cyan}@BBS@{default} >. |
|
pause |
yes | See the section above. Examples: {blue}[Press a key]{reset}. |
|
logoff_confirm |
yes | See the section above. Examples: {red}Log off?{reset}. |
|
welcome |
yes | See the section above. Examples: Welcome, @USER@.. |
See also: Configuration