NeXTSSH: A Web-based SSH Client and Terminal Emulator
Connect to and command your remote servers effortlessly with NeXTSSH, a web-based SSH client and terminal emulator. Master your systems directly from your browser!
Key Features
- Seamless SSH Connections: Establish secure connections to your remote servers with ease.
- Responsive Terminal Experience: Enjoy a fluid, full-featured terminal right in your web browser.
- Organized Connection Management: Conveniently manage multiple server connections.
Technologies
- NextJS: Blazing-fast React-based web framework.
- NodeJS: Robust JavaScript runtime environment.
- Socket.io: Real-time, bi-directional communication for seamless updates.
- Xterm.js: Robust terminal emulation in the browser.
- SSH2: Comprehensive SSH2 implementation for NodeJS.
Local Development
-
Clone the Repository:
git clone https://github.com/tapiwamla/NeXTSSH.git
-
Install Dependencies:
npm install
-
Add Environment Variables: Create a
.env
file with the following content:NEXTAUTH_SECRET='your-secret-key' (Use `openssl rand -base64 32` to generate a secret key) GOOGLE_CLIENT_ID='your-client-id' GOOGLE_CLIENT_SECRET='your-client-secret' GITHUB_CLIENT_ID='your-client-id' GITHUB_CLIENT_SECRET='your-client-secret'
Note: The
NEXTAUTH_SECRET
value is optional for development, but required for production. -
For development, start the Development Server:
npm run dev
For production, first build the project:
npm run build
Then start the server:
npm run start
Screenshots
Connection Page:
Connections Dashboard:
Terminal Page:
Account Page:
Dark Mode:
Testing
-
The project includes Jest for unit testing.
-
Run unit tests:
npm test
Notes
- Support: If you find NeXTSSH useful, a star on the GitHub repo would be awesome!
- Security: NeXTSSH handles SSH connections. Ensure you follow best security practices and use strong credentials.
- Deployment: Explore suitable hosting options (like cloud providers) for production deployment.