You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A modern, user-friendly desktop application for managing SSH tunnels with ease.
6
8
7
9
## Overview
8
10
9
11
The SSH Tunnel Manager simplifies creating, managing, and executing SSH tunnels through an intuitive Graphical User Interface (GUI). Built with Python and PyQt6, it allows for easy configuration of connection profiles, port forwarding, and tunnel control.
10
12
13
+
## Getting Started
14
+
15
+
There are a couple of easy ways to get started with SSH Tunnel Manager:
16
+
17
+
### 1. Download Executable (Recommended)
18
+
19
+
The easiest way to use the application is to download a pre-built executable for your operating system.
20
+
21
+
1. Go to the [Releases page](https://github.com/NtWriteCode/ssh-tunnel-manager/releases).
22
+
2. Download the latest executable for your system (Windows, macOS, or Linux).
23
+
3. Run the downloaded application. No installation is typically required.
24
+
25
+
### 2. Install with pip (Cross-Platform)
26
+
27
+
If you have Python and pip installed, you can install the SSH Tunnel Manager GUI directly from PyPI:
28
+
29
+
```bash
30
+
pip install ssh-tunnel-manager-gui
31
+
```
32
+
Then, you should be able to run it from your terminal (the exact command might depend on your system's PATH configuration, often it's `ssh-tunnel-manager-gui`).
33
+
11
34
## Key Features
12
35
13
-
***Intuitive Profile Management:** Save, load, and manage multiple SSH connection profiles (server, port, key, port mappings).
***Easy Port Forwarding:** Configure multiple local-to-remote port mappings per profile.
15
-
***Simple Tunnel Control:** Start/stop tunnels with a click. Copy the underlying SSH command if needed.
38
+
***Simple Tunnel Control:** Start/stop tunnels with a click. Copy the underlying SSH command.
16
39
***Real-time Status:** Clear visual feedback on tunnel status (Idle, Starting, Running, Stopped, Errors).
17
40
***Automatic Persistence:** Profiles are saved to `~/.config/ssh_tunnel_manager/config.json`.
18
-
***User-Friendly Design:** Dynamic UI adjustments and clear visual cues for an improved experience.
19
41
20
-
## Requirements (for running from source)
42
+
## Configuration
21
43
22
-
* Python 3.x
23
-
* PyQt6 (`PyQt6>=6.0.0`)
24
-
*`typing-extensions>=4.0.0`
25
-
* An SSH client installed and available in your system's PATH (e.g., OpenSSH).
44
+
Once the application is running:
26
45
27
-
## Getting Started
46
+
***Server:** Enter the SSH server address (`user@hostname`).
47
+
***SSH Port:** Specify the SSH server port (defaults to 22).
48
+
***SSH Key File:** (Optional) Path to your SSH private key (tilde `~` expansion supported).
49
+
***Port Forwarding:** Add/remove `Local Port` to `Remote Port` mappings.
50
+
***Profiles:** Save, load, or delete configurations. Changes are auto-saved.
51
+
52
+
Application data is stored in `~/.config/ssh_tunnel_manager/config.json`.
28
53
29
-
### Using a Release (Recommended)
54
+
##For Developers
30
55
31
-
1. Go to the [Releases page](https://github.com/NtWriteCode/ssh-tunnel-manager/releases).
32
-
2. Download the latest executable for your operating system (Windows, macOS, or Linux).
33
-
3. Run the downloaded application. No installation is typically required.
56
+
If you want to contribute or run the latest development version:
34
57
35
-
### Running from Source (for Development)
58
+
### Running from Source
36
59
37
60
1.**Clone the repository:**
38
61
```bash
@@ -42,39 +65,39 @@ The SSH Tunnel Manager simplifies creating, managing, and executing SSH tunnels
42
65
2. **Create a virtual environment (recommended):**
43
66
```bash
44
67
python -m venv venv
45
-
source venv/bin/activate # On Windows: venv\\Scripts\\activate
68
+
source venv/bin/activate # On Windows: venv\Scripts\activate
46
69
```
47
70
3. **Install dependencies:**
48
71
```bash
49
72
pip install -r requirements.txt
73
+
# For development, also install dev dependencies:
74
+
# pip install -r requirements.dev.txt
50
75
```
51
76
4. **Run the application:**
52
77
```bash
53
-
python main.py
78
+
python -m ssh_tunnel_manager.main # Or your project's main entry point
54
79
```
80
+
*(Note: I've assumed `python -m ssh_tunnel_manager.main` as a common way to run GUI apps from a package structure. If your entry point is just `python main.py` at the root, please adjust or let me know.)*
55
81
56
-
## Configuration
57
-
58
-
Once the application is running:
59
-
60
-
***Server:** Enter the SSH server address (`user@hostname`).
61
-
***SSH Port:** Specify the SSH server port (defaults to 22).
62
-
***SSH Key File:** (Optional) Path to your SSH private key (tilde `~` expansion supported).
63
-
***Port Forwarding:** Add/remove `Local Port` to `Remote Port` mappings.
64
-
***Profiles:** Save, load, or delete configurations. Changes are auto-saved.
65
-
***Controls:** Use "Start/Stop Tunnel" and "Copy SSH Command" as needed.
82
+
### Requirements (for running from source)
66
83
67
-
Application data is stored in`~/.config/ssh_tunnel_manager/config.json`.
84
+
* Python 3.x
85
+
* PyQt6 (`PyQt6>=6.0.0`)
86
+
* `typing-extensions>=4.0.0`
87
+
* An SSH client installed and available in your system's PATH (e.g., OpenSSH).
68
88
69
-
## Building from Source
89
+
### Building from Source
70
90
71
91
The project uses PyInstaller. The GitHub Actions workflow (`.github/workflows/main-build.yml`) handles release builds.
(Adjust `ssh_tunnel_manager/main.py` to your actual main script path. `--windowed` is good for GUI apps, especially on Windows. The name `ssh-tunnel-manager-gui` aligns with the assumed PyPI name.)
78
101
Executables are found in the `dist` directory.
79
102
80
103
## Contributing
@@ -83,7 +106,7 @@ Contributions are welcome! Please fork the repository, create a feature branch,
83
106
84
107
1. Fork the Project
85
108
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
86
-
3. Commit your Changes (`git commit -m \'Add some AmazingFeature\'`)
109
+
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
87
110
4. Push to the Branch (`git push origin feature/AmazingFeature`)
0 commit comments