Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/inlets/inletsctl
Create inlets servers on the top cloud platforms
https://github.com/inlets/inletsctl
digitalocean hacktoberfest inlets inlets-operator inlets-pro packet scaleway
Last synced: 3 days ago
JSON representation
Create inlets servers on the top cloud platforms
- Host: GitHub
- URL: https://github.com/inlets/inletsctl
- Owner: inlets
- License: mit
- Created: 2019-10-29T09:25:31.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-10T11:09:20.000Z (3 months ago)
- Last Synced: 2024-12-28T20:00:33.987Z (17 days ago)
- Topics: digitalocean, hacktoberfest, inlets, inlets-operator, inlets-pro, packet, scaleway
- Language: Go
- Homepage: https://docs.inlets.dev/
- Size: 12.5 MB
- Stars: 470
- Watchers: 13
- Forks: 62
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-network-stuff - **132**星
README
# inletsctl - create inlets servers on the top cloud platforms
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Documentation](https://godoc.org/github.com/inlets/inletsctl?status.svg)](http://godoc.org/github.com/inlets/inletsctl)
![Downloads](https://img.shields.io/github/downloads/inlets/inletsctl/total)inletsctl automates the task of creating an exit-server (tunnel server) on public cloud infrastructure.
The `create` command provisions a cheap cloud VM with a public IP and pre-installs inlets for you. You'll then get a connection string that you can use with the inlets client.**Conceptual diagram**
![Webhook example with Inlets OSS](https://blog.alexellis.io/content/images/2019/09/inletsio--2-.png)
*Case-study with receiving webhooks from https://blog.alexellis.io/webhooks-are-great-when-you-can-get-them/*
Use-cases:
* Setup L4 TCP and HTTPS tunnels for your local services using [inlets-pro](https://inlets.dev/) with `inletsctl create`
* Create tunnels for use with Kubernetes clusters, create the tunnel and use it whenever you need it
* Port-forward services your local Kubernetes cluster using `inletsctl kfwd`## Contents
- [inletsctl - the fastest way to create self-hosted tunnels](#inletsctl---the-fastest-way-to-create-self-hosted-tunnels)
- [Contents](#contents)
- [Video demo](#video-demo)
- [Features](#features)
- [How much will this cost?](#how-much-will-this-cost)
- [Install `inletsctl`](#install-inletsctl)
- [Looking for documentation?](#looking-for-documentation)
- [Contributing & getting help](#contributing--getting-help)
- [Why do we need this tool?](#why-do-we-need-this-tool)
- [Provisioners](#provisioners)
- [Community support](#community-support)
- [License](#license)## Video demo
In the demo we:
* Create a cloud host on DigitalOcean with a single command
* Run a local Python HTTP server
* Connect our `inlets-pro client`
* Access the Python HTTP server via the DigitalOcean Public IP
* Use the CLI to delete the host[![asciicast](https://asciinema.org/a/q8vqJ0Fwug47T62biscp7cJ5O.svg)](https://asciinema.org/a/q8vqJ0Fwug47T62biscp7cJ5O)
inletsctl is the quickest and easiest way to automate tunnels, whilst retaining complete control of your tunnel and data.
## Features
* Provision hosts quickly using cloud-init with inlets pre-installed - `inletsctl create`
* Delete hosts by ID or IP address - `inletsctl delete`
* Automate port-forwarding from Kubernetes clusters with `inletsctl kfwd`## How much will this cost?
The `inletsctl create` command will provision a cloud host with the provider and region of your choice and then start running `inlets server`. The host is configured with the standard VM image for Ubuntu or Debian Linux and inlets is installed via userdata/cloud-init.
The [provision](https://github.com/inlets/inletsctl/tree/master/pkg/provision) package contains defaults for OS images to use and for cloud host plans and sizing. You'll find all available options on `inletsctl create --help`
The cost for cloud hosts varies depending on a number of factors such as the region, bandwidth used, and so forth. A rough estimation is that it could cost around 5 USD / month to host a VM on for DigitalOcean, or Scaleway. The VM is required to provide your public IP. Some hosting providers supply credits and a free-tier such as GCE and AWS.
See the pricing grid on the [inlets-operator](https://github.com/inlets/inlets-operator#provider-pricing) for a detailed breakdown.
inletsctl does not automatically delete your exit nodes (read cloud hosts), so you'll need to do that in your dashboard or via `inletsctl delete` when you are done.
## Install `inletsctl`
You can download the latest release from the [releases page](https://github.com/inlets/inletsctl/releases) or use [arkade](https://arkade.dev/):
```bash
# Install directly to /usr/local/bin/
curl -sLSf https://get.arkade.dev | sudo sh# Install to local directory (for Windows users)
curl -sLSf https://get.arkade.dev | sh
```The command can install inletsctl initially, and also update it later on:
```bash
arkade get inletsctl
```Windows users are encouraged to use [git bash](https://git-scm.com/downloads) to install the inletsctl binary.
## Looking for documentation?
To learn about the various features of inletsctl and how to configure each cloud provisioner, head over to the docs:
* [docs.inlets.dev](https://docs.inlets.dev/#/tools/inletsctl?id=inletsctl-reference-documentation)
## Contributing & getting help
Before seeking support, make sure you have read the instructions correctly, and try to run through them a second or third time to see if you have missed anything.
Then, try the troubleshooting guide in the official docs (link above).
### Why do we need this tool?
Why is inletsctl a separate binary? This tool is shipped separately, so that the core tunnel binary does not become bloated. The EC2 and AWS SDKs for Golang are very heavy-weight and result in a binary of over 30MB vs the small and nimble inlets-pro binaries.
### Provisioners
inletsctl can provision exit-servers to the following providers: DigitalOcean, Scaleway, Google Cloud, AWS EC2, Azure, Linode, Hetzner, and Vultr.
An open-source Go package named [provision](https://github.com/inlets/cloud-provision) can be extended for each new provider. This code can be used outside of inletsctl by other projects wishing to create hosts and to run some scripts upon start-up via userdata.
```go
type Provisioner interface {
Provision(BasicHost) (*ProvisionedHost, error)
Status(id string) (*ProvisionedHost, error)
Delete(HostDeleteRequest) error
}
```### License
inletsctl is distributed under the MIT license. inlets-pro, which inletsctl uses is licensed under the [inlets-pro End User License Agreement (EULA)](https://github.com/inlets/inlets-pro/blob/master/EULA.md) and requires [a personal or business subscription](https://store.openfaas.com/).