Reviewed-on: #1 Co-authored-by: jake <jake.young.dev@gmail.com> Co-committed-by: jake <jake.young.dev@gmail.com>
92 lines
2.9 KiB
Markdown
92 lines
2.9 KiB
Markdown
# mctl
|
|
mctl is a terminal-friendly remote connection client
|
|
|
|
## Installation
|
|
Install mctl using golang
|
|
```bash
|
|
go install code.jakeyoungdev.com/jake/mctl@main #it is recommended to use a tagged version
|
|
```
|
|
<br />
|
|
|
|
## Setup
|
|
### Configuring mctl
|
|
mctl requires a one-time setup via the 'config' command, password is entered securely from the terminal
|
|
```bash
|
|
mctl config -s <serveraddress> -p <rconport>
|
|
```
|
|
|
|
### Connecting to server
|
|
Once the client has been configured commands can be sent to the server using the 'login' command. This will authenticate you with the game server and enter the command loop, the session is logged out when the command loop is broken
|
|
|
|
```bash
|
|
mctl login #makes auth request to server with saved password
|
|
```
|
|
|
|
### Sending commands
|
|
If login is successful the app will enter the command loop, which allows commands to be sent directly to the server until 'mctl' is sent. Commands are sent as-is to the server, there is no validation of command syntax within mctl
|
|
```
|
|
Logging into X.X.X.X on port 61695
|
|
Connected! Type 'mctl' to close
|
|
RCON@X.X.X.X /> list
|
|
|
|
There are 0 of a max of 20 players online:
|
|
```
|
|
|
|
### Saving commands
|
|
Commands can be saved under an alias for quick execution later, saved commands can contain placeholders '%s' that can be populated at runtime to allow for commands with unique runtime args to still be saved:
|
|
```bash
|
|
mctl save <name>
|
|
```
|
|
|
|
### Viewing commands
|
|
Saved commands can be viewed with:
|
|
```bash
|
|
mctl view <name>
|
|
```
|
|
|
|
### Running saved commands
|
|
Commands that have been saved can be run with:
|
|
```bash
|
|
mctl run <name>
|
|
```
|
|
If the saved command contains placeholders, the necessary arguments must be supplied:
|
|
```bash
|
|
mctl run <name> args...
|
|
```
|
|
|
|
### Saving and running example
|
|
```bash
|
|
#saving command named "test" to run "tp %s 0 0 0"
|
|
mctl save test
|
|
Command: tp %s 0 0 0
|
|
|
|
#run command on user "jake"
|
|
mctl run test jake
|
|
#will run: tp jake 0 0 0 on remote server
|
|
```
|
|
|
|
## Documentation
|
|
### Commands
|
|
|Command|Description|
|
|
|---|---|
|
|
|config|used to update the config file|
|
|
|login|makes connection request to the server using saved configuration and enters command loop|
|
|
|save \<name>|saves specific command for reuse|
|
|
|view \<name>|displays saved command|
|
|
|run \<name> args...|runs saved command filling placeholders with supplied args|
|
|
|
|
### Flags
|
|
#### config
|
|
|Flag|Shorthand|Required|Description|
|
|
|---|---|---|---|
|
|
|port|p|yes|RCon port|
|
|
|server|s|yes|RCon address|
|
|
|
|
### Configuration file
|
|
All configuration data will be kept in /home/.mctl.yaml or C:\\Users\\username\\.mctl.yaml, passwords are encrypted for an added layer of security
|
|
|
|
## Security
|
|
RCon is an inherently insecure protocol, passwords are sent in plaintext and, if possible, the port should not be exposed to the internet. It is best to keep these connections local or over a VPN
|
|
|
|
## Development
|
|
this repo is currently in heavy development and may encounter breaking changes, use a tag to prevent any surprises |