chore: update documentation

This commit is contained in:
Bill Church 2024-11-30 11:47:20 +00:00
parent 4baff571de
commit c48fadba08
No known key found for this signature in database
3 changed files with 158 additions and 15 deletions

152
CONFIG.md Normal file
View file

@ -0,0 +1,152 @@
# Breaking Changes in Configuration Format
This document outlines the breaking changes and updates to the configuration format between versions. These changes require manual updates to your existing `config.json` files.
## Major Structure Changes
### Removed Sections
The following sections have been completely removed:
- `socketio` - Socket.IO configuration is now handled internally
- `terminal` - Terminal configuration moved to client-side
- `serverlog` - Logging configuration simplified
- `algorithms` - Moved under the `ssh` section
- `accesslog` - Removed
- `verify` - Removed
- `safeShutdownDuration` - Removed
### Renamed and Restructured Sections
#### HTTP Configuration
- Old: `socketio.origins`
- New: `http.origins`
```diff
- "socketio": {
- "serveClient": false,
- "path": "/ssh/socket.io",
- "origins": ["localhost:2222"]
- }
+ "http": {
+ "origins": ["*.*"]
+ }
```
#### SSH Algorithms
- Old: Root-level `algorithms` object
- New: Moved to `ssh.algorithms`
```diff
- "algorithms": {
+ "ssh": {
+ "algorithms": {
"kex": [...],
"cipher": [...],
"hmac": [...],
"compress": [...]
+ "serverHostKey": [...]
}
+ }
```
#### Session Configuration
```diff
"session": {
- "name": "WebSSH2",
+ "name": "webssh2",
"secret": "secret"
}
```
### New Options
#### SSH Configuration
Added under the `ssh` section:
```json
{
"ssh": {
"alwaysSendKeyboardInteractivePrompts": false,
"disableInteractiveAuth": false
}
}
```
#### Feature Options
Renamed and expanded options:
```diff
"options": {
"challengeButton": true,
- "allowreauth": false
+ "autoLog": false,
+ "allowReauth": true,
+ "allowReconnect": true,
+ "allowReplay": true
}
```
## Detailed Changes
### 1. Authentication Options
- Added support for SSH private key authentication via `user.privatekey`
- Removed `user.overridebasic` option
- Added keyboard-interactive authentication controls
### 2. Server Settings
- Default port changed from 2224 to 2222
- Socket.IO path is now fixed at "/ssh/socket.io"
- Added server host key algorithm configurations
### 3. Terminal Configuration
All terminal-specific configurations have been removed from server config:
```diff
- "terminal": {
- "cursorBlink": true,
- "scrollback": 10000,
- "tabStopWidth": 8,
- "bellStyle": "sound",
- "fontSize": 14
- }
```
These settings are now managed client-side.
## Migration Guide
1. Create a new `config.json` file based on the new format
2. Move your existing settings to their new locations
3. Remove any deprecated options
4. Add new required options
5. Test your configuration before deploying to production
## Default Configuration Example
```json
{
"listen": {
"ip": "0.0.0.0",
"port": 2222
},
"http": {
"origins": ["*.*"]
},
"user": {
"name": null,
"password": null,
"privatekey": null
},
"ssh": {
"host": null,
"port": 22,
"term": "xterm-color",
"readyTimeout": 20000,
"keepaliveInterval": 120000,
"keepaliveCountMax": 10,
"algorithms": {
// ... algorithm configurations ...
}
},
"options": {
"challengeButton": true,
"autoLog": false,
"allowReauth": true,
"allowReconnect": true,
"allowReplay": true
}
}
```

View file

@ -4,16 +4,7 @@ This document outlines features, configuration options, and parameters that have
## Removed `config.json` Options ## Removed `config.json` Options
The following configuration options have been **removed** from `config.json`: See [CONFIG.md](./CONFIG.md) for a list of removed or changed options.
### Terminal Configuration
The following options have been replaced with client-side terminal configuration handling in the browser:
- `terminal.cursorBlink` (boolean): Whether the cursor blinks.
- `terminal.scrollback` (integer): Scrollback limit.
- `terminal.tabStopWidth` (integer): Tab stop width.
- `terminal.bellStyle` (string): Bell style.
### Logging Configuration ### Logging Configuration

View file

@ -11,13 +11,13 @@ WebSSH2 is an HTML5 web-based terminal emulator and SSH client. It uses SSH2 as
## Table of Contents ## Table of Contents
- [Requirements](#requirements) - [Requirements](#requirements)
- [Breaking Changes](#breaking-changes)
- [Installation](#installation) - [Installation](#installation)
- [Docker Setup](#docker-setup) - [Docker Setup](#docker-setup)
- [Usage](#usage) - [Usage](#usage)
- [Configuration](#configuration) - [Configuration](#configuration)
- [Features](#features) - [Features](#features)
- [Routes](#routes) - [Routes](#routes)
- [Deprecation Notice](#deprecation-notice)
- [Client-Side Module](#client-side-module) - [Client-Side Module](#client-side-module)
- [Tips](#tips) - [Tips](#tips)
- [Support](#support) - [Support](#support)
@ -26,6 +26,10 @@ WebSSH2 is an HTML5 web-based terminal emulator and SSH client. It uses SSH2 as
- Node.js 6.9.1 - Node.js 6.9.1
## Breaking Changes
- See [CONFIG.md](./CONFIG.md) for a list of breaking changes to the config.json file.
- See [DEPRECATED.md](./DEPRECATED.md) for a list of deprecated options.
## Installation ## Installation
1. Clone the repository: 1. Clone the repository:
@ -391,10 +395,6 @@ WebSSH2 provides two main routes:
- Quick connections to specific hosts - Quick connections to specific hosts
- Optional `port` parameter (e.g., `?port=2222`) - Optional `port` parameter (e.g., `?port=2222`)
## Deprecation Notice
Several configuration options and GET parameters have been deprecated. For a list of removed options and required actions, please refer to [DEPRECATED.md](./DEPRECATED.md).
## Client-Side Module ## Client-Side Module
WebSSH2 uses a companion module called `webssh2_client` which provides the browser-side terminal interface and WebSocket communication layer. WebSSH2 uses a companion module called `webssh2_client` which provides the browser-side terminal interface and WebSocket communication layer.