Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codeman99/tunnel-manager
A web UI for ssh tunnel management.
https://github.com/codeman99/tunnel-manager
Last synced: about 1 month ago
JSON representation
A web UI for ssh tunnel management.
- Host: GitHub
- URL: https://github.com/codeman99/tunnel-manager
- Owner: CodeMan99
- License: isc
- Created: 2023-02-04T16:34:41.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-05-16T14:50:08.000Z (6 months ago)
- Last Synced: 2024-05-16T16:01:13.175Z (6 months ago)
- Language: TypeScript
- Size: 84 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# 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](https://datalust.co) container is configured for logging. All other containers can send structured logs here. The `src/web` container will also proxy the admin UI.