147 lines
2.7 KiB
Markdown
147 lines
2.7 KiB
Markdown
|
|
# Connection Profiles
|
||
|
|
|
||
|
|
Connection profiles allow you to save frequently used agent connections for quick access.
|
||
|
|
|
||
|
|
## What are Connection Profiles?
|
||
|
|
|
||
|
|
Instead of typing the full WebSocket URL every time:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
socktop ws://production-server.example.com:3000
|
||
|
|
```
|
||
|
|
|
||
|
|
You can save it as a profile and use:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
socktop -P production
|
||
|
|
```
|
||
|
|
|
||
|
|
## Profile Configuration File
|
||
|
|
|
||
|
|
Profiles are stored in `~/.config/socktop/profiles.json` (or `$XDG_CONFIG_HOME/socktop/profiles.json`).
|
||
|
|
|
||
|
|
### Basic Profile Format
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"profiles": {
|
||
|
|
"production": {
|
||
|
|
"url": "ws://production-server:3000/ws"
|
||
|
|
},
|
||
|
|
"dev": {
|
||
|
|
"url": "ws://dev-server:3000/ws"
|
||
|
|
},
|
||
|
|
"rpi": {
|
||
|
|
"url": "ws://192.168.1.100:3000/ws"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"version": 0
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Profile with Authentication
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"profiles": {
|
||
|
|
"secure-server": {
|
||
|
|
"url": "wss://secure.example.com:3000/ws?token=your-secret-token-here"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"version": 0
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** Tokens are passed as query parameters in the URL.
|
||
|
|
|
||
|
|
### Profile with TLS Configuration
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"profiles": {
|
||
|
|
"tls-server": {
|
||
|
|
"url": "wss://tls-server.example.com:8443/ws",
|
||
|
|
"tls_ca": "/path/to/cert.pem"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"version": 0
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Profile with All Options
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"profiles": {
|
||
|
|
"full-config": {
|
||
|
|
"url": "wss://example.com:8443/ws?token=secret-token",
|
||
|
|
"tls_ca": "/etc/socktop/cert.pem",
|
||
|
|
"metrics_interval_ms": 750,
|
||
|
|
"processes_interval_ms": 3000
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"version": 0
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** Custom intervals are optional. Values below 100ms (metrics) or 200ms (processes) are clamped.
|
||
|
|
|
||
|
|
## Creating Profiles
|
||
|
|
|
||
|
|
### Method 1: Manual Creation
|
||
|
|
|
||
|
|
Create or edit the profiles file:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
mkdir -p ~/.config/socktop
|
||
|
|
nano ~/.config/socktop/profiles.json
|
||
|
|
```
|
||
|
|
|
||
|
|
Add your profiles:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"profiles": {
|
||
|
|
"homelab": {
|
||
|
|
"url": "ws://192.168.1.50:3000/ws"
|
||
|
|
},
|
||
|
|
"cloud-server": {
|
||
|
|
"url": "wss://cloud.example.com:8443/ws?token=abc123xyz",
|
||
|
|
"tls_ca": "/home/user/.config/socktop/cloud-cert.pem"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"version": 0
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Method 2: Automatic Profile Creation
|
||
|
|
|
||
|
|
When you specify a new `--profile/-P` name with a URL (and optional `--tls-ca`), it's saved automatically:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# First connection creates and saves the profile
|
||
|
|
socktop --profile prod ws://prod-host:3000/ws
|
||
|
|
|
||
|
|
# With TLS pinning
|
||
|
|
socktop --profile prod-tls --tls-ca /path/to/cert.pem wss://prod-host:8443/ws
|
||
|
|
|
||
|
|
# With custom intervals
|
||
|
|
socktop --profile fast --metrics-interval-ms 250 --processes-interval-ms 1000 ws://host:3000/ws
|
||
|
|
```
|
||
|
|
|
||
|
|
To overwrite an existing profile without prompt, use `--save`:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
socktop --profile prod --save ws://new-host:3000/ws
|
||
|
|
```
|
||
|
|
|
||
|
|
## Using Profiles
|
||
|
|
|
||
|
|
### Basic Usage
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Use a saved profile
|
||
|
|
socktop -P production
|
||
|
|
socktop --profile homelab
|
||
|
|
```
|