[PR #144] [MERGED] feat: Add Shell button for interactive LXC container access #212

Closed
opened 2025-11-20 04:13:32 -05:00 by saavagebueno · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/community-scripts/ProxmoxVE-Local/pull/144
Author: @michelroegl-brunner
Created: 10/14/2025
Status: Merged
Merged: 10/14/2025
Merged by: @michelroegl-brunner

Base: mainHead: feat/shell_acces_to_lxc


📝 Commits (3)

  • 8d9f119 feat: Add Shell button for interactive LXC container access
  • 04a8575 fix: Include SSH authentication fields in installed scripts data
  • 2daa0cf fix: Resolve TypeScript and ESLint build errors

📊 Changes

7 files changed (+295 additions, -662 deletions)

View changed files

scripts/vm/openwrt-vm.sh (+0 -651)
📝 server.js (+143 -1)
📝 src/app/_components/InstalledScriptsTab.tsx (+125 -5)
📝 src/app/_components/SSHKeyInput.tsx (+0 -3)
📝 src/app/_components/ScriptInstallationCard.tsx (+18 -0)
📝 src/app/_components/Terminal.tsx (+5 -2)
📝 src/server/database.js (+4 -0)

📄 Description

Overview

This PR adds a new Shell button that provides interactive access to LXC containers without automatically sending update commands.

Features

  • Interactive Shell Access: Direct shell access to LXC containers
  • Disabled When Stopped: Button is disabled when container is stopped
  • Auto-scroll: Smooth scrolling to terminal when opened
  • Visual Feedback: Highlight effect to draw attention
  • Consistent UX: Mirrors Update button behavior but for interactive use

Implementation Details

Frontend Changes

  • Added onShell prop to ScriptInstallationCard
  • Added openingShell state management in InstalledScriptsTab
  • Added isShell prop to Terminal component
  • Implemented smooth scrolling with highlight effect

Backend Changes

  • Added startShellExecution method
  • Added startLocalShellExecution (no auto-commands)
  • Added startSSHShellExecution (no auto-commands)
  • Updated WebSocket message handling for shell mode

Testing

  • Shell button appears for SSH scripts with container_id
  • Shell button is disabled when container is stopped
  • Terminal opens and connects properly
  • Auto-scroll works smoothly
  • No automatic commands are sent
  • Interactive shell session works correctly

Screenshots

The Shell button appears in the Actions column next to the Update button for SSH scripts.

Breaking Changes

None - this is a purely additive feature.

Implements interactive shell access for LXC containers as requested.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/community-scripts/ProxmoxVE-Local/pull/144 **Author:** [@michelroegl-brunner](https://github.com/michelroegl-brunner) **Created:** 10/14/2025 **Status:** ✅ Merged **Merged:** 10/14/2025 **Merged by:** [@michelroegl-brunner](https://github.com/michelroegl-brunner) **Base:** `main` ← **Head:** `feat/shell_acces_to_lxc` --- ### 📝 Commits (3) - [`8d9f119`](https://github.com/community-scripts/ProxmoxVE-Local/commit/8d9f119e1c23a49db8ed9c9a4b86b641987fe359) feat: Add Shell button for interactive LXC container access - [`04a8575`](https://github.com/community-scripts/ProxmoxVE-Local/commit/04a857599802578496f7f0594b4bf0ce9d952677) fix: Include SSH authentication fields in installed scripts data - [`2daa0cf`](https://github.com/community-scripts/ProxmoxVE-Local/commit/2daa0cf71981610dcdf3ba34bf06334f5a6c2a2c) fix: Resolve TypeScript and ESLint build errors ### 📊 Changes **7 files changed** (+295 additions, -662 deletions) <details> <summary>View changed files</summary> ➖ `scripts/vm/openwrt-vm.sh` (+0 -651) 📝 `server.js` (+143 -1) 📝 `src/app/_components/InstalledScriptsTab.tsx` (+125 -5) 📝 `src/app/_components/SSHKeyInput.tsx` (+0 -3) 📝 `src/app/_components/ScriptInstallationCard.tsx` (+18 -0) 📝 `src/app/_components/Terminal.tsx` (+5 -2) 📝 `src/server/database.js` (+4 -0) </details> ### 📄 Description ## Overview This PR adds a new **Shell** button that provides interactive access to LXC containers without automatically sending update commands. ## Features - **Interactive Shell Access**: Direct shell access to LXC containers - **Disabled When Stopped**: Button is disabled when container is stopped - **Auto-scroll**: Smooth scrolling to terminal when opened - **Visual Feedback**: Highlight effect to draw attention - **Consistent UX**: Mirrors Update button behavior but for interactive use ## Implementation Details ### Frontend Changes - Added `onShell` prop to `ScriptInstallationCard` - Added `openingShell` state management in `InstalledScriptsTab` - Added `isShell` prop to `Terminal` component - Implemented smooth scrolling with highlight effect ### Backend Changes - Added `startShellExecution` method - Added `startLocalShellExecution` (no auto-commands) - Added `startSSHShellExecution` (no auto-commands) - Updated WebSocket message handling for shell mode ## Testing - [x] Shell button appears for SSH scripts with container_id - [x] Shell button is disabled when container is stopped - [x] Terminal opens and connects properly - [x] Auto-scroll works smoothly - [x] No automatic commands are sent - [x] Interactive shell session works correctly ## Screenshots The Shell button appears in the Actions column next to the Update button for SSH scripts. ## Breaking Changes None - this is a purely additive feature. ## Related Issues Implements interactive shell access for LXC containers as requested. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
saavagebueno added the pull-request label 2025-11-20 04:13:32 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/ProxmoxVE-Local#212