Table of Contents

webv4 Configuration

The optional echicken webv4 user interface for Synchronet (a.k.a. ecweb v4, or ecwebv4) is located in the webv4/ directory and is available from the git repository.

Enable

To enable webv4, edit sbbs.ini so that the RootDirectory key under the [Web] section points to ../webv4/root. You'll also want to ensure that index.xjs is included in your list of IndexFileNames:

sbbs.ini

[Web]
RootDirectory=../webv4/root
IndexFileNames=index.html,index.ssjs,index.xjs

You should also verify that the XJS handler is enabled in the [JavaScript] section of ctrl/web_handler.ini. (This should be true except on very old Synchronet installs.)

ctrl/web_handler.ini

[JavaScript]
xjs = xjs_handler.js

To disable webv4 (or switch back to the old web UI), edit sbbs.ini and set the value of RootDirectory back to what it was before (eg. ../web).

Configure

webv4's settings are contained in the [web] section of ctrl/modopts.ini.

Shown below are the default values. If your ctrl/modopts.ini file does not have a [web] section, or is missing one of these values, the default will be used.

ctrl/modopts.ini

[web]
; Unauthenticated visitors will be logged in as the user with this alias
; (Only give this user privileges you want unknown web visitors to have)
guest = Guest
; Login sessions expire after this many seconds of inactivity
timeout = 43200
; Web-based users disappear from the "Who's online" list after this many seconds
inactivity = 900
; Allow new users to register via the web interface (default: no)
user_registration = false
; Enforce a minimum password length if user_registration is true
; (This should probably '8', which is also Synchronet's unfortunate maximum.)
minimum_password_length = 6
; Limit the length of a telegram (in characters) that a web user can send
maximum_telegram_length = 800
; Where (absolute or relative to 'exec') the 'lib' and 'root' directories live
web_directory = ../webv4
; Enable ftelnet / display on Home page
ftelnet = true
; Path to a .ans file to use as the ftelnet splash screen
ftelnet_splash = ../text/synch.ans
; Display the fTelnet menu bar / buttons?
ftelnet_menubar = false
; Use an fTelnet variant with RIP support?
ftelnet_rip = false
; Use an fTelnet variant with YModem G file transfer support?
ftelnet_xfer = false
; Enable or disable keyboard navigation in message threads
keyboard_navigation = false
; Display upvote/downvote buttons in message threads (3.17)
vote_functions = true
; Refresh nodelist, vote counts, etc. this often (in milliseconds)
refresh_interval = 60000
; External Programs (or entire sections) to exclude from the Games page
xtrn_blacklist = scfg,oneliner
; Disable the sidebar altogether
layout_sidebar_off = false
; Place the sidebar on the left-hand side of the page
layout_sidebar_left = false
; Make the page consume the entire width of the browser window
layout_full_width = false
; Only show active nodes in the sidebar, hide Who's Online if nobody is
active_node_list = true
; Don't show lame stats in the sidebar (no calls today, etc.)
hide_empty_stats = true
; The localization settings to use (web/lib/locale/*.[ini,js])
locale = en_us
; Use extended-ASCII characters when displaying forum messages (default: true)
forum_extended_ascii = true
; Only load this many messages from each sub (default: 0 for all)
max_messages = 0
; On the Files page, display a file's contents in the browser when possible
; Known filetypes are in ctrl/mime_types.ini
; Enable with caution due to security implications (eg. user-uploaded HTML files)
files_inline = false
; Offer dark mode to users
darkmode_allow = true
; Enable dark mode by default:
darkmode_on = false

New User Values

If you enabled user_registration above, new users can sign up via your website. If you want to apply a special security level, flags, exemptions, or restrictions to these users, you can add any or all of the following settings to the [web] section of ctrl/modopts.ini:

ctrl/modopts.ini

; Users who register via the web are given this security level:
newuser_level = 0
; Users who register via the web are given these flags / exemptions / restrictions:
newuser_flags1 = ABCDEFGHIJKLMNOPQRSTUVWXYZ
newuser_flags2 = ABCDEFGHIJKLMNOPQRSTUVWXYZ
newuser_flags3 = ABCDEFGHIJKLMNOPQRSTUVWXYZ
newuser_flags4 = ABCDEFGHIJKLMNOPQRSTUVWXYZ
newuser_exemptions = ABCDEFGHIJKLMNOPQRSTUVWXYZ
newuser_restrictions = ABCDEFGHIJKLMNOPQRSTUVWXYZ

If these settings are absent, then the system defaults (as set in scfg) will be used.

Optional Settings

Advanced settings are available but not included by default. These are:

ctrl/modopts.ini

; Text to use in place of system name at top of page (HTML is okay here)
brand = <img src="/images/my-bbs-logo.png">
; Override WS and WSS (websocket, websocket-secure) service ports
; (Will be looked up from services.ini otherwise, via exec/load/ftelnethelper.js)
wsp = 1123
wssp = 11235

Only include these settings if you wish to override the built-in defaults.

* Setting forum_extended_ascii to false may resolve problems with displaying UTF-8 encoded characters; character codes > 127 will not be assumed to be extended-ASCII references to CP437 characters.

* Tweaking the `max_messages` setting may help if you get _out of memory_ errors or find your site being hit hard by bots / search indexers.

fTelnet

fTelnet is a web-based telnet/rlogin client written by Rick Parrish. It's the telnet client that you see on the Home and Games pages of a typical webv4 site.

fTelnet does not connect directly to your telnet server. fTelnet connects to a WebSocket proxy server, which mediates between fTelnet and the telnet server. The WebSocket proxy server runs on your server, and must be running and reachable by external clients in order for this to work.

To enable the WebSocket service, ensure that you have the following section in ctrl/services.ini:

[WS]
Port=1123
Options=NO_HOST_LOOKUP
Command=websocketservice.js

If you server your website via HTTPS, you should also include a [WSS] (WebSocket Secure) service definition:

[WSS]
Port=11235
Options=NO_HOST_LOOKUP|TLS
Command=websocketservice.js

You must also ensure that the above ports are open in your firewall, and forwarded to your BBS if necessary.

Before you request support for fTelnet, please double-check that the above sections exist in ctrl/services.ini, and that the relevant ports are open in your firewall and forwarded in your BBS. Now go and check again. This is the problem 99.5% of the time.

See Also