系统要求

GOGIES IDE 经过极致优化,非常轻量且快速。它原生运行在标准网页服务器上,无需在生产主机上绑定任何复杂的 Node.js 运行时。

  • 网页服务器: Apache、Nginx 或 PHP 内置服务器。
  • PHP 版本: PHP 7.4 或更高版本(推荐 PHP 8.x)。
  • PHP 扩展: curl, sqlite3, zip,以及对 data/ 文件夹的写访问权限。
  • 客户端浏览器: 启用了 ES6 Javascript 的现代网页浏览器(Chrome、Firefox、Safari、Edge)。
  • 可选的 AI 代理依赖项: 在您的主机系统上安装这些以解锁 GOGIES AI 代理的全部功能:
    • Node.js: 解锁构建工具(如 npm/vite)、开发服务器和自动化运行时。
    • Docker: 启用代码和服务在沙箱中的安全隔离测试。
    • ImageMagick: 允许代理优化、裁剪和转换图像以提高网页性能。

软件安装

按照以下步骤在您的自托管服务器环境中部署 GOGIES IDE:

1. 克隆代码库

直接将仓库克隆到您网页服务器的公共文档根目录中:

git clone https://github.com/alhelalat/GOGIES-AI-IDE.git /var/www/html/ide

2. 配置目录权限

IDE 在 data/ 目录内写入会话历史、设置、数据库备份归档和配置文件。授予网页服务器用户写权限(在 Ubuntu/Debian 上通常为 www-data):

cd /var/www/html/ide
chmod -R 775 data
chown -R www-data:www-data data
本地安全提示

由于 IDE 为授权用户提供了终端执行功能,您应该将网页服务器绑定到 localhost (127.0.0.1) 而不是 0.0.0.0,以防止本地网络中其他机器的外部访问。

初始设置

目录配置完成后,打开您的网页浏览器并导航到内置安装器:

http://localhost/ide/install.php

安装向导将引导您完成以下设置配置:

  1. 路径验证: 自动检测您的根应用程序目录并验证数据文件夹的写权限。
  2. 管理员账户: 创建您的主管理员用户名和密码。
  3. 首个工作空间: 创建您的初始工作空间。您必须提供名称和服务器上您想要编写代码的文件夹的绝对路径。

完成后,安装器生成 config.php 文件,您将被重定向到登录面板。

工作空间管理

工作空间允许您划分不同的代码目录。例如,您可以为不同的客户项目或微服务创建独立的工作空间。

要在活动工作空间之间切换,请使用位于 IDE 左下角设置面板中的下拉选择器。这会切换您在会话环境中的活动工作空间路径,并自动重新加载文件浏览器树。

工作空间和用户管理界面

文件管理

IDE 面板左侧的文件浏览器树允许您直接与活动工作空间目录结构进行交互:

  • 新建文件/目录: 单击浏览器树顶部的建新文件或建新文件夹按钮以创建空资源。
  • 右键菜单操作: 右键单击树中的任何文件或目录以触发上下文操作:
    • Rename: 重命名所选资源。
    • Copy: 在当前文件夹中创建即时副本。
    • Download: 直接从浏览器下载文件。
    • Decompress: 直接在服务器主机上解压 zip 归档。
    • Delete: 递归删除文件和文件夹(需要用户确认)。

代码编辑器

核心编辑体验基于 Ace Editor。它具有 CSS、JS、HTML、PHP、Markdown、JSON 和 Python 的语法高亮。

写保护的或从不可编辑位置打开的文件会自动以只读模式加载(带有徽章标记)。只读文件会隐藏保存按钮以防止写入错误。

Ace Editor 界面与设置

用户权限

用户和权限保存在 data/users/users.php 数组中。管理员拥有 * 权限,这授予了读取和写入文件、通过终端执行命令以及访问管理员用户管理器控制台的完整控制权。

标准的开发者账户可以限制为特定的工作空间权限,确保他们无法读取配置文件或访问未分配给他们的工作空间目录。

数据库管理器

GOGIES IDE 包含一个完全集成的网页端数据库管理器,允许您直接在代码旁边检查和修改物理数据库。

内置数据库管理控制台

支持的数据库

数据库管理器支持 SQLite、MySQL 和 PostgreSQL 连接配置。数据库凭据和连接参数安全地保存在服务器上。

检查与查询

  • 数据表检查器: 浏览模式结构、表定义、索引和主键设置。
  • 交互式 SQL 控制台: 直接在浏览器面板中编写和执行任意查询,显示格式化的数据网格和分页控制。

工作空间备份与恢复

IDE 提供高保真的备份与恢复操作,以确保您的开发进度和数据库状态安全。

备份与恢复历史面板

统一的工作空间备份

当您单击备份工作空间时,GOGIES IDE 会运行服务器端程序来归档:

  1. 活动工作空间内的所有源代码文件和目录配置。
  2. 您的数据库连接配置。
  3. 物理 SQLite 数据库以及活动 MySQL/PostgreSQL 表结构和行条目(导出为流式 SQL 转储文件)。

结果打包成一个高压缩比的 ZIP 归档,保存在 data 目录中以便下载。

轻松恢复

要回滚您的系统,只需从备份历史面板中选择一个备份并单击恢复。GOGIES IDE 将解压工作空间文件,并在事务块中(使用 PDO 事务)自动重新运行表结构和数据插入,以将您的数据库恢复到确切的先前状态。

GOGIES AI 代理

GOGIES IDE 包含一个完全集成的、多轮的**自主 AI 编码代理**,在您的工作空间内与您进行结对编程。

自主 AI 代理聊天控制台及历史

工作原理

代理被赋予了对由 XML 标签表示的工具的访问权限。当模型在其对话文本中输出这些标签时,IDE 会拦截、处理并执行它们,自动将输出发回给模型。

顺序多操作执行

如果 AI 生成了多个工具(例如执行命令和创建多个文件),IDE 会使用异步队列顺序执行它们。结果会汇总并在单轮中统一发回给模型,保持执行整洁且高效。

自定义规则 (agent_rules.md)

您可以为代理定义项目特定的行为规则。只需在工作空间的根目录中创建一个名为 agent_rules.md 的文件。IDE 会自动读取该文件并将其内容附加到系统提示中,指示代理遵循您的编码指南、库或架构。

审批模式

在底部的 AI 设置菜单中,您可以配置 IDE 如何授权写操作和命令执行:

  • 询问(默认): IDE 渲染带有差异预览和等待控制的审批卡。只有在您显式单击“批准”时,工具才会运行。
  • 自动批准: 立即执行终端命令和文件修改,以加快自主工作流。
  • 自动拒绝: 阻止所有写入操作和命令。

AI 服务商集成(本地与云端)

GOGIES IDE 支持广泛的 AI 模型配置,允许您根据工作流和隐私需求,在离线本地运行时与强大的商业云端 API 之间无缝切换。

AI 代理及服务商设置配置

1. 云端 AI 服务商设置

您可以通过在 AI 设置面板中输入您的凭据,将编码助手连接到主要的商业 AI API:

  • OpenAI: 服务商设置为 openai,API URL 设置为 https://api.openai.com/v1,模型设置为 gpt-4o(或其他 OpenAI 推理模型),并输入您的 OpenAI API 密钥。
  • Anthropic: 服务商设置为 anthropic,API URL 设置为 https://api.anthropic.com,模型设置为 claude-3-5-sonnet-latest,并输入您的 Anthropic API 密钥。
  • Google Gemini: 服务商设置为 gemini,API URL 设置为 https://generativelanguage.googleapis.com/v1beta/openai,模型设置为 gemini-2.5-flash,并输入您的 Google AI Studio API 密钥。

2. 本地 LLM 服务商设置 (Ollama)

对于完全私密和离线的开发,您可以使用 Ollama 在本地运行 LLM:

  1. 安装 Ollama: 在您的主机系统上运行安装脚本:
    curl -fsSL https://ollama.com/install.sh | sh
  2. 拉取编码模型: 拉取推荐的开发模型,如 qwen2.5-coder:7bdeepseek-coder
    ollama pull qwen2.5-coder:7b
  3. 配置 GOGIES IDE: 在 AI 设置菜单中,选择本地 Ollama 服务商模板,验证 API URL 指向 http://localhost:11434/v1,并将模型名称与您拉取的标签匹配(例如 qwen2.5-coder:7b)。将 API Key 字段留空。

API 参考

您可以通过向 api.php 文件发送 POST 请求来以编程方式与 IDE 后端进行交互。所有请求必须包含用于身份验证的会话 Cookie。

可用操作

  • get_file_content: 获取文件的源代码文本。
    POST api.php?action=get_file_content&path=index.php
  • save_file_content: 将源代码文本保存到路径。
    POST api.php?action=save_file_content
    Body parameters: path=index.php, content=your_code
  • list_files: 检索路径中的文件和文件夹。
    POST api.php?action=list_files&path=assets/css