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