Draft
Conversation
…strings Co-authored-by: nexusct <19503275+nexusct@users.noreply.github.com> Agent-Logs-Url: https://github.com/nexusct/1Panel/sessions/39e7a20c-ef3e-4323-ab36-da85d1d129c0
Co-authored-by: nexusct <19503275+nexusct@users.noreply.github.com> Agent-Logs-Url: https://github.com/nexusct/1Panel/sessions/39e7a20c-ef3e-4323-ab36-da85d1d129c0
Copilot
AI
changed the title
[WIP] Add Toolbox Installers section to 1Panel GUI
Add Toolbox Installers section to 1Panel GUI
Mar 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a one-click installer UI to the Toolbox section for 7 developer tools (Claude Code, Codex CLI, Odoo ERP, Shopify CLI, Contentful CLI, Strapi CMS, React Bricks CMS), backed by the existing
ci/install_*.shscripts.Backend (
agent/)app/api/v2/toolbox_installer.go— Two newBaseApimethods:InstallTool(POST /api/v2/toolbox/installer/install) — resolves tool key →ci/*.shscript path via static map, executes viabashwithINSTALL_TOOLenv var, returns combined stdout/stderrGetToolInstallStatus(GET /api/v2/toolbox/installer/status/:tool) — runs a per-tool presence check command and returns{installed, version}^[a-z0-9-]+$regex before any map lookup or subprocess execapp/dto/toolbox_installer.go—InstallerToolReq,InstallerToolRes,InstallerToolStatusDTOsrouter/ro_toolbox.go— Two routes added to existingToolboxRouterFrontend (
frontend/src/)views/toolbox/installers/index.vue— Card grid, one card per tool: installed/not-installed status tag (fetched on mount), Install button with loading state, log drawer showing stdout/stderr after installapi/modules/toolbox.ts—installTool/getToolInstallStatusadded to existing toolbox API modulerouters/modules/toolbox.ts—installersadded as a child route under the existing/toolboxparent; discoverable via existingimport.meta.globviews/toolbox/index.vue— "Tool Installers" tab added to theRouterButtonnav barlang/modules/en.ts/zh.ts—menu.toolboxInstallersandtoolbox.installers.*keys added in both localesOriginal prompt
Overview
Add a new "Toolbox Installers" section to the 1Panel GUI that lets users install the following tools directly from the panel with one click, with live log streaming and status tracking:
@anthropic-ai/claude-code)@openai/codex)@shopify/cli@latest)contentful-cli)create-strapi@latest)create-reactbricks-app@latest)Each tool uses the corresponding
ci/install_*.shscript already present in the repo (from previous PRs). The UI calls a new backend API that runs the appropriate script via bash and streams logs back.Architecture
The implementation follows the existing 1Panel patterns closely:
/api/v2/toolbox/toolbox/installerswith a card grid UI, install/status buttons, and a log drawerBackend Changes
1.
agent/app/api/v2/toolbox.go— NEW FILE2.
agent/router/ro_toolbox.go— NEW FILERegister the two new endpoints: