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!
- 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.
- 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.
-
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
-
The project includes Jest for unit testing.
-
Run unit tests:
npm test
-
NeXTSSH was passionately crafted by Tapiwanashe Mlambo, a graduate of the Bachelor of Science in Applied Computer Technology from USIU-Africa.
-
Want to make NeXTSSH even better? I welcome contributions! Feel free to open issues, submit pull requests, or suggest new features. Let's build together!
-
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.