粗略梳理了目录结构布局
@@ -1,416 +1,345 @@
|
||||
import { defineConfig } from 'vitepress'
|
||||
import type { DefaultTheme } from 'vitepress'
|
||||
import { set_sidebar } from "../utils/auto_sidebar.js";
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
title: "梦宁软件",
|
||||
head: [
|
||||
['link', { rel: 'stylesheet', href: '/theme/style.css' }], // 引入CSS
|
||||
['link', { rel: 'icon', href: '/mengninglogo.png' }] // 设置favicon
|
||||
],
|
||||
description: "梦宁软件",
|
||||
themeConfig: {
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
outlineTitle: '目录',
|
||||
outline: [2, 6],
|
||||
logo: {
|
||||
src: '/mnsoftware.png',
|
||||
},
|
||||
nav: [
|
||||
// { text: '文档', link: '/document/index' },
|
||||
//
|
||||
{ text: 'DevStar Studio', link: '/devstar' },
|
||||
{ text: '编译加速', link: '/compiling' },
|
||||
{ text: '虚拟仿真', link: '/simulator' },
|
||||
{ text: 'Enterprise', link: '/enterprise' },
|
||||
],
|
||||
sidebar: {
|
||||
'/devstar/': sidebarDevStar(), // 直接返回 SidebarItem[]
|
||||
'/compiling/': sidebarCompiling(),
|
||||
'/simulator/': sidebarSimulator(),
|
||||
'/enterprise/': sidebarEnterprise()
|
||||
},
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: ' https://github.com/mengning/DevStar' }
|
||||
],
|
||||
// footer: [
|
||||
// copyright: 'Copyright © 2025-present devstar contributors',
|
||||
// [Copyright © 2025-present DevStar Contributors](https://github.com/mengning/DevStar)
|
||||
// { copyright: 'Copyright © 2025-present devstar contributors', link: 'https://github.com/mengning/DevStar' }
|
||||
// ] as any,
|
||||
// footer: {
|
||||
// message: '<a href="/copyright/index">苏ICP备2024068144号-1 ©Mengning Software. 2025- All rights reserved.</a>',
|
||||
// copyright: ''
|
||||
// },
|
||||
// 设置搜索框的样式
|
||||
search: {
|
||||
provider: "local",
|
||||
options: {
|
||||
translations: {
|
||||
button: {
|
||||
buttonText: "搜索文档",
|
||||
buttonAriaLabel: "搜索文档",
|
||||
},
|
||||
modal: {
|
||||
noResultsText: "无法找到相关结果",
|
||||
resetButtonTitle: "清除查询条件",
|
||||
footer: {
|
||||
selectText: "选择",
|
||||
navigateText: "切换",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
function sidebarDevStar(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: 'DevStar是什么',
|
||||
link: '/devstar/index',
|
||||
items: []
|
||||
} as any,
|
||||
{
|
||||
text: '安装',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '对比Gitea与其它Git托管工具', link: 'https://docs.gitea.com/zh-cn/installation/comparison' },
|
||||
{ text: '数据库准备', link: 'https://docs.gitea.com/zh-cn/installation/database-prep' },
|
||||
// { text: '数据库准备', link: '/document/installation/from-source' },
|
||||
{ text: '使用shell脚本安装', link: '/devstar/installation/install-via-shell-script' },
|
||||
{ text: '使用二进制文件安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-binary' },
|
||||
{ text: '包管理器安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-package' },
|
||||
{ text: '使用源代码安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-source' },
|
||||
{ text: '在Linux中以service方式运行', link: 'https://docs.gitea.com/zh-cn/installation/linux-service' },//
|
||||
{ text: '注册为Windows服务', link: 'https://docs.gitea.com/zh-cn/installation/windows-service' },
|
||||
{ text: '使用Docker安装(rootless)', link: 'https://docs.gitea.com/zh-cn/installation/install-with-docker-rootless' },
|
||||
{ text: '使用Docker安装', link: 'https://docs.gitea.com/zh-cn/installation/install-with-docker' },
|
||||
{ text: '在Kubernetes中安装Gitea', link: 'https://docs.gitea.com/zh-cn/installation/install-on-kubernetes' },
|
||||
{ text: '在云服务器上安装Gitea', link: 'https://docs.gitea.com/zh-cn/installation/install-on-cloud-provider' },
|
||||
{ text: '从旧版Gitea升级', link: 'https://docs.gitea.com/zh-cn/installation/upgrade-from-gitea' },
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '管理',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '命令行', link: 'https://docs.gitea.com/zh-cn/administration/command-line' },
|
||||
{ text: '认证', link: 'https://docs.gitea.com/zh-cn/administration/authentication' },
|
||||
{ text: '环境变量清单', link: 'https://docs.gitea.com/zh-cn/administration/environment-variables' },
|
||||
{ text: '备份与恢复', link: 'https://docs.gitea.com/zh-cn/administration/backup-and-restore' },
|
||||
{ text: 'Email设置', link: 'https://docs.gitea.com/zh-cn/administration/email-setup' },
|
||||
{ text: 'Git LFS设置', link: 'https://docs.gitea.com/zh-cn/administration/git-lfs-setup' },
|
||||
{ text: 'HTTPS配置', link: 'https://docs.gitea.com/zh-cn/administration/https-setup' },
|
||||
{ text: '设置Fail2ban', link: 'https://docs.gitea.com/zh-cn/administration/fail2ban-setup' },
|
||||
{ text: '反向代理', link: 'https://docs.gitea.com/zh-cn/administration/reverse-proxies' },
|
||||
{ text: '嵌入资源提取工具', link: 'https://docs.gitea.com/zh-cn/administration/cmd-embedded' },
|
||||
{ text: '配置说明', link: 'https://docs.gitea.com/zh-cn/administration/config-cheat-sheet' },
|
||||
{ text: '日志配置', link: 'https://docs.gitea.com/zh-cn/administration/logging-config' },
|
||||
{ text: '邮件模板', link: 'https://docs.gitea.com/zh-cn/administration/mail-templates' },
|
||||
{ text: '仓库索引器', link: 'https://docs.gitea.com/zh-cn/administration/repo-indexer' },
|
||||
{ text: 'GPG提交签名', link: 'https://docs.gitea.com/zh-cn/administration/signing' },
|
||||
{ text: '外部渲染器', link: 'https://docs.gitea.com/zh-cn/administration/external-renderers' },
|
||||
{ text: '搜索引擎索引', link: 'https://docs.gitea.com/zh-cn/administration/search-engines-indexation' },
|
||||
{ text: '自定义Gitea配置', link: 'https://docs.gitea.com/zh-cn/administration/customizing-gitea' },
|
||||
{ text: '添加法律页面', link: 'https://docs.gitea.com/zh-cn/administration/adding-legal-pages' }
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '使用',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '结合AI快速开始', link: 'devstar/usage/quick-start-with-ai' },
|
||||
{
|
||||
text: 'Actions',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: false, // 默认展开
|
||||
items: [
|
||||
{ text: 'Overview', link: 'https://docs.gitea.com/zh-cn/usage/actions/overview' },
|
||||
{ text: '快速入门', link: 'https://docs.gitea.com/zh-cn/usage/actions/quickstart' },
|
||||
{ text: '与GitHub Actions的对比', link: 'https://docs.gitea.com/zh-cn/usage/actions/comparison' },
|
||||
{ text: 'Act Runner', link: 'https://docs.gitea.com/zh-cn/usage/actions/act-runner' },
|
||||
{ text: '变量', link: 'https://docs.gitea.com/zh-cn/usage/actions/actions-variables' },
|
||||
{ text: 'Gitea Actions设计', link: 'https://docs.gitea.com/zh-cn/usage/actions/design' },
|
||||
{ text: '密钥管理', link: 'https://docs.gitea.com/zh-cn/usage/actions/secrets' },
|
||||
{ text: 'Gitea Actions常见问题解答', link: 'https://docs.gitea.com/zh-cn/usage/actions/faq' },
|
||||
{ text: 'Badge', link: 'https://docs.gitea.com/zh-cn/usage/actions/badge' }
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '软件包',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/overview' },
|
||||
{ text: 'Alpine 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/alpine' },
|
||||
{ text: 'Arch package registry', link: 'https://docs.gitea.com/zh-cn/usage/packages/arch' },
|
||||
{ text: 'Cargo 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/cargo' },
|
||||
{ text: 'Chef 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/chef' },
|
||||
{ text: '存储', link: 'https://docs.gitea.com/zh-cn/usage/packages/storage' },
|
||||
{ text: 'Composer 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/composer' },
|
||||
{ text: 'Conan 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/conan' },
|
||||
{ text: 'Conda 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/conda' },
|
||||
{ text: '容器注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/container' },
|
||||
{ text: 'CRAN 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/cran' },
|
||||
{ text: 'Go 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/go' },
|
||||
{ text: 'Helm Chart 注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/helm' },
|
||||
{ text: 'Maven 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/maven' },
|
||||
{ text: 'NPM Package Registry', link: 'https://docs.gitea.com/zh-cn/usage/packages/npm' },
|
||||
{ text: 'NuGet 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/nuget' },
|
||||
{ text: 'Pub 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/pub' },
|
||||
{ text: 'PyPI 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/pypi' },
|
||||
{ text: 'RPM 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/packages/rpm' },
|
||||
{ text: 'RubyGems 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/rubygems' },
|
||||
{ text: 'Swift 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/swift' },
|
||||
{ text: 'Vagrant 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/vagrant' },
|
||||
{ text: '通用软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/generic' },
|
||||
{ text: 'Debian 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/debian' }
|
||||
]
|
||||
},
|
||||
{ text: 'AGit', link: 'https://docs.gitea.com/zh-cn/usage/agit' },
|
||||
{ text: '个人资料 README', link: 'https://docs.gitea.com/zh-cn/usage/profile-readme' },
|
||||
{ text: 'Blame File View', link: 'https://docs.gitea.com/zh-cn/usage/blame' },
|
||||
{ text: '邮件接收', link: 'https://docs.gitea.com/zh-cn/usage/incoming-email' },
|
||||
{ text: '标签', link: 'https://docs.gitea.com/zh-cn/usage/labels' },
|
||||
{ text: '合并请求', link: 'https://docs.gitea.com/zh-cn/usage/pull-request' },
|
||||
{ text: '权限', link: 'https://docs.gitea.com/zh-cn/usage/permissions' },
|
||||
{ text: '模板仓库', link: 'https://docs.gitea.com/zh-cn/usage/template-repositories' },
|
||||
{ text: '从模板创建工单与合并请求', link: 'https://docs.gitea.com/zh-cn/usage/issue-pull-request-templates' },
|
||||
{ text: '自动链接引用', link: 'https://docs.gitea.com/zh-cn/usage/automatically-linked-references' },
|
||||
{ text: '合并消息模板', link: 'https://docs.gitea.com/zh-cn/usage/merge-message-template' },
|
||||
{ text: '推送', link: 'https://docs.gitea.com/zh-cn/usage/push' },
|
||||
{ text: 'Blocking a user', link: 'https://docs.gitea.com/zh-cn/usage/blocking-user' },
|
||||
{ text: '克隆过滤器 (部分克隆)', link: 'https://docs.gitea.com/zh-cn/usage/clone-filters' },
|
||||
{ text: 'Code Owners', link: 'https://docs.gitea.com/zh-cn/usage/code-owners' },
|
||||
{ text: 'Webhooks', link: 'https://docs.gitea.com/zh-cn/usage/webhooks' },
|
||||
{ text: 'Migration', link: 'https://docs.gitea.com/zh-cn/usage/migration' },
|
||||
{ text: '受保护的标签', link: 'https://docs.gitea.com/zh-cn/usage/protected-tags' },
|
||||
{ text: '仓库镜像', link: 'https://docs.gitea.com/zh-cn/usage/repo-mirror' },
|
||||
{ text: 'Markdown', link: 'https://docs.gitea.com/zh-cn/usage/markdown' },
|
||||
{ text: 'Multi-factor Authentication (MFA)', link: 'https://docs.gitea.com/zh-cn/usage/multi-factor-authentication' }
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '开发',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '玩转 Gitea', link: 'https://docs.gitea.com/zh-cn/development/hacking-on-gitea' },
|
||||
{ text: 'API 使用指南', link: 'https://docs.gitea.com/zh-cn/development/api-usage' },
|
||||
{ text: 'OAuth2 提供者', link: 'https://docs.gitea.com/zh-cn/development/oauth2-provider' },
|
||||
{ text: '迁移接口', link: 'https://docs.gitea.com/zh-cn/development/migrations-interfaces' },
|
||||
{ text: '集成', link: 'https://docs.gitea.com/zh-cn/development/integrations' }
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '贡献',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '后端开发指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-backend' },
|
||||
{ text: '前端开发指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-frontend' },
|
||||
{ text: '重构指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-refactoring' },
|
||||
{ text: '本地化', link: 'https://docs.gitea.com/zh-cn/contributing/localization' }
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '帮助',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '常见问题', link: 'https://docs.gitea.com/zh-cn/help/faq' },
|
||||
{ text: '支持选项', link: 'https://docs.gitea.com/zh-cn/help/support' },
|
||||
]
|
||||
} as any,
|
||||
]
|
||||
}
|
||||
|
||||
function sidebarSimulator(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: 'Gitea Enterprise 是什么',
|
||||
link: '/enterprise/index',
|
||||
items: [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '特征',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{
|
||||
text: '可继承分支保护',
|
||||
link: 'https://docs.gitea.com/enterprise/features/inheritable-branch-protection'
|
||||
},
|
||||
{
|
||||
text: '依赖关系扫描',
|
||||
link: 'https://docs.gitea.com/enterprise/features/dependency-scan'
|
||||
},
|
||||
{
|
||||
text: 'IP 允许列表',
|
||||
link: 'https://docs.gitea.com/enterprise/features/ip-allowlist'
|
||||
},
|
||||
{
|
||||
text: '企业主题',
|
||||
link: 'https://docs.gitea.com/enterprise/features/enterprise-theme'
|
||||
},
|
||||
{
|
||||
text: '强制2FA身份验证',
|
||||
link: 'https://docs.gitea.com/enterprise/features/mandatory-2fa'
|
||||
},
|
||||
{
|
||||
text: '审计日志',
|
||||
link: 'https://docs.gitea.com/enterprise/features/audit-log'
|
||||
},
|
||||
{
|
||||
text: 'SAML',
|
||||
link: 'https://docs.gitea.com/enterprise/features/saml-auth'
|
||||
},
|
||||
{
|
||||
text: '发布节奏和版本控制',
|
||||
link: 'https://docs.gitea.com/enterprise/features/release-cadence'
|
||||
}
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '安装',
|
||||
link: 'https://docs.gitea.com/enterprise/installation',
|
||||
items: []
|
||||
},
|
||||
{
|
||||
text: '常见问题',
|
||||
link: 'https://docs.gitea.com/enterprise/faq',
|
||||
items: []
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
function sidebarCompiling(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: 'Gitea Enterprise 是什么',
|
||||
link: '/enterprise/index',
|
||||
items: [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '特征',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{
|
||||
text: '可继承分支保护',
|
||||
link: 'https://docs.gitea.com/enterprise/features/inheritable-branch-protection'
|
||||
},
|
||||
{
|
||||
text: '依赖关系扫描',
|
||||
link: 'https://docs.gitea.com/enterprise/features/dependency-scan'
|
||||
},
|
||||
{
|
||||
text: 'IP 允许列表',
|
||||
link: 'https://docs.gitea.com/enterprise/features/ip-allowlist'
|
||||
},
|
||||
{
|
||||
text: '企业主题',
|
||||
link: 'https://docs.gitea.com/enterprise/features/enterprise-theme'
|
||||
},
|
||||
{
|
||||
text: '强制2FA身份验证',
|
||||
link: 'https://docs.gitea.com/enterprise/features/mandatory-2fa'
|
||||
},
|
||||
{
|
||||
text: '审计日志',
|
||||
link: 'https://docs.gitea.com/enterprise/features/audit-log'
|
||||
},
|
||||
{
|
||||
text: 'SAML',
|
||||
link: 'https://docs.gitea.com/enterprise/features/saml-auth'
|
||||
},
|
||||
{
|
||||
text: '发布节奏和版本控制',
|
||||
link: 'https://docs.gitea.com/enterprise/features/release-cadence'
|
||||
}
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '安装',
|
||||
link: 'https://docs.gitea.com/enterprise/installation',
|
||||
items: []
|
||||
},
|
||||
{
|
||||
text: '常见问题',
|
||||
link: 'https://docs.gitea.com/enterprise/faq',
|
||||
items: []
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
function sidebarEnterprise(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: 'Gitea Enterprise 是什么',
|
||||
link: '/enterprise/index',
|
||||
items: [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '特征',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{
|
||||
text: '可继承分支保护',
|
||||
link: 'https://docs.gitea.com/enterprise/features/inheritable-branch-protection'
|
||||
},
|
||||
{
|
||||
text: '依赖关系扫描',
|
||||
link: 'https://docs.gitea.com/enterprise/features/dependency-scan'
|
||||
},
|
||||
{
|
||||
text: 'IP 允许列表',
|
||||
link: 'https://docs.gitea.com/enterprise/features/ip-allowlist'
|
||||
},
|
||||
{
|
||||
text: '企业主题',
|
||||
link: 'https://docs.gitea.com/enterprise/features/enterprise-theme'
|
||||
},
|
||||
{
|
||||
text: '强制2FA身份验证',
|
||||
link: 'https://docs.gitea.com/enterprise/features/mandatory-2fa'
|
||||
},
|
||||
{
|
||||
text: '审计日志',
|
||||
link: 'https://docs.gitea.com/enterprise/features/audit-log'
|
||||
},
|
||||
{
|
||||
text: 'SAML',
|
||||
link: 'https://docs.gitea.com/enterprise/features/saml-auth'
|
||||
},
|
||||
{
|
||||
text: '发布节奏和版本控制',
|
||||
link: 'https://docs.gitea.com/enterprise/features/release-cadence'
|
||||
}
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '安装',
|
||||
link: 'https://docs.gitea.com/enterprise/installation',
|
||||
items: []
|
||||
},
|
||||
{
|
||||
text: '常见问题',
|
||||
link: 'https://docs.gitea.com/enterprise/faq',
|
||||
items: []
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
import { defineConfig } from 'vitepress'
|
||||
import type { DefaultTheme } from 'vitepress'
|
||||
import { set_sidebar } from "../utils/auto_sidebar.js";
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
title: "梦宁软件",
|
||||
head: [
|
||||
['link', { rel: 'stylesheet', href: '/theme/style.css' }], // 引入CSS
|
||||
['link', { rel: 'icon', href: '/mengninglogo.png' }] // 设置favicon
|
||||
],
|
||||
description: "梦宁软件",
|
||||
themeConfig: {
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
outlineTitle: '目录',
|
||||
outline: [2, 6],
|
||||
logo: {
|
||||
src: '/mnsoftware.png',
|
||||
},
|
||||
nav: [
|
||||
// { text: '文档', link: '/document/index' },
|
||||
//
|
||||
{ text: 'DevStar', link: '/devstar' },
|
||||
{ text: '编译加速', link: '/compile' },
|
||||
{ text: '虚拟仿真', link: '/simulator' },
|
||||
{ text: 'Enterprise', link: '/enterprise' },
|
||||
],
|
||||
sidebar: {
|
||||
'/devstar/': sidebarDevStar(), // 直接返回 SidebarItem[]
|
||||
'/compile/': sidebarCompiling(),
|
||||
'/simulator/': sidebarSimulator(),
|
||||
'/enterprise/': sidebarEnterprise()
|
||||
},
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: ' https://github.com/mengning/DevStar' }
|
||||
],
|
||||
// footer: [
|
||||
// copyright: 'Copyright © 2025-present devstar contributors',
|
||||
// [Copyright © 2025-present DevStar Contributors](https://github.com/mengning/DevStar)
|
||||
// { copyright: 'Copyright © 2025-present devstar contributors', link: 'https://github.com/mengning/DevStar' }
|
||||
// ] as any,
|
||||
// footer: {
|
||||
// message: '<a href="/copyright/index">苏ICP备2024068144号-1 ©Mengning Software. 2025- All rights reserved.</a>',
|
||||
// copyright: ''
|
||||
// },
|
||||
// 设置搜索框的样式
|
||||
search: {
|
||||
provider: "local",
|
||||
options: {
|
||||
translations: {
|
||||
button: {
|
||||
buttonText: "搜索文档",
|
||||
buttonAriaLabel: "搜索文档",
|
||||
},
|
||||
modal: {
|
||||
noResultsText: "无法找到相关结果",
|
||||
resetButtonTitle: "清除查询条件",
|
||||
footer: {
|
||||
selectText: "选择",
|
||||
navigateText: "切换",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
function sidebarDevStar(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: 'DevStar Studio',
|
||||
link: '/devstar/index',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: false, // 默认展开
|
||||
items: [
|
||||
{ text: 'AI+ DevOps', link: '/devstar/ai-devops' },
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '安装',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '对比Gitea与其它Git托管工具', link: 'https://docs.gitea.com/zh-cn/installation/comparison' },
|
||||
{ text: '数据库准备', link: 'https://docs.gitea.com/zh-cn/installation/database-prep' },
|
||||
// { text: '数据库准备', link: '/document/installation/from-source' },
|
||||
{ text: '使用shell脚本安装', link: '/devstar/installation/install-via-shell-script' },
|
||||
{ text: '使用二进制文件安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-binary' },
|
||||
{ text: '包管理器安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-package' },
|
||||
{ text: '使用源代码安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-source' },
|
||||
{ text: '在Linux中以service方式运行', link: 'https://docs.gitea.com/zh-cn/installation/linux-service' },//
|
||||
{ text: '注册为Windows服务', link: 'https://docs.gitea.com/zh-cn/installation/windows-service' },
|
||||
{ text: '使用Docker安装(rootless)', link: 'https://docs.gitea.com/zh-cn/installation/install-with-docker-rootless' },
|
||||
{ text: '使用Docker安装', link: 'https://docs.gitea.com/zh-cn/installation/install-with-docker' },
|
||||
{ text: '在Kubernetes中安装Gitea', link: 'https://docs.gitea.com/zh-cn/installation/install-on-kubernetes' },
|
||||
{ text: '在云服务器上安装Gitea', link: 'https://docs.gitea.com/zh-cn/installation/install-on-cloud-provider' },
|
||||
{ text: '从旧版Gitea升级', link: 'https://docs.gitea.com/zh-cn/installation/upgrade-from-gitea' },
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '管理',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '命令行', link: 'https://docs.gitea.com/zh-cn/administration/command-line' },
|
||||
{ text: '认证', link: 'https://docs.gitea.com/zh-cn/administration/authentication' },
|
||||
{ text: '环境变量清单', link: 'https://docs.gitea.com/zh-cn/administration/environment-variables' },
|
||||
{ text: '备份与恢复', link: 'https://docs.gitea.com/zh-cn/administration/backup-and-restore' },
|
||||
{ text: 'Email设置', link: 'https://docs.gitea.com/zh-cn/administration/email-setup' },
|
||||
{ text: 'Git LFS设置', link: 'https://docs.gitea.com/zh-cn/administration/git-lfs-setup' },
|
||||
{ text: 'HTTPS配置', link: 'https://docs.gitea.com/zh-cn/administration/https-setup' },
|
||||
{ text: '设置Fail2ban', link: 'https://docs.gitea.com/zh-cn/administration/fail2ban-setup' },
|
||||
{ text: '反向代理', link: 'https://docs.gitea.com/zh-cn/administration/reverse-proxies' },
|
||||
{ text: '嵌入资源提取工具', link: 'https://docs.gitea.com/zh-cn/administration/cmd-embedded' },
|
||||
{ text: '配置说明', link: 'https://docs.gitea.com/zh-cn/administration/config-cheat-sheet' },
|
||||
{ text: '日志配置', link: 'https://docs.gitea.com/zh-cn/administration/logging-config' },
|
||||
{ text: '邮件模板', link: 'https://docs.gitea.com/zh-cn/administration/mail-templates' },
|
||||
{ text: '仓库索引器', link: 'https://docs.gitea.com/zh-cn/administration/repo-indexer' },
|
||||
{ text: 'GPG提交签名', link: 'https://docs.gitea.com/zh-cn/administration/signing' },
|
||||
{ text: '外部渲染器', link: 'https://docs.gitea.com/zh-cn/administration/external-renderers' },
|
||||
{ text: '搜索引擎索引', link: 'https://docs.gitea.com/zh-cn/administration/search-engines-indexation' },
|
||||
{ text: '自定义Gitea配置', link: 'https://docs.gitea.com/zh-cn/administration/customizing-gitea' },
|
||||
{ text: '添加法律页面', link: 'https://docs.gitea.com/zh-cn/administration/adding-legal-pages' }
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '使用',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '结合AI快速开始', link: 'devstar/usage/quick-start-with-ai' },
|
||||
{
|
||||
text: 'Actions',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: false, // 默认展开
|
||||
items: [
|
||||
{ text: 'Overview', link: 'https://docs.gitea.com/zh-cn/usage/actions/overview' },
|
||||
{ text: '快速入门', link: 'https://docs.gitea.com/zh-cn/usage/actions/quickstart' },
|
||||
{ text: '与GitHub Actions的对比', link: 'https://docs.gitea.com/zh-cn/usage/actions/comparison' },
|
||||
{ text: 'Act Runner', link: 'https://docs.gitea.com/zh-cn/usage/actions/act-runner' },
|
||||
{ text: '变量', link: 'https://docs.gitea.com/zh-cn/usage/actions/actions-variables' },
|
||||
{ text: 'Gitea Actions设计', link: 'https://docs.gitea.com/zh-cn/usage/actions/design' },
|
||||
{ text: '密钥管理', link: 'https://docs.gitea.com/zh-cn/usage/actions/secrets' },
|
||||
{ text: 'Gitea Actions常见问题解答', link: 'https://docs.gitea.com/zh-cn/usage/actions/faq' },
|
||||
{ text: 'Badge', link: 'https://docs.gitea.com/zh-cn/usage/actions/badge' }
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '软件包',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/overview' },
|
||||
{ text: 'Alpine 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/alpine' },
|
||||
{ text: 'Arch package registry', link: 'https://docs.gitea.com/zh-cn/usage/packages/arch' },
|
||||
{ text: 'Cargo 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/cargo' },
|
||||
{ text: 'Chef 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/chef' },
|
||||
{ text: '存储', link: 'https://docs.gitea.com/zh-cn/usage/packages/storage' },
|
||||
{ text: 'Composer 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/composer' },
|
||||
{ text: 'Conan 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/conan' },
|
||||
{ text: 'Conda 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/conda' },
|
||||
{ text: '容器注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/container' },
|
||||
{ text: 'CRAN 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/cran' },
|
||||
{ text: 'Go 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/go' },
|
||||
{ text: 'Helm Chart 注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/helm' },
|
||||
{ text: 'Maven 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/maven' },
|
||||
{ text: 'NPM Package Registry', link: 'https://docs.gitea.com/zh-cn/usage/packages/npm' },
|
||||
{ text: 'NuGet 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/nuget' },
|
||||
{ text: 'Pub 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/pub' },
|
||||
{ text: 'PyPI 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/pypi' },
|
||||
{ text: 'RPM 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/packages/rpm' },
|
||||
{ text: 'RubyGems 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/rubygems' },
|
||||
{ text: 'Swift 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/swift' },
|
||||
{ text: 'Vagrant 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/vagrant' },
|
||||
{ text: '通用软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/generic' },
|
||||
{ text: 'Debian 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/debian' }
|
||||
]
|
||||
},
|
||||
{ text: 'AGit', link: 'https://docs.gitea.com/zh-cn/usage/agit' },
|
||||
{ text: '个人资料 README', link: 'https://docs.gitea.com/zh-cn/usage/profile-readme' },
|
||||
{ text: 'Blame File View', link: 'https://docs.gitea.com/zh-cn/usage/blame' },
|
||||
{ text: '邮件接收', link: 'https://docs.gitea.com/zh-cn/usage/incoming-email' },
|
||||
{ text: '标签', link: 'https://docs.gitea.com/zh-cn/usage/labels' },
|
||||
{ text: '合并请求', link: 'https://docs.gitea.com/zh-cn/usage/pull-request' },
|
||||
{ text: '权限', link: 'https://docs.gitea.com/zh-cn/usage/permissions' },
|
||||
{ text: '模板仓库', link: 'https://docs.gitea.com/zh-cn/usage/template-repositories' },
|
||||
{ text: '从模板创建工单与合并请求', link: 'https://docs.gitea.com/zh-cn/usage/issue-pull-request-templates' },
|
||||
{ text: '自动链接引用', link: 'https://docs.gitea.com/zh-cn/usage/automatically-linked-references' },
|
||||
{ text: '合并消息模板', link: 'https://docs.gitea.com/zh-cn/usage/merge-message-template' },
|
||||
{ text: '推送', link: 'https://docs.gitea.com/zh-cn/usage/push' },
|
||||
{ text: 'Blocking a user', link: 'https://docs.gitea.com/zh-cn/usage/blocking-user' },
|
||||
{ text: '克隆过滤器 (部分克隆)', link: 'https://docs.gitea.com/zh-cn/usage/clone-filters' },
|
||||
{ text: 'Code Owners', link: 'https://docs.gitea.com/zh-cn/usage/code-owners' },
|
||||
{ text: 'Webhooks', link: 'https://docs.gitea.com/zh-cn/usage/webhooks' },
|
||||
{ text: 'Migration', link: 'https://docs.gitea.com/zh-cn/usage/migration' },
|
||||
{ text: '受保护的标签', link: 'https://docs.gitea.com/zh-cn/usage/protected-tags' },
|
||||
{ text: '仓库镜像', link: 'https://docs.gitea.com/zh-cn/usage/repo-mirror' },
|
||||
{ text: 'Markdown', link: 'https://docs.gitea.com/zh-cn/usage/markdown' },
|
||||
{ text: 'Multi-factor Authentication (MFA)', link: 'https://docs.gitea.com/zh-cn/usage/multi-factor-authentication' }
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '开发',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '玩转 Gitea', link: 'https://docs.gitea.com/zh-cn/development/hacking-on-gitea' },
|
||||
{ text: 'API 使用指南', link: 'https://docs.gitea.com/zh-cn/development/api-usage' },
|
||||
{ text: 'OAuth2 提供者', link: 'https://docs.gitea.com/zh-cn/development/oauth2-provider' },
|
||||
{ text: '迁移接口', link: 'https://docs.gitea.com/zh-cn/development/migrations-interfaces' },
|
||||
{ text: '集成', link: 'https://docs.gitea.com/zh-cn/development/integrations' }
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '贡献',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '后端开发指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-backend' },
|
||||
{ text: '前端开发指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-frontend' },
|
||||
{ text: '重构指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-refactoring' },
|
||||
{ text: '本地化', link: 'https://docs.gitea.com/zh-cn/contributing/localization' }
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '帮助',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: true, // 默认展开
|
||||
items: [
|
||||
{ text: '常见问题', link: 'https://docs.gitea.com/zh-cn/help/faq' },
|
||||
{ text: '支持选项', link: 'https://docs.gitea.com/zh-cn/help/support' },
|
||||
]
|
||||
} as any,
|
||||
]
|
||||
}
|
||||
|
||||
function sidebarSimulator(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: '虚拟仿真技术',
|
||||
link: '/simulator/index',
|
||||
items: [
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '虚拟ECU',
|
||||
link: '/simulator/vECU',
|
||||
items: [
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: '整车系统级软硬件联合仿真',
|
||||
link: '/simulator/vehicle-simulator',
|
||||
items: []
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
function sidebarCompiling(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: '编译加速',
|
||||
link: '/compile/index',
|
||||
items: [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '分布式编译系统',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: false, // 默认展开
|
||||
items: [
|
||||
{
|
||||
text: '为什么需要分布式编译?',
|
||||
link: '/compile/why-distributed-compiling'
|
||||
},
|
||||
{
|
||||
text: 'CloudBuild',
|
||||
link: '/compile/cloudbuild'
|
||||
},
|
||||
{
|
||||
text: 'ShareBuild',
|
||||
link: '/compile/sharebuild'
|
||||
},
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: 'AI Compiler',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: false, // 默认展开
|
||||
items: [
|
||||
{
|
||||
text: 'AI Compiler简介',
|
||||
link: '/compile/why-distributed-compiling'
|
||||
},
|
||||
{
|
||||
text: 'CloudBuild',
|
||||
link: '/compile/cloudbuild'
|
||||
},
|
||||
{
|
||||
text: 'ShareBuild',
|
||||
link: '/compile/sharebuild'
|
||||
},
|
||||
]
|
||||
} as any,
|
||||
{
|
||||
text: 'PGO/LTO',
|
||||
collapsible: true, // 使整个组可折叠
|
||||
collapsed: false, // 默认展开
|
||||
items: [
|
||||
{
|
||||
text: 'PGO/LTO简介',
|
||||
link: '/compile/why-distributed-compiling'
|
||||
},
|
||||
{
|
||||
text: 'CloudBuild',
|
||||
link: '/compile/cloudbuild'
|
||||
},
|
||||
{
|
||||
text: 'ShareBuild',
|
||||
link: '/compile/sharebuild'
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
function sidebarEnterprise(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: 'DevStar Enterprise',
|
||||
link: '/enterprise/index',
|
||||
items: [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '常见问题FAQ',
|
||||
link: '/enterprise/faq',
|
||||
items: []
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
79
docs/compile/cloudbuild.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# 分布式编译系统CloudBuild
|
||||

|
||||
## 为什么需要分布式编译?
|
||||
- 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义
|
||||
- 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间
|
||||
- 在实际开发时,同一个团队大量的编译任务时相同的。CloudBuild提供的编译缓存可以避免重复上传和重复编译,从而进一步加快编译效率
|
||||
|
||||
## 总体架构
|
||||
### 系统总体架构
|
||||

|
||||
- Ninja:客户端,该机器上需要保存有完整的待编译项目源代码。
|
||||
- Action Cache:服务端缓存,主要保存编译任务的执行结果。
|
||||
- CAS Cache:服务端缓存,主要保存客户端上传的依赖文件,编译结果文件。
|
||||
- Scheduler:任务调度器,将编译任务id分发到各个编译节点。
|
||||
- Redis:主要存储具体的编译任务供编译节点领取执行,也可存储Action Cache和 CAS Cache中的内容加速编译。
|
||||
- MySQL:主要存储编译过程中的任务统计信息。
|
||||
- Executor:各个编译节点
|
||||
|
||||
### 部署示意图
|
||||

|
||||
CloudBuild主程序分为三个部分:Client、Server、Executor。
|
||||
- Client:运行在客户端,和用户对接,用于生成待执行的远程编译任务, 同时也作为本地编译节点执行本地任务。
|
||||
- Server:运行在主服务器,主要用于连接各个编译节点,以及 将客户端上传的编译任务调度到与其连接的各个编译节点上。
|
||||
- Executor:运行在编译节点,负责接收并执行编译任务,是编译任务真正执行的地方。
|
||||
|
||||
### 系统分层结构
|
||||

|
||||
|
||||
## 运行原理与流程
|
||||
|
||||
### 分布式编译原理
|
||||

|
||||
|
||||
### CloudBuild客户端
|
||||
CloudBuild客户端基于Ninja改造,有下面这些优势
|
||||
- 兼容使用Ninja编译的项目
|
||||
- 使用远程执行的方式提高编译时并发度
|
||||
- 使用编译缓存减少需要编译的任务数量
|
||||
|
||||
### CloudBuild服务端
|
||||
- 使用远程执行的方法提高编译时并发度,实现了任务分发至远程节点同步执行
|
||||
- 使用分布式任务调度提高任务调度效率和计算节点资源利用率,避免集中式调度的任务阻塞问题
|
||||
- 使用编译缓存结合内容寻址存储技术减少网络传输量、避免重复上传与重复编译
|
||||
|
||||
### CloudBuild优势
|
||||
- 低成本:组成executor的机器不需要使用专门的高性能计算型机器,可使用多个平价的空闲机器
|
||||
- 高效:CloudBuild实现分布式编译的功能,相比单机大大提升并发度
|
||||
- 兼容Ninja:CloudBuild客户端基于Ninja改造,对于使用Ninja构建和可以转换为Ninja构建的项目不用额外修改构建清单
|
||||
|
||||
### CloudBuild执行流程
|
||||
- 客户端: 生成远程任务->生成任务依赖->发送任务与依赖
|
||||
- 服务端:检查任务缓存->检查依赖完整性->调度任务
|
||||
- 编译结点:还原文件目录->还原文件目录->返回编译结果
|
||||
|
||||
## AOSP和LLVM上的应用
|
||||
### LLVM上的应用效果
|
||||

|
||||
### AOSP上的应用效果
|
||||

|
||||
### CloudBuild硬件资源利用率
|
||||
4核CPU利用率:
|
||||

|
||||
8核CPU利用率:
|
||||

|
||||
16核CPU利用率:
|
||||

|
||||
|
||||
## CloudBuild使用方法
|
||||
### CloudBuild安装
|
||||

|
||||
CloudBuild项目地址:https://gitee.com/cloudbuild888/cloudbuild.git
|
||||
### CloudBuild分布式编译
|
||||

|
||||
LLVM项目地址:https://gitee.com/mirrors/LLVM.git
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,79 +1,82 @@
|
||||
# 分布式编译系统CloudBuild
|
||||

|
||||
## 为什么需要分布式编译技术
|
||||
- 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义
|
||||
- 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间
|
||||
- 在实际开发时,同一个团队大量的编译任务时相同的。CloudBuild提供的编译缓存可以避免重复上传和重复编译,从而进一步加快编译效率
|
||||
|
||||
## 总体架构
|
||||
### 系统总体架构
|
||||

|
||||
- Ninja:客户端,该机器上需要保存有完整的待编译项目源代码。
|
||||
- Action Cache:服务端缓存,主要保存编译任务的执行结果。
|
||||
- CAS Cache:服务端缓存,主要保存客户端上传的依赖文件,编译结果文件。
|
||||
- Scheduler:任务调度器,将编译任务id分发到各个编译节点。
|
||||
- Redis:主要存储具体的编译任务供编译节点领取执行,也可存储Action Cache和 CAS Cache中的内容加速编译。
|
||||
- MySQL:主要存储编译过程中的任务统计信息。
|
||||
- Executor:各个编译节点
|
||||
|
||||
### 部署示意图
|
||||

|
||||
CloudBuild主程序分为三个部分:Client、Server、Executor。
|
||||
- Client:运行在客户端,和用户对接,用于生成待执行的远程编译任务, 同时也作为本地编译节点执行本地任务。
|
||||
- Server:运行在主服务器,主要用于连接各个编译节点,以及 将客户端上传的编译任务调度到与其连接的各个编译节点上。
|
||||
- Executor:运行在编译节点,负责接收并执行编译任务,是编译任务真正执行的地方。
|
||||
|
||||
### 系统分层结构
|
||||

|
||||
|
||||
## 运行原理与流程
|
||||
|
||||
### 分布式编译原理
|
||||

|
||||
|
||||
### CloudBuild客户端
|
||||
CloudBuild客户端基于Ninja改造,有下面这些优势
|
||||
- 兼容使用Ninja编译的项目
|
||||
- 使用远程执行的方式提高编译时并发度
|
||||
- 使用编译缓存减少需要编译的任务数量
|
||||
|
||||
### CloudBuild服务端
|
||||
- 使用远程执行的方法提高编译时并发度,实现了任务分发至远程节点同步执行
|
||||
- 使用分布式任务调度提高任务调度效率和计算节点资源利用率,避免集中式调度的任务阻塞问题
|
||||
- 使用编译缓存结合内容寻址存储技术减少网络传输量、避免重复上传与重复编译
|
||||
|
||||
### CloudBuild优势
|
||||
- 低成本:组成executor的机器不需要使用专门的高性能计算型机器,可使用多个平价的空闲机器
|
||||
- 高效:CloudBuild实现分布式编译的功能,相比单机大大提升并发度
|
||||
- 兼容Ninja:CloudBuild客户端基于Ninja改造,对于使用Ninja构建和可以转换为Ninja构建的项目不用额外修改构建清单
|
||||
|
||||
### CloudBuild执行流程
|
||||
- 客户端: 生成远程任务->生成任务依赖->发送任务与依赖
|
||||
- 服务端:检查任务缓存->检查依赖完整性->调度任务
|
||||
- 编译结点:还原文件目录->还原文件目录->返回编译结果
|
||||
|
||||
## AOSP和LLVM上的应用
|
||||
### LLVM上的应用效果
|
||||

|
||||
### AOSP上的应用效果
|
||||

|
||||
### CloudBuild硬件资源利用率
|
||||
4核CPU利用率:
|
||||

|
||||
8核CPU利用率:
|
||||

|
||||
16核CPU利用率:
|
||||

|
||||
|
||||
## CloudBuild使用方法
|
||||
### CloudBuild安装
|
||||

|
||||
CloudBuild项目地址:https://gitee.com/cloudbuild888/compiling.git
|
||||
### CloudBuild分布式编译
|
||||

|
||||
LLVM项目地址:https://gitee.com/mirrors/LLVM.git
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 编译加速
|
||||
|
||||
|
||||
## 分布式编译技术
|
||||
|
||||

|
||||
|
||||
- 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义
|
||||
- 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间
|
||||
- 在实际开发时,同一个团队大量的编译任务时相同的。CloudBuild提供的编译缓存可以避免重复上传和重复编译,从而进一步加快编译效率
|
||||
|
||||
### CloudBuild
|
||||

|
||||
- Ninja:客户端,该机器上需要保存有完整的待编译项目源代码。
|
||||
- Action Cache:服务端缓存,主要保存编译任务的执行结果。
|
||||
- CAS Cache:服务端缓存,主要保存客户端上传的依赖文件,编译结果文件。
|
||||
- Scheduler:任务调度器,将编译任务id分发到各个编译节点。
|
||||
- Redis:主要存储具体的编译任务供编译节点领取执行,也可存储Action Cache和 CAS Cache中的内容加速编译。
|
||||
- MySQL:主要存储编译过程中的任务统计信息。
|
||||
- Executor:各个编译节点
|
||||
|
||||
### ShareBuild
|
||||

|
||||
CloudBuild主程序分为三个部分:Client、Server、Executor。
|
||||
- Client:运行在客户端,和用户对接,用于生成待执行的远程编译任务, 同时也作为本地编译节点执行本地任务。
|
||||
- Server:运行在主服务器,主要用于连接各个编译节点,以及 将客户端上传的编译任务调度到与其连接的各个编译节点上。
|
||||
- Executor:运行在编译节点,负责接收并执行编译任务,是编译任务真正执行的地方。
|
||||
|
||||
### 系统分层结构
|
||||

|
||||
|
||||
## 运行原理与流程
|
||||
|
||||
### 分布式编译原理
|
||||

|
||||
|
||||
### CloudBuild客户端
|
||||
CloudBuild客户端基于Ninja改造,有下面这些优势
|
||||
- 兼容使用Ninja编译的项目
|
||||
- 使用远程执行的方式提高编译时并发度
|
||||
- 使用编译缓存减少需要编译的任务数量
|
||||
|
||||
### CloudBuild服务端
|
||||
- 使用远程执行的方法提高编译时并发度,实现了任务分发至远程节点同步执行
|
||||
- 使用分布式任务调度提高任务调度效率和计算节点资源利用率,避免集中式调度的任务阻塞问题
|
||||
- 使用编译缓存结合内容寻址存储技术减少网络传输量、避免重复上传与重复编译
|
||||
|
||||
### CloudBuild优势
|
||||
- 低成本:组成executor的机器不需要使用专门的高性能计算型机器,可使用多个平价的空闲机器
|
||||
- 高效:CloudBuild实现分布式编译的功能,相比单机大大提升并发度
|
||||
- 兼容Ninja:CloudBuild客户端基于Ninja改造,对于使用Ninja构建和可以转换为Ninja构建的项目不用额外修改构建清单
|
||||
|
||||
### CloudBuild执行流程
|
||||
- 客户端: 生成远程任务->生成任务依赖->发送任务与依赖
|
||||
- 服务端:检查任务缓存->检查依赖完整性->调度任务
|
||||
- 编译结点:还原文件目录->还原文件目录->返回编译结果
|
||||
|
||||
## AOSP和LLVM上的应用
|
||||
### LLVM上的应用效果
|
||||

|
||||
### AOSP上的应用效果
|
||||

|
||||
### CloudBuild硬件资源利用率
|
||||
4核CPU利用率:
|
||||

|
||||
8核CPU利用率:
|
||||

|
||||
16核CPU利用率:
|
||||

|
||||
|
||||
## CloudBuild使用方法
|
||||
### CloudBuild安装
|
||||

|
||||
CloudBuild项目地址:https://gitee.com/cloudbuild888/cloudbuild.git
|
||||
### CloudBuild分布式编译
|
||||

|
||||
LLVM项目地址:https://gitee.com/mirrors/LLVM.git
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
79
docs/compile/sharebuild.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# 分布式编译系统ShareBuild
|
||||

|
||||
## 为什么需要分布式编译?
|
||||
- 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义
|
||||
- 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间
|
||||
- 在实际开发时,同一个团队大量的编译任务时相同的。CloudBuild提供的编译缓存可以避免重复上传和重复编译,从而进一步加快编译效率
|
||||
|
||||
## 总体架构
|
||||
### 系统总体架构
|
||||

|
||||
- Ninja:客户端,该机器上需要保存有完整的待编译项目源代码。
|
||||
- Action Cache:服务端缓存,主要保存编译任务的执行结果。
|
||||
- CAS Cache:服务端缓存,主要保存客户端上传的依赖文件,编译结果文件。
|
||||
- Scheduler:任务调度器,将编译任务id分发到各个编译节点。
|
||||
- Redis:主要存储具体的编译任务供编译节点领取执行,也可存储Action Cache和 CAS Cache中的内容加速编译。
|
||||
- MySQL:主要存储编译过程中的任务统计信息。
|
||||
- Executor:各个编译节点
|
||||
|
||||
### 部署示意图
|
||||

|
||||
CloudBuild主程序分为三个部分:Client、Server、Executor。
|
||||
- Client:运行在客户端,和用户对接,用于生成待执行的远程编译任务, 同时也作为本地编译节点执行本地任务。
|
||||
- Server:运行在主服务器,主要用于连接各个编译节点,以及 将客户端上传的编译任务调度到与其连接的各个编译节点上。
|
||||
- Executor:运行在编译节点,负责接收并执行编译任务,是编译任务真正执行的地方。
|
||||
|
||||
### 系统分层结构
|
||||

|
||||
|
||||
## 运行原理与流程
|
||||
|
||||
### 分布式编译原理
|
||||

|
||||
|
||||
### CloudBuild客户端
|
||||
CloudBuild客户端基于Ninja改造,有下面这些优势
|
||||
- 兼容使用Ninja编译的项目
|
||||
- 使用远程执行的方式提高编译时并发度
|
||||
- 使用编译缓存减少需要编译的任务数量
|
||||
|
||||
### CloudBuild服务端
|
||||
- 使用远程执行的方法提高编译时并发度,实现了任务分发至远程节点同步执行
|
||||
- 使用分布式任务调度提高任务调度效率和计算节点资源利用率,避免集中式调度的任务阻塞问题
|
||||
- 使用编译缓存结合内容寻址存储技术减少网络传输量、避免重复上传与重复编译
|
||||
|
||||
### CloudBuild优势
|
||||
- 低成本:组成executor的机器不需要使用专门的高性能计算型机器,可使用多个平价的空闲机器
|
||||
- 高效:CloudBuild实现分布式编译的功能,相比单机大大提升并发度
|
||||
- 兼容Ninja:CloudBuild客户端基于Ninja改造,对于使用Ninja构建和可以转换为Ninja构建的项目不用额外修改构建清单
|
||||
|
||||
### CloudBuild执行流程
|
||||
- 客户端: 生成远程任务->生成任务依赖->发送任务与依赖
|
||||
- 服务端:检查任务缓存->检查依赖完整性->调度任务
|
||||
- 编译结点:还原文件目录->还原文件目录->返回编译结果
|
||||
|
||||
## AOSP和LLVM上的应用
|
||||
### LLVM上的应用效果
|
||||

|
||||
### AOSP上的应用效果
|
||||

|
||||
### CloudBuild硬件资源利用率
|
||||
4核CPU利用率:
|
||||

|
||||
8核CPU利用率:
|
||||

|
||||
16核CPU利用率:
|
||||

|
||||
|
||||
## CloudBuild使用方法
|
||||
### CloudBuild安装
|
||||

|
||||
CloudBuild项目地址:https://gitee.com/cloudbuild888/cloudbuild.git
|
||||
### CloudBuild分布式编译
|
||||

|
||||
LLVM项目地址:https://gitee.com/mirrors/LLVM.git
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
78
docs/compile/why-distributed-compiling.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# 为什么需要分布式编译?
|
||||
|
||||
- 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义
|
||||
- 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间
|
||||
- 在实际开发时,同一个团队大量的编译任务时相同的。CloudBuild提供的编译缓存可以避免重复上传和重复编译,从而进一步加快编译效率
|
||||
|
||||
## 总体架构
|
||||
### 系统总体架构
|
||||

|
||||
- Ninja:客户端,该机器上需要保存有完整的待编译项目源代码。
|
||||
- Action Cache:服务端缓存,主要保存编译任务的执行结果。
|
||||
- CAS Cache:服务端缓存,主要保存客户端上传的依赖文件,编译结果文件。
|
||||
- Scheduler:任务调度器,将编译任务id分发到各个编译节点。
|
||||
- Redis:主要存储具体的编译任务供编译节点领取执行,也可存储Action Cache和 CAS Cache中的内容加速编译。
|
||||
- MySQL:主要存储编译过程中的任务统计信息。
|
||||
- Executor:各个编译节点
|
||||
|
||||
### 部署示意图
|
||||

|
||||
CloudBuild主程序分为三个部分:Client、Server、Executor。
|
||||
- Client:运行在客户端,和用户对接,用于生成待执行的远程编译任务, 同时也作为本地编译节点执行本地任务。
|
||||
- Server:运行在主服务器,主要用于连接各个编译节点,以及 将客户端上传的编译任务调度到与其连接的各个编译节点上。
|
||||
- Executor:运行在编译节点,负责接收并执行编译任务,是编译任务真正执行的地方。
|
||||
|
||||
### 系统分层结构
|
||||

|
||||
|
||||
## 运行原理与流程
|
||||
|
||||
### 分布式编译原理
|
||||

|
||||
|
||||
### CloudBuild客户端
|
||||
CloudBuild客户端基于Ninja改造,有下面这些优势
|
||||
- 兼容使用Ninja编译的项目
|
||||
- 使用远程执行的方式提高编译时并发度
|
||||
- 使用编译缓存减少需要编译的任务数量
|
||||
|
||||
### CloudBuild服务端
|
||||
- 使用远程执行的方法提高编译时并发度,实现了任务分发至远程节点同步执行
|
||||
- 使用分布式任务调度提高任务调度效率和计算节点资源利用率,避免集中式调度的任务阻塞问题
|
||||
- 使用编译缓存结合内容寻址存储技术减少网络传输量、避免重复上传与重复编译
|
||||
|
||||
### CloudBuild优势
|
||||
- 低成本:组成executor的机器不需要使用专门的高性能计算型机器,可使用多个平价的空闲机器
|
||||
- 高效:CloudBuild实现分布式编译的功能,相比单机大大提升并发度
|
||||
- 兼容Ninja:CloudBuild客户端基于Ninja改造,对于使用Ninja构建和可以转换为Ninja构建的项目不用额外修改构建清单
|
||||
|
||||
### CloudBuild执行流程
|
||||
- 客户端: 生成远程任务->生成任务依赖->发送任务与依赖
|
||||
- 服务端:检查任务缓存->检查依赖完整性->调度任务
|
||||
- 编译结点:还原文件目录->还原文件目录->返回编译结果
|
||||
|
||||
## AOSP和LLVM上的应用
|
||||
### LLVM上的应用效果
|
||||

|
||||
### AOSP上的应用效果
|
||||

|
||||
### CloudBuild硬件资源利用率
|
||||
4核CPU利用率:
|
||||

|
||||
8核CPU利用率:
|
||||

|
||||
16核CPU利用率:
|
||||

|
||||
|
||||
## CloudBuild使用方法
|
||||
### CloudBuild安装
|
||||

|
||||
CloudBuild项目地址:https://gitee.com/cloudbuild888/cloudbuild.git
|
||||
### CloudBuild分布式编译
|
||||

|
||||
LLVM项目地址:https://gitee.com/mirrors/LLVM.git
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
29
docs/devstar/ai-devops.md
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
outline: deep
|
||||
weight: 1
|
||||
---
|
||||
|
||||
# DevStar AI+ DevOps
|
||||
|
||||
DevStar一站式智能研发平台采用分层架构设计,核心提供DevEnv容器化开发引擎、CI/CD流水线(原生支持Actions和Runners)、Git代码仓库和制品管理功能,上层全面兼容主流IDE(如VSCode、Cursor)和开发工具链,支持C/C++/Go/Rust等语言及ARM/RISC-V/AI芯片开发。平台集成了代码大模型(如DeepSeek、Claude)、MCP服务器集群(包括Github-MCP和DevStar-MCP)、分布式编译服务(CloudBuild/BuildFarm)以及虚拟化平台(QEMU/Renode)等增强功能,底层基于Docker/Kubernetes云原生平台构建,形成从编码、测试到部署的完整研发生态,并通过项目模板生态和应用商店实现开箱即用的开发体验。
|
||||
|
||||
## 目标
|
||||
|
||||
DevStar Studio是一个通用的一站式软件研发平台,它最初的目标是服务于汽车软件、消费电子、智能制造等嵌入式软件研发场景中的开发者
|
||||
|
||||
## 功能特性
|
||||
- 原生集成兼容Github Actions的DevStar CI/CD流水线(Actions/Runners),一键安装启用,与Pull Request/Al CodeReview工具协同
|
||||
- 自主研发的DevEnv引擎支撑开箱即用的devcontainer容器化开发环境
|
||||
- 自主研发的Web端Kubernetes客户端支撑一键安装部署第三方工具/服务,如私有部署代码大模型/Agents、MCP Servers、Cloudbuild等
|
||||
- Git代码托管、镜像仓库等制品管理Releases/Packages、项目管理Projects/Issues、知识管理Wiki等
|
||||
|
||||
## 优势
|
||||
- 验证与开发同步:传统开发流程验证阶段滞后于开发,而DevStar开发流程可以实现“边开发边验证”的并行模式
|
||||
- 集成测试前置:传统开发流程集成测试集中在后期,而DevStar开发流程将集成测试拆解到开发各阶段
|
||||
- 测试条件与实际高度一致:传统开发流程测试环境与真实场景存在差异,而DevStar开发流程可以构建高保真测试环境
|
||||
- 失效迭代前置:传统开发流程失效迭代出现在后期,而DevStar开发流程将失效识别和处理提前到了开发早期
|
||||
- 兼容不容层级的虚拟化:传统开发流程只能保证单一流程的虚拟化,而而DevStar开发流程可同时兼容硬件级虚拟化、系统级虚拟化、进程级虚拟化
|
||||
|
||||
## 在线演示
|
||||
|
||||
访问[devstar.cn](https://devstar.cn)或者在VS Code插件市场搜索devstar
|
||||
@@ -1,29 +1,29 @@
|
||||
---
|
||||
outline: deep
|
||||
weight: 1
|
||||
---
|
||||
|
||||
# 关于DevStar
|
||||
|
||||
DevStar一站式智能研发平台采用分层架构设计,核心提供DevEnv容器化开发引擎、CI/CD流水线(原生支持Actions和Runners)、Git代码仓库和制品管理功能,上层全面兼容主流IDE(如VSCode、Cursor)和开发工具链,支持C/C++/Go/Rust等语言及ARM/RISC-V/AI芯片开发。平台集成了代码大模型(如DeepSeek、Claude)、MCP服务器集群(包括Github-MCP和DevStar-MCP)、分布式编译服务(CloudBuild/BuildFarm)以及虚拟化平台(QEMU/Renode)等增强功能,底层基于Docker/Kubernetes云原生平台构建,形成从编码、测试到部署的完整研发生态,并通过项目模板生态和应用商店实现开箱即用的开发体验。
|
||||
|
||||
## 目标
|
||||
|
||||
DevStar Studio是一个通用的一站式软件研发平台,它最初的目标是服务于汽车软件、消费电子、智能制造等嵌入式软件研发场景中的开发者
|
||||
|
||||
## 功能特性
|
||||
- 原生集成兼容Github Actions的DevStar CI/CD流水线(Actions/Runners),一键安装启用,与Pull Request/Al CodeReview工具协同
|
||||
- 自主研发的DevEnv引擎支撑开箱即用的devcontainer容器化开发环境
|
||||
- 自主研发的Web端Kubernetes客户端支撑一键安装部署第三方工具/服务,如私有部署代码大模型/Agents、MCP Servers、Cloudbuild等
|
||||
- Git代码托管、镜像仓库等制品管理Releases/Packages、项目管理Projects/Issues、知识管理Wiki等
|
||||
|
||||
## 优势
|
||||
- 验证与开发同步:传统开发流程验证阶段滞后于开发,而DevStar开发流程可以实现“边开发边验证”的并行模式
|
||||
- 集成测试前置:传统开发流程集成测试集中在后期,而DevStar开发流程将集成测试拆解到开发各阶段
|
||||
- 测试条件与实际高度一致:传统开发流程测试环境与真实场景存在差异,而DevStar开发流程可以构建高保真测试环境
|
||||
- 失效迭代前置:传统开发流程失效迭代出现在后期,而DevStar开发流程将失效识别和处理提前到了开发早期
|
||||
- 兼容不容层级的虚拟化:传统开发流程只能保证单一流程的虚拟化,而而DevStar开发流程可同时兼容硬件级虚拟化、系统级虚拟化、进程级虚拟化
|
||||
|
||||
## 在线演示
|
||||
|
||||
访问[devstar.cn](https://devstar.cn)或者在VS Code插件市场搜索devstar
|
||||
---
|
||||
outline: deep
|
||||
weight: 1
|
||||
---
|
||||
|
||||
# DevStar Studio
|
||||
|
||||
DevStar一站式智能研发平台采用分层架构设计,核心提供DevEnv容器化开发引擎、CI/CD流水线(原生支持Actions和Runners)、Git代码仓库和制品管理功能,上层全面兼容主流IDE(如VSCode、Cursor)和开发工具链,支持C/C++/Go/Rust等语言及ARM/RISC-V/AI芯片开发。平台集成了代码大模型(如DeepSeek、Claude)、MCP服务器集群(包括Github-MCP和DevStar-MCP)、分布式编译服务(CloudBuild/BuildFarm)以及虚拟化平台(QEMU/Renode)等增强功能,底层基于Docker/Kubernetes云原生平台构建,形成从编码、测试到部署的完整研发生态,并通过项目模板生态和应用商店实现开箱即用的开发体验。
|
||||
|
||||
## 目标
|
||||
|
||||
DevStar Studio是一个通用的一站式软件研发平台,它最初的目标是服务于汽车软件、消费电子、智能制造等嵌入式软件研发场景中的开发者
|
||||
|
||||
## 功能特性
|
||||
- 原生集成兼容Github Actions的DevStar CI/CD流水线(Actions/Runners),一键安装启用,与Pull Request/Al CodeReview工具协同
|
||||
- 自主研发的DevEnv引擎支撑开箱即用的devcontainer容器化开发环境
|
||||
- 自主研发的Web端Kubernetes客户端支撑一键安装部署第三方工具/服务,如私有部署代码大模型/Agents、MCP Servers、Cloudbuild等
|
||||
- Git代码托管、镜像仓库等制品管理Releases/Packages、项目管理Projects/Issues、知识管理Wiki等
|
||||
|
||||
## 优势
|
||||
- 验证与开发同步:传统开发流程验证阶段滞后于开发,而DevStar开发流程可以实现“边开发边验证”的并行模式
|
||||
- 集成测试前置:传统开发流程集成测试集中在后期,而DevStar开发流程将集成测试拆解到开发各阶段
|
||||
- 测试条件与实际高度一致:传统开发流程测试环境与真实场景存在差异,而DevStar开发流程可以构建高保真测试环境
|
||||
- 失效迭代前置:传统开发流程失效迭代出现在后期,而DevStar开发流程将失效识别和处理提前到了开发早期
|
||||
- 兼容不容层级的虚拟化:传统开发流程只能保证单一流程的虚拟化,而而DevStar开发流程可同时兼容硬件级虚拟化、系统级虚拟化、进程级虚拟化
|
||||
|
||||
## 在线演示
|
||||
|
||||
访问[devstar.cn](https://devstar.cn)或者在VS Code插件市场搜索devstar
|
||||
|
||||
52
docs/enterprise/faq.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: DevStar Enterprise FAG
|
||||
sidebar: auto
|
||||
---
|
||||
|
||||
# DevStar Enterprise FAG
|
||||
|
||||
## 什么是 DevStar Enterprise?
|
||||
|
||||
DevStar Enterprise 是基于开源 Gitea 项目开发的增强版,为企业级用户提供更可靠的体验。
|
||||
|
||||
## 与开源版的关系
|
||||
|
||||
- 基于开源 Gitea 项目开发,操作和配置方式几乎相同
|
||||
- 熟悉 Gitea 的用户可以快速上手 DevStar Enterprise
|
||||
- 企业版专为企业用例需求构建
|
||||
- **注意**:企业版功能需要付费激活
|
||||
|
||||
> 如果您对价格有疑问,可以申请30天免费试用,试用期结束后可选择继续使用(功能将恢复为开源版相同)
|
||||
|
||||
## 定价方案
|
||||
|
||||
您可以在客户门户自主购买 DevStar Enterprise 许可证:
|
||||
|
||||
- 价格基于用户数量,可按实际需求购买
|
||||
- 支持随时"调整"许可证规模(增减用户数或调整时长)
|
||||
- 示例:可将20人12个月许可调整为40人6个月或10人24个月
|
||||
- 调整不产生额外费用
|
||||
- 许可证到期前可选择续订延长有效期
|
||||
- 随时续订可享受促销优惠
|
||||
|
||||
## 版本规则
|
||||
|
||||
DevStar Enterprise 与 Gitea 项目的版本号不同但相互对应:
|
||||
|
||||
- 企业版版本格式:`v21.6.*`
|
||||
- `v21.6` 表示基于 Gitea 1.21.6 版本开发
|
||||
- `.*` 包含企业版特有的补丁或功能更新
|
||||
|
||||
### 版本切换指南
|
||||
|
||||
1. **切换条件**:所有数据和配置完全兼容
|
||||
2. **操作步骤**:只需替换可执行文件或 Docker 镜像
|
||||
3. **版本对应规则**:
|
||||
- 从 Gitea v1.21.6 → 需选择 DevStar Enterprise v21+
|
||||
- 从 DevStar Enterprise v23.1.0 → 需选择 Gitea v1.23+
|
||||
|
||||
## 问题反馈
|
||||
|
||||
大多数问题已在 [FAQ](/enterprise/faq) 中解答,如需进一步帮助请联系:
|
||||
|
||||
**邮箱**: [contact@mengning.com.cn](mailto:contact@mengning.com.cn)
|
||||
@@ -1,52 +1,52 @@
|
||||
---
|
||||
title: Gitea Enterprise 介绍
|
||||
sidebar: auto
|
||||
---
|
||||
|
||||
# Gitea Enterprise
|
||||
|
||||
## 什么是 Gitea Enterprise?
|
||||
|
||||
Gitea Enterprise 是基于开源 Gitea 项目开发的增强版,为企业级用户提供更可靠的体验。
|
||||
|
||||
## 与开源版的关系
|
||||
|
||||
- 基于开源 Gitea 项目开发,操作和配置方式几乎相同
|
||||
- 熟悉 Gitea 的用户可以快速上手 Gitea Enterprise
|
||||
- 企业版专为企业用例需求构建
|
||||
- **注意**:企业版功能需要付费激活
|
||||
|
||||
> 如果您对价格有疑问,可以申请30天免费试用,试用期结束后可选择继续使用(功能将恢复为开源版相同)
|
||||
|
||||
## 定价方案
|
||||
|
||||
您可以在客户门户自主购买 Gitea Enterprise 许可证:
|
||||
|
||||
- 价格基于用户数量,可按实际需求购买
|
||||
- 支持随时"调整"许可证规模(增减用户数或调整时长)
|
||||
- 示例:可将20人12个月许可调整为40人6个月或10人24个月
|
||||
- 调整不产生额外费用
|
||||
- 许可证到期前可选择续订延长有效期
|
||||
- 随时续订可享受促销优惠
|
||||
|
||||
## 版本规则
|
||||
|
||||
Gitea Enterprise 与 Gitea 项目的版本号不同但相互对应:
|
||||
|
||||
- 企业版版本格式:`v21.6.*`
|
||||
- `v21.6` 表示基于 Gitea 1.21.6 版本开发
|
||||
- `.*` 包含企业版特有的补丁或功能更新
|
||||
|
||||
### 版本切换指南
|
||||
|
||||
1. **切换条件**:所有数据和配置完全兼容
|
||||
2. **操作步骤**:只需替换可执行文件或 Docker 镜像
|
||||
3. **版本对应规则**:
|
||||
- 从 Gitea v1.21.6 → 需选择 Gitea Enterprise v21+
|
||||
- 从 Gitea Enterprise v23.1.0 → 需选择 Gitea v1.23+
|
||||
|
||||
## 问题反馈
|
||||
|
||||
大多数问题已在 [FAQ](https://docs.gitea.com/enterprise/faq) 中解答,如需进一步帮助请联系:
|
||||
|
||||
**邮箱**: [support@example.com](mailto:support@example.com)
|
||||
---
|
||||
title: DevStar Enterprise
|
||||
sidebar: auto
|
||||
---
|
||||
|
||||
# DevStar Enterprise
|
||||
|
||||
## 什么是 DevStar Enterprise?
|
||||
|
||||
DevStar Enterprise 是基于开源 Gitea 项目开发的增强版,为企业级用户提供更可靠的体验。
|
||||
|
||||
## 与开源版的关系
|
||||
|
||||
- 基于开源 Gitea 项目开发,操作和配置方式几乎相同
|
||||
- 熟悉 Gitea 的用户可以快速上手 DevStar Enterprise
|
||||
- 企业版专为企业用例需求构建
|
||||
- **注意**:企业版功能需要付费激活
|
||||
|
||||
> 如果您对价格有疑问,可以申请30天免费试用,试用期结束后可选择继续使用(功能将恢复为开源版相同)
|
||||
|
||||
## 定价方案
|
||||
|
||||
您可以在客户门户自主购买 DevStar Enterprise 许可证:
|
||||
|
||||
- 价格基于用户数量,可按实际需求购买
|
||||
- 支持随时"调整"许可证规模(增减用户数或调整时长)
|
||||
- 示例:可将20人12个月许可调整为40人6个月或10人24个月
|
||||
- 调整不产生额外费用
|
||||
- 许可证到期前可选择续订延长有效期
|
||||
- 随时续订可享受促销优惠
|
||||
|
||||
## 版本规则
|
||||
|
||||
DevStar Enterprise 与 Gitea 项目的版本号不同但相互对应:
|
||||
|
||||
- 企业版版本格式:`v21.6.*`
|
||||
- `v21.6` 表示基于 Gitea 1.21.6 版本开发
|
||||
- `.*` 包含企业版特有的补丁或功能更新
|
||||
|
||||
### 版本切换指南
|
||||
|
||||
1. **切换条件**:所有数据和配置完全兼容
|
||||
2. **操作步骤**:只需替换可执行文件或 Docker 镜像
|
||||
3. **版本对应规则**:
|
||||
- 从 Gitea v1.21.6 → 需选择 DevStar Enterprise v21+
|
||||
- 从 DevStar Enterprise v23.1.0 → 需选择 Gitea v1.23+
|
||||
|
||||
## 问题反馈
|
||||
|
||||
大多数问题已在 [FAQ](/enterprise/faq) 中解答,如需进一步帮助请联系:
|
||||
|
||||
**邮箱**: [contact@mengning.com.cn](mailto:contact@mengning.com.cn)
|
||||
@@ -1,41 +1,41 @@
|
||||
---
|
||||
# https://vitepress.dev/reference/default-theme-home-page
|
||||
layout: home
|
||||
|
||||
hero:
|
||||
# name: " 通用的"
|
||||
# text: " 为中小型公司提供IT服务"
|
||||
text: "DevStar: The Last Mile of Al for R&D"
|
||||
tagline: 为AI时代打造的新一代智能研发平台,面向人类开发者和AI开发者的融合团队,专注于产品质量和团队效能,为研发部门赋能提效的一站式解决方案
|
||||
image:
|
||||
src: /slider1.png
|
||||
alt: 背景图片
|
||||
# actions:
|
||||
# - theme: brand
|
||||
# text: DevStar Studio
|
||||
# link: /devstar/index
|
||||
# - theme: alt
|
||||
# text: CloudBuild
|
||||
# link: /compiling/index
|
||||
# - theme: alt
|
||||
# text: Simulator
|
||||
# link: /simulator/index
|
||||
|
||||
# features:
|
||||
# - title: 极易安装
|
||||
# details: 极易安装的详细描述
|
||||
# - title: 运行迅速
|
||||
# details: 运行迅速的详细描述
|
||||
# - title: 安装和使用体验良好
|
||||
# details: 安装和使用体验良好的详细描述
|
||||
---
|
||||
<script setup>
|
||||
import Index from './index.vue' // 你的组件
|
||||
</script>
|
||||
<Index/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
# https://vitepress.dev/reference/default-theme-home-page
|
||||
layout: home
|
||||
|
||||
hero:
|
||||
# name: " 通用的"
|
||||
# text: " 为中小型公司提供IT服务"
|
||||
text: "The Last Mile of Al for R&D"
|
||||
tagline: DevStar Studio是为AI时代打造的新一代一站式智能研发平台,面向人类开发者和AI开发者的融合团队,专注于产品质量和团队效能,为研发部门赋能提效。
|
||||
image:
|
||||
src: /slider1.png
|
||||
alt: 背景图片
|
||||
# actions:
|
||||
# - theme: brand
|
||||
# text: DevStar Studio
|
||||
# link: /devstar/index
|
||||
# - theme: alt
|
||||
# text: CloudBuild
|
||||
# link: /compile/index
|
||||
# - theme: alt
|
||||
# text: Simulator
|
||||
# link: /simulator/index
|
||||
|
||||
# features:
|
||||
# - title: 极易安装
|
||||
# details: 极易安装的详细描述
|
||||
# - title: 运行迅速
|
||||
# details: 运行迅速的详细描述
|
||||
# - title: 安装和使用体验良好
|
||||
# details: 安装和使用体验良好的详细描述
|
||||
---
|
||||
<script setup>
|
||||
import Index from './index.vue' // 你的组件
|
||||
</script>
|
||||
<Index/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
650
docs/index.vue
@@ -1,326 +1,326 @@
|
||||
<template>
|
||||
<section class="tencent-showcase">
|
||||
<div class="ten_main">
|
||||
<div class="ten_links">
|
||||
<a
|
||||
href="/devstar"
|
||||
class="ten_img"
|
||||
@mouseenter="hoverItem = 'about'"
|
||||
@mouseleave="hoverItem = null"
|
||||
>
|
||||
<img
|
||||
src="/public/promotional-graphic-devstar.png"
|
||||
alt="devstar"
|
||||
class="tencent-image"
|
||||
:class="{ 'image-hover': hoverItem === 'about' }"
|
||||
>
|
||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'about' }">
|
||||
<h2>AI+ DevOps</h2>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/compiling"
|
||||
class="ten_img"
|
||||
@mouseenter="hoverItem = 'culture'"
|
||||
@mouseleave="hoverItem = null"
|
||||
>
|
||||
<img
|
||||
src="/public/promotional-graphic-cloudbuild.jpg"
|
||||
alt="cloudbuild"
|
||||
class="tencent-image"
|
||||
:class="{ 'image-hover': hoverItem === 'culture' }"
|
||||
>
|
||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'culture' }">
|
||||
<h2>编译加速</h2>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/simulator"
|
||||
class="ten_img"
|
||||
@mouseenter="hoverItem = 'office'"
|
||||
@mouseleave="hoverItem = null"
|
||||
>
|
||||
<img
|
||||
src="/public/promotional-graphic-simulator.jpg"
|
||||
alt="simulator"
|
||||
class="tencent-image"
|
||||
:class="{ 'image-hover': hoverItem === 'office' }"
|
||||
>
|
||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'office' }">
|
||||
<h2>虚拟仿真</h2>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="wrap-footer">
|
||||
<div class="footer">
|
||||
<!-- 左侧区域(第一张图内容) -->
|
||||
<div class="footer-left">
|
||||
<div class="gitee-brand">
|
||||
<div class="logo-circle">
|
||||
<span class="logo-char">
|
||||
<img src="/public/mnsoftware.png" alt="">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="copyright">
|
||||
<span class="brand-name">梦宁软件</span>
|
||||
<span>梦宁软件(江苏)有限公司版权所有</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 右侧区域(第二张图内容) -->
|
||||
<div class="footer-right">
|
||||
<div class="qr-container">
|
||||
<div class="qr-code">
|
||||
<div class="qr-icon">
|
||||
<span class="qr-char">
|
||||
<img src="/public/QR-code.jpg" alt="">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="qr-label">微信公众号</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-area">
|
||||
<p>
|
||||
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">苏ICP备2024068144号-1</a>
|
||||
©
|
||||
<a href="/copyright" rel="noopener noreferrer">Mengning Software</a>.
|
||||
2025- All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Showcase',
|
||||
data() {
|
||||
return {
|
||||
hoverItem: null
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 基础布局 */
|
||||
.tencent-showcase {
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.ten_main {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.ten_links {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
/* 卡片容器 */
|
||||
.ten_img {
|
||||
position: relative;
|
||||
display: block;
|
||||
flex: 1;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.ten_img:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
/* 图片样式 */
|
||||
.tencent-image {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
/* object-fit: contain; */
|
||||
object-position: center;
|
||||
background-color: #f5f7fa;
|
||||
/* padding: 20px; */
|
||||
box-sizing: border-box;
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
.image-hover {
|
||||
filter: brightness(0.95);
|
||||
background-color: #e3f2fd;
|
||||
}
|
||||
|
||||
/* 文字区域 */
|
||||
.ten_img_txt {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: 20px;
|
||||
background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
|
||||
height: 80px;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.text-hover {
|
||||
background: linear-gradient(to top, rgba(0,90,180,0.7), transparent);
|
||||
}
|
||||
|
||||
.ten_img_txt h2 {
|
||||
border-top: none;
|
||||
color: white;
|
||||
font-size: 22px;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
/* 悬浮时显示的下划线 */
|
||||
.text-hover h2::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 60px;
|
||||
height: 2px;
|
||||
background: white;
|
||||
}
|
||||
.wrap-footer {
|
||||
margin-top: 50px;
|
||||
}
|
||||
.footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px 20px 20px 0;
|
||||
/* padding: 20px; */
|
||||
/* background-color: white; */
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* 左侧品牌区域样式 */
|
||||
.footer-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: -40px;
|
||||
}
|
||||
|
||||
.gitee-brand {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
|
||||
.logo-circle {
|
||||
width: 200px;
|
||||
height: 100px;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-right: -10px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.brand-name {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: #000;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
color: #999;
|
||||
font-size: 14px;
|
||||
margin-left: -40px;
|
||||
}
|
||||
|
||||
/* 右侧二维码区域样式 */
|
||||
.footer-right {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.qr-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.qr-code {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: #f5f5f5;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.qr-icon {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.qr-char {
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.qr-label {
|
||||
font-size: 14px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.footer-area {
|
||||
text-align: center;
|
||||
padding: 10px 0;
|
||||
font-size: 14px;
|
||||
color: #999;
|
||||
}
|
||||
.footer-area a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
.footer-area a:hover {
|
||||
text-decoration: underline;
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
|
||||
/* 响应式设计 */
|
||||
@media (max-width: 768px) {
|
||||
.ten_links {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.ten_img {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.tencent-image {
|
||||
height: 180px;
|
||||
}
|
||||
}
|
||||
.dark .brand-name {
|
||||
color: #DFDFD6;
|
||||
}
|
||||
|
||||
<template>
|
||||
<section class="tencent-showcase">
|
||||
<div class="ten_main">
|
||||
<div class="ten_links">
|
||||
<a
|
||||
href="/devstar/ai-devops"
|
||||
class="ten_img"
|
||||
@mouseenter="hoverItem = 'about'"
|
||||
@mouseleave="hoverItem = null"
|
||||
>
|
||||
<img
|
||||
src="/public/promotional-graphic-devstar.png"
|
||||
alt="devstar"
|
||||
class="tencent-image"
|
||||
:class="{ 'image-hover': hoverItem === 'about' }"
|
||||
>
|
||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'about' }">
|
||||
<h2>AI+ DevOps</h2>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/compile"
|
||||
class="ten_img"
|
||||
@mouseenter="hoverItem = 'culture'"
|
||||
@mouseleave="hoverItem = null"
|
||||
>
|
||||
<img
|
||||
src="/public/promotional-graphic-cloudbuild.jpg"
|
||||
alt="cloudbuild"
|
||||
class="tencent-image"
|
||||
:class="{ 'image-hover': hoverItem === 'culture' }"
|
||||
>
|
||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'culture' }">
|
||||
<h2>编译加速</h2>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/simulator"
|
||||
class="ten_img"
|
||||
@mouseenter="hoverItem = 'office'"
|
||||
@mouseleave="hoverItem = null"
|
||||
>
|
||||
<img
|
||||
src="/public/promotional-graphic-simulator.jpg"
|
||||
alt="simulator"
|
||||
class="tencent-image"
|
||||
:class="{ 'image-hover': hoverItem === 'office' }"
|
||||
>
|
||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'office' }">
|
||||
<h2>虚拟仿真</h2>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="wrap-footer">
|
||||
<div class="footer">
|
||||
<!-- 左侧区域(第一张图内容) -->
|
||||
<div class="footer-left">
|
||||
<div class="gitee-brand">
|
||||
<div class="logo-circle">
|
||||
<span class="logo-char">
|
||||
<img src="/public/mnsoftware.png" alt="">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="copyright">
|
||||
<span class="brand-name">梦宁软件</span>
|
||||
<span>梦宁软件(江苏)有限公司版权所有</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 右侧区域(第二张图内容) -->
|
||||
<div class="footer-right">
|
||||
<div class="qr-container">
|
||||
<div class="qr-code">
|
||||
<div class="qr-icon">
|
||||
<span class="qr-char">
|
||||
<img src="/public/QR-code.jpg" alt="">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="qr-label">微信公众号</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-area">
|
||||
<p>
|
||||
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">苏ICP备2024068144号-1</a>
|
||||
©
|
||||
<a href="/copyright" rel="noopener noreferrer">Mengning Software</a>.
|
||||
2025- All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Showcase',
|
||||
data() {
|
||||
return {
|
||||
hoverItem: null
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 基础布局 */
|
||||
.tencent-showcase {
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.ten_main {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.ten_links {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
/* 卡片容器 */
|
||||
.ten_img {
|
||||
position: relative;
|
||||
display: block;
|
||||
flex: 1;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.ten_img:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
/* 图片样式 */
|
||||
.tencent-image {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
/* object-fit: contain; */
|
||||
object-position: center;
|
||||
background-color: #f5f7fa;
|
||||
/* padding: 20px; */
|
||||
box-sizing: border-box;
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
.image-hover {
|
||||
filter: brightness(0.95);
|
||||
background-color: #e3f2fd;
|
||||
}
|
||||
|
||||
/* 文字区域 */
|
||||
.ten_img_txt {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: 20px;
|
||||
background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
|
||||
height: 80px;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.text-hover {
|
||||
background: linear-gradient(to top, rgba(0,90,180,0.7), transparent);
|
||||
}
|
||||
|
||||
.ten_img_txt h2 {
|
||||
border-top: none;
|
||||
color: white;
|
||||
font-size: 22px;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
/* 悬浮时显示的下划线 */
|
||||
.text-hover h2::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 60px;
|
||||
height: 2px;
|
||||
background: white;
|
||||
}
|
||||
.wrap-footer {
|
||||
margin-top: 50px;
|
||||
}
|
||||
.footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px 20px 20px 0;
|
||||
/* padding: 20px; */
|
||||
/* background-color: white; */
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* 左侧品牌区域样式 */
|
||||
.footer-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: -40px;
|
||||
}
|
||||
|
||||
.gitee-brand {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
|
||||
.logo-circle {
|
||||
width: 200px;
|
||||
height: 100px;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-right: -10px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.brand-name {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: #000;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
color: #999;
|
||||
font-size: 14px;
|
||||
margin-left: -40px;
|
||||
}
|
||||
|
||||
/* 右侧二维码区域样式 */
|
||||
.footer-right {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.qr-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.qr-code {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: #f5f5f5;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.qr-icon {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.qr-char {
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.qr-label {
|
||||
font-size: 14px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.footer-area {
|
||||
text-align: center;
|
||||
padding: 10px 0;
|
||||
font-size: 14px;
|
||||
color: #999;
|
||||
}
|
||||
.footer-area a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
.footer-area a:hover {
|
||||
text-decoration: underline;
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
|
||||
/* 响应式设计 */
|
||||
@media (max-width: 768px) {
|
||||
.ten_links {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.ten_img {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.tencent-image {
|
||||
height: 180px;
|
||||
}
|
||||
}
|
||||
.dark .brand-name {
|
||||
color: #DFDFD6;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 233 KiB After Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
@@ -1,16 +1,17 @@
|
||||
# simulator
|
||||

|
||||
|
||||
## 从vECU到整车仿真
|
||||

|
||||
<br>
|
||||
<br>
|
||||
|
||||

|
||||
|
||||
## 整车系统级软硬件联合仿真
|
||||

|
||||
应用场景
|
||||
- 算法及软件的快速测试验证:用台架RT-ECU作为开发控制器的快速样件
|
||||
- 控制器的常规HIL测试
|
||||
# 虚拟仿真技术概述
|
||||
|
||||

|
||||
|
||||
## 从vECU到整车仿真
|
||||

|
||||
<br>
|
||||
<br>
|
||||
|
||||

|
||||
|
||||
## 整车系统级软硬件联合仿真
|
||||

|
||||
应用场景
|
||||
- 算法及软件的快速测试验证:用台架RT-ECU作为开发控制器的快速样件
|
||||
- 控制器的常规HIL测试
|
||||
- 整车级多控制器的交互测试
|
||||
16
docs/simulator/vECU.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# simulator
|
||||

|
||||
|
||||
## 从vECU到整车仿真
|
||||

|
||||
<br>
|
||||
<br>
|
||||
|
||||

|
||||
|
||||
## 整车系统级软硬件联合仿真
|
||||

|
||||
应用场景
|
||||
- 算法及软件的快速测试验证:用台架RT-ECU作为开发控制器的快速样件
|
||||
- 控制器的常规HIL测试
|
||||
- 整车级多控制器的交互测试
|
||||
16
docs/simulator/vehicle-simulator.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# simulator
|
||||

|
||||
|
||||
## 从vECU到整车仿真
|
||||

|
||||
<br>
|
||||
<br>
|
||||
|
||||

|
||||
|
||||
## 整车系统级软硬件联合仿真
|
||||

|
||||
应用场景
|
||||
- 算法及软件的快速测试验证:用台架RT-ECU作为开发控制器的快速样件
|
||||
- 控制器的常规HIL测试
|
||||
- 整车级多控制器的交互测试
|
||||