GithubHelp home page GithubHelp logo

tunnel-manager's Introduction

Tunnel Manager

A docker compose application to manage ssh tunnels.

Work in Progress

This is not yet complete. Very happy to accept pull requests or feedback!

Application Design

There are three parts to this application. All sub-applications are in a container.

Browser UI

Location: src/web

User interface to create, stop, and get the status of ssh tunnels.

This is not finished. The intention is to use nginx for serving static content.

The nginx container will also serve as the proxy server to other parts of the application.

HTTP API

Location: src/app

An Express implemention. Simple HTTP routes only.

  • GET /tunnels - a list of currently open tunnels.
  • PUT /tunnels/:remoteName - start a ssh tunnel connection.
  • GET /tunnels/:remoteName - check status of ssh session.
  • DELETE /tunnels/:remoteName - request exit of ssh session.

Tunnel Server

Location: src/tunnel

A bash script that uses nc as an interface to call ssh commands.

This is the ssh tunnel persistence layer. In this container you will need to configure your ssh client with a volume mounted at /home/tunnel/.ssh. Currently, the user is static, with uid=1000; gid=1000.

Logging

Location: docker-compose.yml

A datalust/seq container is configured for logging. All other containers can send structured logs here. The src/web container will also proxy the admin UI.

tunnel-manager's People

Contributors

codeman99 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.