nextssh

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

Technologies

Local Development

  1. Clone the Repository:
    git clone https://github.com/tapiwamla/NeXTSSH.git
    
  2. Install Dependencies:
    npm install
    
  3. 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
    NEXT_PUBLIC_SOCKET_URL='your-production-url'
    GITHUB_CLIENT_ID='your-client-id'
    GITHUB_CLIENT_SECRET='your-client-secret'
    

    To get the GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET, follow these steps:

    • Go to GitHub Developer Settings:
      • Visit GitHub Developer Settings.
    • Create a New OAuth App:
      • Under the “OAuth Apps” section, click “New OAuth App”.
    • Fill in the Application Details:
      • Application Name: Enter a name for your app (e.g., “Next.js App”).
      • Homepage URL: Enter your application’s URL (e.g., http://localhost:3000 for local development).
      • Authorization Callback URL: Enter the callback URL for your app. For NextAuth, this is typically:
        http://localhost:3000/api/auth/callback/github
        
    • Register the Application:
      • Click “Register Application”.
    • Copy the Client ID and Client Secret:
      • After registering, you will see the Client ID on the app’s page.
      • Click “Generate a new client secret” to get the Client Secret.

    Note: The NEXTAUTH_SECRET value is optional for development, but required for production.

  4. Start the Development Server:
    npm run dev
    

    For production, first build the project:

    npm run build
    

    Then start the server:

    npm run start
    

Testing

Screenshots

Landing Page:

Landing Page

Connection Page:

New Connection Page

Connections Dashboard:

Connections Dashboard

Terminal Page:

Terminal Page

Account Page:

Account Page

Dark Mode:

Dark Mode

Contributing

Additional Notes