[PR #388] [MERGED] feat: Add default and advanced install method selection #408

Closed
opened 2026-02-26 12:41:17 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/community-scripts/ProxmoxVE-Local/pull/388
Author: @michelroegl-brunner
Created: 12/5/2025
Status: Merged
Merged: 12/5/2025
Merged by: @michelroegl-brunner

Base: mainHead: feat/use_new_core_features


📝 Commits (3)

  • 0ed13fc Fix linter errors: use Record type, remove unused function, fix floating promises and unsafe types
  • 7b8c1eb feat: Add default and advanced install method selection
  • 69a5ac3 Nump core

📊 Changes

15 files changed (+2704 additions, -93 deletions)

View changed files

scripts/core/alpine-tools.func (+507 -0)
📝 scripts/core/build.func (+42 -45)
scripts/core/cloud-init.func (+505 -0)
scripts/core/error-handler.func (+322 -0)
📝 scripts/core/tools.func (+12 -3)
scripts/ct/debian.sh (+44 -0)
scripts/install/debian-install.sh (+18 -0)
📝 server.js (+30 -13)
src/app/_components/ConfigurationModal.tsx (+899 -0)
📝 src/app/_components/ExecutionModeModal.tsx (+80 -23)
📝 src/app/_components/ScriptDetailModal.tsx (+5 -3)
📝 src/app/_components/Terminal.tsx (+6 -3)
📝 src/app/page.tsx (+4 -1)
📝 src/server/api/routers/scripts.ts (+192 -0)
📝 src/server/ssh-execution-service.js (+38 -2)

📄 Description

Feature: Default and Advanced Install Method Selection

This PR adds a new feature that allows users to choose between Default and Advanced installation modes when installing scripts.

Default Mode

  • Uses predefined defaults with minimal user input
  • Automatically sets:
    • Hostname from script slug
    • Bridge: vmbr0
    • Network: dhcp
    • IPv6 method: auto
    • SSH: no
    • Nesting: 1
  • User only needs to select container storage from a dropdown filtered by server node

Advanced Mode (Beta)

  • Full configuration modal with all environment variables customizable
  • Includes all settings from default mode plus:
    • Resources (CPU, RAM, Disk) from JSON defaults
    • Network configuration (static IP with CIDR support, gateway, VLAN, MTU, MAC, DNS)
    • IPv6 configuration (with static address support)
    • Root password (formatted correctly for build.func)
    • SSH settings (auto-enabled when password/keys provided)
    • Container features (nesting, fuse, keyctl, mknod, mount filesystems, protection)
    • System settings (timezone, verbose mode, APT cacher)
    • Storage selection (container and template storages filtered by server node)

Key Features

  • IPv4 CIDR Input: When network mode is set to 'static', an input field appears for CIDR format (e.g., 10.10.10.1/24)
  • IPv6 Static Input: When IPv6 method is set to 'static', an input field appears for IPv6 address
  • Password Handling: Passwords are automatically formatted as -password <password> for build.func compatibility
  • SSH Auto-Enable: SSH is automatically enabled when a password is set or SSH keys are provided
  • Storage Filtering: Storage dropdowns only show storages assigned to the selected server's node
  • Environment Variables: All variables are passed through the entire execution stack (frontend → WebSocket → SSH/local execution)

Technical Details

  • Added ConfigurationModal component for configuration UI
  • Updated ExecutionModeModal to show mode selection (with 'Advanced (Beta)' label)
  • Environment variables are passed as var_name='value' format for SSH execution
  • Mode variable is always set to 'default' for script execution
  • Console logging added to show exact SSH commands executed

🔄 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/388 **Author:** [@michelroegl-brunner](https://github.com/michelroegl-brunner) **Created:** 12/5/2025 **Status:** ✅ Merged **Merged:** 12/5/2025 **Merged by:** [@michelroegl-brunner](https://github.com/michelroegl-brunner) **Base:** `main` ← **Head:** `feat/use_new_core_features` --- ### 📝 Commits (3) - [`0ed13fc`](https://github.com/community-scripts/ProxmoxVE-Local/commit/0ed13fcf0f982f46fa1848ca1aa02c6f2f5dc84b) Fix linter errors: use Record type, remove unused function, fix floating promises and unsafe types - [`7b8c1eb`](https://github.com/community-scripts/ProxmoxVE-Local/commit/7b8c1ebdf1f0958be1507d2b26b814064e158f80) feat: Add default and advanced install method selection - [`69a5ac3`](https://github.com/community-scripts/ProxmoxVE-Local/commit/69a5ac3a566f2890abf9af5de8dc4016e697ee92) Nump core ### 📊 Changes **15 files changed** (+2704 additions, -93 deletions) <details> <summary>View changed files</summary> ➕ `scripts/core/alpine-tools.func` (+507 -0) 📝 `scripts/core/build.func` (+42 -45) ➕ `scripts/core/cloud-init.func` (+505 -0) ➕ `scripts/core/error-handler.func` (+322 -0) 📝 `scripts/core/tools.func` (+12 -3) ➕ `scripts/ct/debian.sh` (+44 -0) ➕ `scripts/install/debian-install.sh` (+18 -0) 📝 `server.js` (+30 -13) ➕ `src/app/_components/ConfigurationModal.tsx` (+899 -0) 📝 `src/app/_components/ExecutionModeModal.tsx` (+80 -23) 📝 `src/app/_components/ScriptDetailModal.tsx` (+5 -3) 📝 `src/app/_components/Terminal.tsx` (+6 -3) 📝 `src/app/page.tsx` (+4 -1) 📝 `src/server/api/routers/scripts.ts` (+192 -0) 📝 `src/server/ssh-execution-service.js` (+38 -2) </details> ### 📄 Description ## Feature: Default and Advanced Install Method Selection This PR adds a new feature that allows users to choose between **Default** and **Advanced** installation modes when installing scripts. ### Default Mode - Uses predefined defaults with minimal user input - Automatically sets: - Hostname from script slug - Bridge: vmbr0 - Network: dhcp - IPv6 method: auto - SSH: no - Nesting: 1 - User only needs to select container storage from a dropdown filtered by server node ### Advanced Mode (Beta) - Full configuration modal with all environment variables customizable - Includes all settings from default mode plus: - Resources (CPU, RAM, Disk) from JSON defaults - Network configuration (static IP with CIDR support, gateway, VLAN, MTU, MAC, DNS) - IPv6 configuration (with static address support) - Root password (formatted correctly for build.func) - SSH settings (auto-enabled when password/keys provided) - Container features (nesting, fuse, keyctl, mknod, mount filesystems, protection) - System settings (timezone, verbose mode, APT cacher) - Storage selection (container and template storages filtered by server node) ### Key Features - **IPv4 CIDR Input**: When network mode is set to 'static', an input field appears for CIDR format (e.g., 10.10.10.1/24) - **IPv6 Static Input**: When IPv6 method is set to 'static', an input field appears for IPv6 address - **Password Handling**: Passwords are automatically formatted as `-password <password>` for build.func compatibility - **SSH Auto-Enable**: SSH is automatically enabled when a password is set or SSH keys are provided - **Storage Filtering**: Storage dropdowns only show storages assigned to the selected server's node - **Environment Variables**: All variables are passed through the entire execution stack (frontend → WebSocket → SSH/local execution) ### Technical Details - Added `ConfigurationModal` component for configuration UI - Updated `ExecutionModeModal` to show mode selection (with 'Advanced (Beta)' label) - Environment variables are passed as `var_name='value'` format for SSH execution - Mode variable is always set to 'default' for script execution - Console logging added to show exact SSH commands executed --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 12:41:17 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ProxmoxVE-Local#408
No description provided.