base on Team IDE 集成MySql、Oracle、金仓、达梦、神通等数据库、SSH、FTP、Redis、Zookeeper、Kafka、Elasticsearch、Mongodb、小工具等管理工具 # Team · IDE Team IDE 集成MySql、Oracle、金仓、达梦、神通等数据库、SSH、FTP、Redis、Zookeeper、Kafka、Elasticsearch、Mongodb、小工具等管理工具 [![Code](https://img.shields.io/badge/Code-TeamIDE-red)](https://github.com/team-ide/teamide) [![License](https://img.shields.io/badge/License-Apache--2.0%20License-blue)](https://github.com/team-ide/teamide/blob/main/LICENSE) [![GitHub Release Latest](https://img.shields.io/badge/Release-V2.3.4-brightgreen)](https://github.com/team-ide/teamide/releases) ## Team · IDE 功能模块 * 终端 * 配置SSH连接,连接远程服务器 **完成** * SSH支持rz、sz命令,rz支持批量上传 **完成** * 支持本地终端 **完成** * 支持节点终端 **完成** * Zookeeper * 支持单机、集群,增删改查等操作,批量删除等 **完成** * Kafka * 对Kafka主题增删改查等操作 **完成** * 选择主题,推送、消费、删除数据等 **完成** * Redis * Redis Key搜索、模糊查询、删除、新增等 **完成** * 字符串、哈希、列表、集合值编辑 **完成** * Elasticsearch * 索引增删改查等操作 **完成** * 选择索引,增删改查数据等 **完成** * 添加索引,设置字段,索引迁移等 **完成** * Database * 数据库库|用户|模式列表、表数据加载 **完成** * 数据库库表数据增删改查、批量新增、修改、删除等操作 **完成** * 表格选择数据导出SQL(新增、修改、删除数据SQL)等操作 **完成** * 自定义SQL执行面板,结果查看器 **完成** * 新建库,在线设计表,查看建表、更新表SQL语句 **完成** * 支持数据库,MySql、Oracle、达梦、金仓、神通、Sqlite、ODBC等数据库 **完成** * 节点 * 可以配置多服务器之间网络透传,内外网相互透传等 **完成** * 小工具 * JSON、Yaml转换 **完成** * 时间长转换 **完成** * Base64、MD5等 **完成** * 二维码生成 **完成** * Thrift * 添加thrift模块,配置thrift文件目录 **完成** * 展示所有thrift服务、方法等 **完成** * 双击方法运行测试 **完成** * 性能测试,测试报告,图表展示TPS、AVG、Min、Max、T90、T99等 **完成** * SSH隧道 * Mysql、Redis、Zookeeper支持SSH隧道连接,选择SSH后,填写127.0.0.1则连接到SSH本地相应资源 **完成** * Mongodb * 库管理 **完成** * 集合管理 **完成** * 集合索引编辑 **完成** * 集合数据查询、新增、修改、删除 **完成** ## 语言 服务端:go开发 前端:vue开发 客户端:electron ### 注意 * Team IDE 支持单机运行以及服务器运行 * 单机运行 * 下载 客户端安装包安装运行即可,目前不支持arm架构的安装包 * 无需配置文件,数据和日志存储在`用户目录/temeide`下 * 服务器运行 * 下载 `teamide-server-amd64-xxx.zip`、`teamide-server-arm64-xxx.zip` 或 docker 运行 * 适合团队使用,部署到服务器通过浏览器访问 * 需要配置文件,数据和日志存储在`程序同级目录`下 * 服务端运行方式会生成 `admin` 用户到 `程序目录/data/init-user-info.json` 中 * **终端连接`debian`遇到不识别登录SSH的用户、目录,不记录历史命令情况,可以修改下 `PS1` 环境变量** * 将环境变量设置到 `~/.bashrc` 文件 * `export PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$"` #### Docker 运行 ```shell # 最新版本 至 https://hub.docker.com/repository/docker/teamide/teamide-server/tags?page=1&ordering=last_updated 查看 # amd64 环境 docker run -itd --name teamide-21080 -p 21080:21080 -v /data/teamide/data:/opt/teamide/data teamide/teamide-server:latest # arm64 环境 docker run -itd --name teamide-21080 -p 21080:21080 -v /data/teamide/data:/opt/teamide/data teamide/teamide-server-arm64:latest # 可以修改容器中 `conf/config.yaml` 配置 https 访问,这样浏览器可以使用复制粘贴功能 ``` #### 服务端 运行 ```shell # 最新版本 至 https://github.com/team-ide/teamide/releases 查看 mkdir /opt cd /opt wget https://github.com/team-ide/teamide/releases/download/v2.1.0/teamide-server-2.1.0.zip # 解压 unzip teamide-server-2.1.0.zip cd teamide-server # 修改端口 vi conf/config.yaml # 授权可执行 chmod +x server.sh # 启动 ./server.sh ``` ### 源码调试运行 ```shell conf/ # 配置文件 internal/ # 服务源码 pkg/ # 工具等 ``` **前端调试运行** ```shell # 前端打包 git clone https://github.com/team-ide/teamide-html # 进入html目录 cd teamide-html # 安装依赖 npm install # 运行 npm run serve ``` **服务端调试运行** ```shell # 安装依赖 go mod tidy # 运行 # --isDev dev模式,自动打开到 前端调试页面,日志输出控制台 # 单机版调试运行,需要谷歌浏览器 go run . --isDev ``` ### 打包 **前端打包** ```shell # 前端打包 git clone https://github.com/team-ide/teamide-html # 进入html目录 cd teamide-html # 安装依赖 npm install # 打包 npm run build ``` **静态资源打包为Go文件** ```shell # 安装依赖 go mod tidy # 前端文件发布到服务中 # 将自动将前端文件打包成到internal/static/html.go文件中 go test -v -timeout 3600s -run ^TestStatic$ teamide/internal/static ``` **单机版可执行文件打包,单机版运行需要谷歌浏览器** ```shell # 安装依赖 go mod tidy # 打包单机运行,需要本地安装谷歌浏览器,用于单个人员使用 # 不需要conf目录 go build . go build -ldflags "-s -X teamide/pkg/base.version=2.0.0" -o server.exe . ``` **作为服务部署打包** ```shell # 安装依赖 go mod tidy # 作为服务端部署,通过浏览器打开,可供团队使用 # 需要conf目录 go build -ldflags "-s -X main.buildFlags=--isServer" . ``` ## Toolbox 模块 工具箱,用于连接Redis、Zookeeper、Database、SSH、SFTP、Kafka、Elasticsearch等 ### Toolbox 功能 ![avatar](doc/toolbox-type.png) #### Toolbox Redis(完成) 连接Redis,支持单机、集群,增删改查等操作,批量删除等 ![avatar](doc/toolbox-redis.png) ![avatar](doc/toolbox-redis-set.png) ![avatar](doc/toolbox-redis-list.png) ![avatar](doc/toolbox-redis-hash.png) ![avatar](doc/toolbox-redis-import.png) #### Toolbox Zookeeper(完成) 连接Zookeeper,支持单机、集群,增删改查等操作,批量删除等 ![avatar](doc/toolbox-zookeeper.png) #### Toolbox Kafka(完成) 连接Kafka,增删改查主题,推送主题消息,自定义消费主题消息等 ![avatar](doc/toolbox-kafka.png) ![avatar](doc/toolbox-kafka-data.png) #### Toolbox SSH、SFTP(完成) 配置Linux服务器SSH连接,在线连接服务执行命令 ![avatar](doc/toolbox-ssh.png) ![avatar](doc/toolbox-ssh-upload.png) ![avatar](doc/toolbox-ssh-download.png) SSH模块可以点击FTP,进行本地和远程文件管理 FTP:上传、下载、移动、本地远程相互移动、重命名、删除、批量上传和下载等功能 ![avatar](doc/toolbox-ftp.png) ![avatar](doc/toolbox-ftp-edit-file.png) #### Toolbox Database(完成) 连接Database,在线编辑库表,编辑库表记录,查看表结构等 ![avatar](doc/toolbox-database.png) ![avatar](doc/toolbox-database-data.png) ![avatar](doc/toolbox-database-table.png) ![avatar](doc/toolbox-database-sql.png) ![avatar](doc/toolbox-database-ddl.png) ![avatar](doc/toolbox-database-export-data-sql.png) ![avatar](doc/toolbox-database-export-1.png) ![avatar](doc/toolbox-database-export-2.png) ![avatar](doc/toolbox-database-import-1.png) #### Toolbox Elasticsearch(完成) 连接Elasticsearch,编辑索引,增删改查索引数据等 ![avatar](doc/toolbox-elasticsearch.png) ![avatar](doc/toolbox-elasticsearch-data.png) #### Toolbox 其它 ![avatar](doc/toolbox-other-format.png) ## Node 模块 节点服务,用于不同网段通信,借助节点模块的网络代理实现内外网透传等 ![avatar](doc/toolbox-node.png) ![avatar](doc/toolbox-node-net-proxy.png) ", Assign "at most 3 tags" to the expected json: {"id":"5242","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"