From f5c0a08571f1c92cf7e7f2b16e7ea0b7039030d8 Mon Sep 17 00:00:00 2001 From: Super Manito <68613938+SuperManito@users.noreply.github.com> Date: Sun, 20 Oct 2024 23:00:57 +0800 Subject: [PATCH] add arcadia app --- apps/arcadia/1.0.0-beta.5/data.yml | 10 +++++++++ apps/arcadia/1.0.0-beta.5/docker-compose.yml | 21 +++++++++++++++++++ apps/arcadia/README.md | 15 +++++++++++++ apps/arcadia/data.yml | 19 +++++++++++++++++ apps/arcadia/logo.png | Bin 0 -> 12634 bytes 5 files changed, 65 insertions(+) create mode 100644 apps/arcadia/1.0.0-beta.5/data.yml create mode 100644 apps/arcadia/1.0.0-beta.5/docker-compose.yml create mode 100644 apps/arcadia/README.md create mode 100644 apps/arcadia/data.yml create mode 100644 apps/arcadia/logo.png diff --git a/apps/arcadia/1.0.0-beta.5/data.yml b/apps/arcadia/1.0.0-beta.5/data.yml new file mode 100644 index 00000000..9caeed33 --- /dev/null +++ b/apps/arcadia/1.0.0-beta.5/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 5678 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number \ No newline at end of file diff --git a/apps/arcadia/1.0.0-beta.5/docker-compose.yml b/apps/arcadia/1.0.0-beta.5/docker-compose.yml new file mode 100644 index 00000000..4fed2652 --- /dev/null +++ b/apps/arcadia/1.0.0-beta.5/docker-compose.yml @@ -0,0 +1,21 @@ +services: + arcadia: + image: supermanito/arcadia:beta + container_name: ${CONTAINER_NAME} + hostname: arcadia + networks: + - 1panel-network + volumes: + - ./data/config:/arcadia/config + - ./data/log:/arcadia/log + - ./data/scripts:/arcadia/scripts + - ./data/repo:/arcadia/repo + - ./data/raw:/arcadia/raw + ports: + - "${PANEL_APP_PORT_HTTP}:5678" + restart: always + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/arcadia/README.md b/apps/arcadia/README.md new file mode 100644 index 00000000..b9caa299 --- /dev/null +++ b/apps/arcadia/README.md @@ -0,0 +1,15 @@ +# Arcadia + +Arcadia 一站式代码运维平台主要面向于脚本语言编程,适用于中小型团队与个人的开发与运维环境。 +除了代码运维外 Arcadia 还是一个强大的定时任务运维平台,并且有着完善的文件系统和底层CLI命令设计。 + +## 主要功能: + +- **专业代码编辑器**:采用 VS Code 核心组件之一的摩纳哥编辑器,并且经过了高度定制,提供众多语言解释器支持,代码高亮效果与桌面客户端一致,还支持标签页多开。 +- **定时任务调度**:面板支持卡片和数据表格两种布局,增删改查一应俱全,支持秒级任务,可直接查看任务关联的历史运行日志和源码,还支持调试、过滤、排序等功能。 +- **环境变量可视化**:通过数据表格页面管理底层环境变量,增删改查一应俱全,支持变量聚合、编排,支持排序。 +- **运行日志展示与查询**:支持内容高亮、实时滚动更新、滚动至底/顶、调整字体大小、名称过滤、日期范围过滤等功能,还支持反转、轮询等高级功能。 +- **文件可视化管理**:仿桌面系统的文件管理页面,支持栅格与列表两种预览模式,支持创建、删除、重命名、上传、下载、删除、预览、编辑等操作。 +- **代码内容对比**:集成摩纳哥专业差异编辑器,可任意选择对比文件。 +- **代码在线调试**:专业的调试工具,实施反馈运行日志,支持配置调试环境。 +- **内置终端命令行**:项目集成了基于 Xterm.js 的 WEB 终端工具,实时、流畅且支持标签页多开,日常使用无需手动连接至服务器。 diff --git a/apps/arcadia/data.yml b/apps/arcadia/data.yml new file mode 100644 index 00000000..149c0647 --- /dev/null +++ b/apps/arcadia/data.yml @@ -0,0 +1,19 @@ +name: Arcadia +tags: + - 实用工具 +title: 一站式代码运维平台 +description: 一站式代码运维平台 +additionalProperties: + key: arcadia + name: Arcadia + tags: + - Tool + shortDescZh: 一站式代码运维平台 + shortDescEn: One-stop code operation and maintenance platform + type: tool + crossVersionUpdate: false + limit: 0 + recommend: 100 + website: https://arcadia.cool + github: https://github.com/SuperManito/Arcadia + document: https://arcadia.cool/docs diff --git a/apps/arcadia/logo.png b/apps/arcadia/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fb0c8b9efbcc229320a73687138c1c12988d6644 GIT binary patch literal 12634 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