Smart SSH, HTTPS and MySQL bastion that needs no client-side software
Go to file
Thibaud Lepretre f3dc1ad668
Enhance ticket creation api and UI to support ticket number of usage (#959)
Ticket uses left was already supported on core but no way to defined it,
neither from UI neither from API

Changed API to accept new optional field and update UI form to be able
to set it from UI

related #924

---

UI changes

<img width="1370" alt="Screenshot 2024-03-04 at 00 15 11"
src="https://github.com/warp-tech/warpgate/assets/275609/76510a58-e232-46af-bf50-9444e5950507">
<img width="1360" alt="Screenshot 2024-03-04 at 00 13 58"
src="https://github.com/warp-tech/warpgate/assets/275609/814d2ce2-6f6c-48eb-b066-ecec039530fc">

---------

Co-authored-by: Eugene <inbox@null.page>
2024-03-04 10:14:14 +01:00
.cargo import 2022-04-10 22:58:58 +02:00
.github Update FUNDING.yml 2024-03-01 19:33:00 +01:00
docker bumped Docker build image 2023-09-26 15:54:04 +02:00
docs added readme banner 2022-08-08 16:03:35 +02:00
tests Update conftest.py 2024-01-23 12:31:00 +01:00
warpgate Bump version: 0.9.0 → 0.9.1 2023-12-18 16:24:44 +01:00
warpgate-admin Enhance ticket creation api and UI to support ticket number of usage (#959) 2024-03-04 10:14:14 +01:00
warpgate-common bumped rust 2024-01-23 12:05:59 +01:00
warpgate-core bumped rust 2024-01-23 12:05:59 +01:00
warpgate-database-protocols Bump version: 0.9.0 → 0.9.1 2023-12-18 16:24:44 +01:00
warpgate-db-entities Bump version: 0.9.0 → 0.9.1 2023-12-18 16:24:44 +01:00
warpgate-db-migrations Bump version: 0.9.0 → 0.9.1 2023-12-18 16:24:44 +01:00
warpgate-protocol-http fixed test 2024-02-04 21:09:26 +01:00
warpgate-protocol-mysql Bump version: 0.9.0 → 0.9.1 2023-12-18 16:24:44 +01:00
warpgate-protocol-ssh bumped rust 2024-01-23 12:05:59 +01:00
warpgate-sso fixed #929 - support additional trusted OIDC audiences 2024-01-13 11:07:26 +01:00
warpgate-web Enhance ticket creation api and UI to support ticket number of usage (#959) 2024-03-04 10:14:14 +01:00
.all-contributorsrc Add @notnooblord as a contributor 2022-11-02 19:36:50 +01:00
.bumpversion.cfg Bump version: 0.9.0 → 0.9.1 2023-12-18 16:24:44 +01:00
.dockerignore Updated Dockerfile & setup 2022-07-05 21:32:05 +02:00
.env import 2022-04-10 22:58:58 +02:00
.flake8 added e2e tests 2022-08-14 12:36:49 +02:00
.gitignore fixed #456 - postgres field type mismatch 2022-11-08 11:48:24 +01:00
Cargo.lock bumped rust 2024-01-23 12:05:59 +01:00
Cargo.toml bumped rust 2024-01-23 12:05:59 +01:00
clippy.toml added cranky and removed all .unwrap() usages 2022-07-23 21:31:35 +02:00
Cranky.toml deny clippy::indexing_slicing 2022-07-23 21:53:21 +02:00
Cross.toml build updates 2022-11-22 00:52:43 +01:00
deny.toml Revert "use workspace-level dependencies" 2022-07-06 09:24:06 +02:00
justfile lint 2022-11-20 14:09:27 +01:00
LICENSE Update LICENSE 2022-04-14 11:14:56 +02:00
README.md Enhance ticket creation api and UI to support ticket expiry (#957) 2024-03-01 19:27:48 +01:00
rust-toolchain bumped rust 2024-01-23 12:05:59 +01:00
rustfmt.toml sorted imports 2022-07-15 20:27:33 +02:00
sonar-project.properties added e2e tests 2022-08-14 12:36:49 +02:00



GitHub All Releases     Twitter


Warpgate is a smart SSH, HTTPS and MySQL bastion host for Linux that doesn't need special client apps.

  • 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 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.
  • Native 2FA and SSO support (TOTP & OpenID Connect)
  • Single binary with no dependencies.
  • Written in 100% safe Rust.

Getting started & downloads

image
image image

Project Status

The project is currently in alpha stage and is gathering community feedback. See the official roadmap for the upcoming features.

In particular, we're working on:

  • Requesting admin approvals for sessions
  • Support for tunneling PostgreSQL connections,
  • and much more.

How it works

Warpgate is a service that you deploy on the bastion/DMZ host, which will accept SSH, HTTPS and MySQL connections and provide an (optional) web admin UI.

Run warpgate setup to interactively generate a config file, including port bindings. See Getting started for details.

It receives 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 the admin UI, and the session history is stored in an SQLite database (default: in /var/lib/warpgate).

You can also use the admin web interface to view the live session list, review session recordings, logs and more.

Contributing / building from source

  • You'll need Rust, NodeJS and Yarn
  • Clone the repo
  • Just is used to run tasks - install it: cargo install just
  • Install the admin UI deps: just yarn
  • 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

Backend API

  • Warpgate admin and user facing APIs use autogenerated OpenAPI schemas and SDKs. To update the SDKs after changing the query/response structures, run just openapi-all.

Contributors

Thanks goes to these wonderful people (emoji key):


Eugeny

💻

Spencer Heywood

💻

Andreas Piening

💻

Niklas

💻

Nooblord

💻

This project follows the all-contributors specification. Contributions of any kind welcome!