Add VTXClient docs
This commit is contained in:
parent
c652fb65ea
commit
ecc6562b79
Binary file not shown.
After Width: | Height: | Size: 128 KiB |
|
@ -0,0 +1,87 @@
|
||||||
|
# VTX Web Client
|
||||||
|
ENiGMA supports the VTX websocket client for connecting to your BBS from a web page. Example usage can be found at
|
||||||
|
[Xibalba](https://l33t.codes/vtx/xibalba.html) and [fORCE9](https://bbs.force9.org/vtx/force9.html).
|
||||||
|
|
||||||
|
## Before You Start
|
||||||
|
|
||||||
|
There are a few things out of scope of this document:
|
||||||
|
|
||||||
|
- You'll need a web server for hosting the files - this can be anywhere, but it obviously makes sense to host it
|
||||||
|
somewhere with a hostname relevant to your BBS!
|
||||||
|
|
||||||
|
- It's not required, but you should use SSL certificates to secure your website, and for supplying to ENiGMA to
|
||||||
|
secure the websocket connections. [Let's Encrypt](https://letsencrypt.org/) provide a free well-respected service.
|
||||||
|
|
||||||
|
- How you make the websocket service available on the internet is up to you, but it'll likely by forwarding ports on
|
||||||
|
your router to the box hosting ENiGMA. Use the same method you did for forwarding the telnet port.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
1. Enable the websocket in ENiGMA, by adding `webSocket` configuration to the `loginServers` block (create it if you
|
||||||
|
don't already have it defined).
|
||||||
|
|
||||||
|
````hjson
|
||||||
|
loginServers: {
|
||||||
|
webSocket : {
|
||||||
|
port: 8810
|
||||||
|
enabled: true
|
||||||
|
securePort: 8811
|
||||||
|
certPem: /path/to/https_cert.pem
|
||||||
|
keyPem: /path/to/https_cert_key.pem
|
||||||
|
}
|
||||||
|
}
|
||||||
|
````
|
||||||
|
|
||||||
|
2. Restart ENiGMA and check the logs to ensure the websocket service starts successfully, you'll see something like the
|
||||||
|
following:
|
||||||
|
|
||||||
|
````
|
||||||
|
[2017-10-29T12:13:30.668Z] INFO: ENiGMA½ BBS/30978 on force9: Listening for connections (server="WebSocket (insecure)", port=8810)
|
||||||
|
[2017-10-29T12:13:30.669Z] INFO: ENiGMA½ BBS/30978 on force9: Listening for connections (server="WebSocket (secure)", port=8811)
|
||||||
|
````
|
||||||
|
|
||||||
|
3. Download the [VTX_ClientServer](https://github.com/codewar65/VTX_ClientServer/archive/master.zip) to your
|
||||||
|
webserver, and unpack it to a temporary directory.
|
||||||
|
|
||||||
|
4. Download the example [VTX client HTML file](/misc/vtx/vtx.html) and save it to your webserver root.
|
||||||
|
|
||||||
|
5. Create an `assets/vtx` directory within your webserver root, so you have a structure like the following:
|
||||||
|
|
||||||
|
````text
|
||||||
|
├── assets
|
||||||
|
│ └── vtx
|
||||||
|
└── vtx.html
|
||||||
|
````
|
||||||
|
|
||||||
|
6. From the VTX_ClientServer package unpacked earlier, copy the contents of the `www` directory into `assets/vtx` directory.
|
||||||
|
|
||||||
|
7. Create a vtxdata.js file, and save it to `assets/vtx`:
|
||||||
|
|
||||||
|
````javascript
|
||||||
|
var vtxdata = {
|
||||||
|
sysName: "Your Awesome BBS",
|
||||||
|
wsConnect: "wss://your-hostname.here:8811"
|
||||||
|
term: "ansi-bbs",
|
||||||
|
codePage: "CP437",
|
||||||
|
fontName: "UVGA16",
|
||||||
|
fontSize: "24px",
|
||||||
|
crtCols: 80,
|
||||||
|
crtRows: 25,
|
||||||
|
crtHistory: 500,
|
||||||
|
xScale: 1,
|
||||||
|
initStr: "",
|
||||||
|
defPageAttr: 0x1010,
|
||||||
|
defCrsrAttr: 0x0207,
|
||||||
|
defCellAttr: 0x0007,
|
||||||
|
telnet: 1,
|
||||||
|
autoConnect: 0
|
||||||
|
};
|
||||||
|
````
|
||||||
|
|
||||||
|
8. Update `sysName` and `wsConnect` accordingly. Use `wss://` if you set up the websocket service with SSL, `ws://`
|
||||||
|
otherwise.
|
||||||
|
|
||||||
|
9. If you navigate to http://your-hostname.here/vtx.html, you should see a splash screen like the following:
|
||||||
|
![VTXClient](images/vtxclient.png "VTXClient")
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<script type='text/javascript' src='https://cdn.jsdelivr.net/pako/1.0.3/pako.min.js'></script>
|
||||||
|
<script type='text/javascript' src='assets/vtx/vtxdata.js'></script>
|
||||||
|
<script type='text/javascript' src='assets/vtx/vtxclient.js'></script>
|
||||||
|
<style>
|
||||||
|
.bg {
|
||||||
|
background-color: #000
|
||||||
|
}
|
||||||
|
.vtxClient {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 32px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body class="bg">
|
||||||
|
<div style="text-align:center">
|
||||||
|
<div id="vtxclient" class="vtxClient">
|
||||||
|
<!-- VTX client will appear in here -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue