Skip to content

Commit

Permalink
Add examples
Browse files Browse the repository at this point in the history
  • Loading branch information
alebeck committed Oct 5, 2024
1 parent a05ce43 commit 765926b
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 13 deletions.
24 changes: 14 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# The `boring` SSH tunnel manager
# The `boring` tunnel manager

![Static Badge](https://img.shields.io/badge/build-passing-green?) ![Static Badge](https://img.shields.io/badge/release-0.4.0-orange?) ![Static Badge](https://img.shields.io/badge/license-MIT-blue?)

A simple & reliable command line SSH tunnel manager.

![Screenshot](./assets/dark.gif)

Expand Down Expand Up @@ -38,16 +42,16 @@ host = "prod.example.com"
user = "root"
identity = "~/.ssh/id_prod" # will try default ones if not set

# example with unix sockets, and remote (-R) mode;
# note that we can freely mix unix and TCP sockets
[[tunnels]]
name = "dev"
local = "/tmp/serve.sock"
remote = "/tmp/listen.sock"
host = "dev-server"
mode = "remote"

# ... more tunnels
```

Currently, supported options are: `name`, `local`, `remote`, `host`, `user`, `identity_file`, `port`, `mode`. `host` either describes a host which to match SSH configs to, or if not found, the actual hostname. `mode` can be 'local' for local or 'remote' for remote forwarding, default is 'local'. The location of the config file can be changed by setting the `BORING_CONFIG` environment variable.


## Installation
Get one of the pre-built binaries from the [releases page](https://github.com/alebeck/boring/releases) or build it yourself:

```sh
git clone https://github.com/alebeck/boring && cd boring
./build.sh
```
7 changes: 4 additions & 3 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
* test on Linux
* homebrew
* homebrew?
* measure throughput (https://stackoverflow.com/questions/72808002/is-there-a-way-to-get-transfer-speed-from-io-copy)
* ipv6 support
* terminate daemon after some time of inactivity?
* open and close all commands
* open and close --all command
* ssh connection multiplexing
* send keepalive packets necessary?
24 changes: 24 additions & 0 deletions examples/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# simple tunnel
[[tunnels]]
name = "dev"
local = "9000"
remote = "localhost:9000"
host = "dev-server" # automatically matches host against SSH config

# example of an explicit host (no SSH config)
[[tunnels]]
name = "prod"
local = "5001"
remote = "localhost:5001"
host = "prod.example.com"
user = "root"
identity = "~/.ssh/id_prod" # will try default ones if not set

# example with unix sockets, and remote (-R) mode;
# note that we can freely mix unix and TCP sockets
[[tunnels]]
name = "dev"
local = "/tmp/serve.sock"
remote = "/tmp/listen.sock"
host = "dev-server"
mode = "remote"

0 comments on commit 765926b

Please sign in to comment.