From a85bce777d12315c64752b4cc76371ac5a1b18b4 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Tue, 5 Jul 2022 22:38:10 +0200 Subject: [PATCH] Update README.md --- README.md | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 92ab5ff..8f6cda7 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,15 @@ -# Warpgate + + +
GitHub All Releases     -Warpgate is a smart SSH bastion host for Linux that can be used with _any_ SSH client. +--- -* Set it up in your DMZ, add user accounts and easily assign them to specific hosts within the network. -* Warpgate will record every session for you to view (live) and replay later through a built-in admin web UI. +Warpgate is a smart SSH & HTTPS bastion host for Linux that can be used with _any_ SSH client. + +* Set it up in your DMZ, add user accounts and easily assign them to specific hosts and URLs within the network. +* Warpgate will record every SSH session for you to view (live) and replay later through a built-in admin web UI. * Not a jump host - forwards your connections straight to the target instead. * 2FA support * Single binary with no dependencies. @@ -24,11 +28,12 @@ Warpgate is a smart SSH bastion host for Linux that can be used with _any_ SSH c
- image + image - image + image +
@@ -39,22 +44,23 @@ The project is currently in **alpha** stage and is gathering community feedback. In particular, we're working on: -* Support for exposing HTTP(S) endpoints through the bastion, * Support for tunneling database connections, * Requesting admin approval for sessions * and much more. ## How it works -Warpgate is a service that you deploy on the bastion/DMZ host, which will accept SSH connections and provide an (optional) web admin UI. +Warpgate is a service that you deploy on the bastion/DMZ host, which will accept SSH and HTTPS connections and provide an (optional) web admin UI. Run `warpgate setup` to interactively generate a config file, including port bindings. See [Getting started](https://github.com/warp-tech/warpgate/wiki/Getting-started) for details. It receives SSH connections with specifically formatted credentials, authenticates the user locally, connects to the target itself, and then connects both parties together while (optionally) recording the session. +When connecting through HTTPS, Warpgate presents a selection of available targets, and will then proxy all traffic in a session to the selected target. You can switch between targets at any time. + You manage the target and user lists and assign them to each other through a config file (default: `/etc/warpgate.yaml`), and the session history is stored in an SQLite database (default: in `/var/lib/warpgate`). -You can use the web interface to view the live session list, review session recordings and more. +You can use the admin web interface to view the live session list, review session recordings, logs and more. ## Contributing / building from source @@ -62,10 +68,21 @@ You can use the web interface to view the live session list, review session reco * Clone the repo * [Just](https://github.com/casey/just) is used to run tasks - install it: `cargo install just` * Install the admin UI deps: `just yarn` -* Build the API SDK: `just openapi` * Build the frontend: `just yarn build` * Build Warpgate: `cargo build` (optionally `--release`) +The binary is in `target/{debug|release}`. + +### Tech stack + +* Rust 🦀 + * HTTP: `poem-web` + * Database: SQLite via `sea-orm` + `sqlx` + * SSH: `russh` +* Typescript + * Svelte + * Bootstrap + ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):