convey

command module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 26, 2019 License: MIT Imports: 1 Imported by: 0

README

Convey

Version Build Status VS Online

A command-line tool that makes it easy to pipe between machines.

Learn more at Convey: Pipe between machines

echo "Hello world" | convey
vibrant_allen
convey vibrant_allen
Hello world

Features

  • Pipe between hosts with an idomatic interface using the standard | symbol.
  • Easily pipe files between hosts.
  • Does not require any open ports between your clients.
  • Configure it to use short channel names for easy typing such as vibrant_allen or UUIDs.
  • Supports colors through ANSI escape codes.
  • Supports Linux, macOS and Windows.
  • No dependencies to install.
  • Powered by NATS, a CNCF project.

Getting Started

1. Install
Linux
wget -qO ~/bin/convey https://get.convey.sh/linux
chmod +x ~/bin/convey
~/bin/convey -h
macOS
curl -sLo ~/bin/convey https://get.convey.sh/macos
chmod +x ~/bin/convey
~/bin/convey -h
Windows
Invoke-WebRequest https://get.convey.sh/windows -OutFile convey.exe
.\convey.exe -h
2. First Use

Configure a keyfile. This can be a local filepath or accessible URL.

convey configure --keyfile FILE
echo "Hello world" | convey
<ID>
convey <ID>
Hello world

The keyfile should be a secret file that can be easily accessed on the machines you want to use convey with.
Your keyfiles don't leave your machine. We create a fingerprint from this file and use that fingerprint only.
Some examples are:

  • a text file (e.g. ~/.ssh/id_rsa.pub)
  • an image file
  • a file with randomly generated bytes - how to
  • raw URL to gist - GitHub gist

If you're looking for further ideas on what you can use this application for, see these examples.

Configuration

Set configuration with the convey configure command.

Usage:
  convey configure [flags]

Flags:
      --keyfile string        URL or local path to keyfile (at least 64 bytes is required)
      --long-names            Use standard uuid format for channel names 
      --overwrite             Overwrite current configuration
      --fingerprint string    (advanced) If you know the fingerprint you want to use (SHAKE-256 hex), you can set it directly instead of using --keyfile
      --nats-cacert string    (advanced) Local path to CA certificate used by NATS server
      --nats-cluster string   (advanced) NATS cluster id
      --nats-url string       (advanced) NATS server url
  -h, --help                  help for configure

By default, configuration is loaded from $HOME/.convey.yaml.

Further configuration docs

Development

go get -u github.com/derekbekoe/convey
cd $GOPATH/src/github.com/derekbekoe/convey
go run main.go

Further development docs

Self-hosting

For convenience, we've provided a hosted service that convey uses by default.
This hosted service uses TLS to ensure communications are encrypted.

Alternatively, you can host your own NATS Streaming Server and configure convey to use that server.

Further self-hosting docs

License

Convey source code is available under the MIT License.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL