pipe2me client
This is the ruby client for the pipe2me server package. The pipe2me client lets you publish local services to the public internet with the help and orchestration of a pipe2me server. For more details see pipe2me
Installation
The pipe2me-client works with ruby 2.0. It might work with older rubies also. To install it run
gem install pipe2me-client
# optional: install man page
sudo cp doc/pipe2me.1 /usr/local/share/man/man1
If you are managing a box with a system-wide ruby installation you must install it via
sudo gem install pipe2me-client
Verify the installation with
which pipe2me
Usage
Mini-example: This registers two tunnels with a single hostname for two services on localhost (http on port 9090, https on port 9091).
# Setup tunnels. This responds with the domain name
> <b>pipe2me setup --protocols http,https \
--server http://test.pipe2.me \
--token review@pipe2me --ports 9090,9091</b>
pretty-ivory-horse.test.pipe2.me
# Review the assigned URLs:
> <b>cat pipe2me.info.inc | grep URL</b>
PIPE2ME_URLS_0=http://pretty-ivory-horse.test.pipe2.me:10003
PIPE2ME_URLS_1=https://pretty-ivory-horse.test.pipe2.me:10004
# Start the tunnels
> <b>pipe2me start</b>
See also the example session and the man page.
Testing
Tests are implemented using roundup.
To install roundup on OSX, run brew install roundup
. Other systems are
supported as well, compare roundup's documentation
for details.
The implemented tests are integration tests in the sense, that they test the behaviour of the pipe2me-client package in connection to an external pipe2me server. That means you should run a pipe2me server on your local machine. Note that the server must be configured to support test mode. (In test mode a pipe2me server accepts test auth tokens, that create short lived tunnels with self-signed certificates.)
To run the tests against a locally installed test server run rake
. Note that
the local test server is expected at "pipe2.dev:8080". You might have to adjust
the /etc/hosts
file to add an entry
127.0.0.1 pipe2.dev
Before submitting a pull request you should also run a test against the
test.pipe2.me instance, which is available most of the time for that purpose.
To do that, run rake test:release
.
Tunnel tokens
As ports and domain names are sparse resources the pipe2me server API requires the use of authorization tokens when requesting a tunnel. A token is similar to a 'currency' in that it describes which tunnels are supported. A token could limit the number of ports that can be tunnelled, the amount of traffic for those ports, whether or not a certificate is self-signed or signed by a regular CA, etc.
The features of a token are not defined within this protocol. However, there has to be one. Contact the administrator of the pipe2me server to know more.
A freshly installed pipe2me server comes with a number of preconfigured tokens. Of course, a server admin should (and probably would) change those tokens. However, as a test target, the pipe2me test server at http://test.pipe2.me supports these tokens:
test@pipe2me
: this builds tunnels that are available for 5 minutes. The test token is intended for use with automated test scenarios.review@pipe2me
: this builds tunnels that are available for up to one day. A review token should help you get a feel for the pipe2me package.
If you need a longer lived token for development, review and/or test feel free to contact us at [email protected].
Licensing
The pipe2me client software is (c) The Kinko Team, 2014 and released to you under the terms of the MIT License (MIT), see COPYING.MIT for details.
The subdirectory lib/vendor contains third-party code, which is subject to its own copyrights. Please see the respective source files for copyright information.
(c) The kinko.me team, 2014