====== 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 [[dev:git]] repository. ===== Enable ===== To enable webv4, edit [[config: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: ''[[config: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 ''[[dir:ctrl]]/web_handler.ini''. (This should be true except on very old Synchronet installs.) ''[[dir:ctrl]]/web_handler.ini'' [JavaScript] xjs = xjs_handler.js To disable webv4 (or switch back to the old web UI), edit [[config: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 ''[[dir:ctrl]]/modopts.ini''. Shown below are the default values. If your ''[[dir:ctrl]]/modopts.ini'' file does not have a ''[web]'' section, or is missing one of these values, the default will be used. ''[[dir: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 ''[[dir:ctrl]]/modopts.ini'': ''[[dir: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: ''[[dir:ctrl]]/modopts.ini'' ; Text to use in place of system name at top of page (HTML is okay here) brand = ; 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 ===== [[https://www.ftelnet.ca/|fTelnet]] is a web-based telnet/rlogin client written by [[https://www.rickparrish.ca/|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 ''[[dir: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 ''[[dir: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 ===== * [[:config:|config index]] {{tag>configuration web_server}}