如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Xibo 是一个功能强大的开源数字标牌平台,包含 Web 内容管理系统和 Windows 显示播放器软件。我们提供 Android、LG webOS 和 Samsung Tizen 等商业播放器选项,以及 CMS 托管和支持服务。
有关更多信息,请访问 [***]
我们于 2009 年发布了第一个开源版本 1.0.0-rc1,并且致力于将运行数字标牌网络或单个屏幕所需的所有功能保持开源且免费使用。
版权所有 (C) 2006-2026 Xibo Signage Ltd 及贡献者。
Xibo 是自由软件:您可以根据自由软件基金会发布的 GNU Affero 通用公共许可证的条款重新分发和/或修改它,无论是许可证的第 3 版还是任何更高版本。
Xibo 的分发旨在希望它能有用,但不提供任何明示或默示的保证,包括但不限于适销性或特定用途适用性的默示保证。有关更多详情,请参阅 GNU Affero 通用公共许可证。
您应该已经随 Xibo 收到了 GNU Affero 通用公共许可证的副本。如果没有,请参阅 http://www.gnu.org/licenses/%E3%80%82
我们建议通过 Docker 安装官方版本。相关说明可在我们的文档中找到。
对于不使用 Docker 的自托管手动安装,请参阅 MANUAL_INSTALL.md。手动安装仅获得社区支持,不包含在官方管理手册中。
仅当您打算对 Xibo 进行代码更改时,才安装开发环境。从代码仓库安装不适合生产环境。
Xibo 使用 Docker 确保所有贡献者都拥有可重复的开发环境,且易于启动和运行。我们推荐的最终用户安装中使用的正是这些 Docker 容器,以促进从开发到部署的一致性。
为此,本仓库包含一个 docker-compose.yml 文件,用于启动一个标准开发环境。
docker-compose.yml
开发 Docker 容器不会自动构建 PHP 或 JS 的依赖文件,这是开发者的责任。因此,您需要以下工具:
在您的开发工作区中创建一个文件夹并克隆仓库。如果您打算进行更改并提交拉取请求,请先 Fork 我们的仓库并创建新分支。
git clone git@github.com: /xibo-cms.git xibo-cms
我们维护以下分支。要为 Xibo 贡献代码,请以 develop 分支为基础。
develop
进入新文件夹
cd xibo-cms
我们建议通过 Docker 安装依赖,以确保不同开发机器上的依赖一致。
docker run --interactive --tty --volume $PWD:/app --volume ~/.composer:/tmp composer install
此命令还将 Composer 的 /tmp 文件夹挂载到您的主目录中,以便您可以利用 Composer 缓存。
/tmp
如果您已在本地安装 node:
npm install webpack -g
npm install
npm run build
或者您可以使用 Docker 容器:
docker run -it --volume $PWD:/app --volume ~/.npm:/root/.npm -w /app node:22 sh -c "npm install webpack -g; npm install; npm run build;"
Xibo 开发版期望将代码库映射到容器中,以便主机上的更改能反映到容器中。
但是,容器本身会创建一些文件,例如 twig 缓存和库上传文件。需要创建这些位置并授予容器访问权限。
最简单的方法是创建 cache 和 library 文件夹并对其执行 chmod 777。显然这不适合生产环境,但您不应将这些文件用于生产(我们有专门的生产容器)。
cache library chmod 777
API 需要提供公钥/私钥 RSA 密钥对和加密密钥。Docker 入口点将在 /library/certs 中创建这些密钥。
/library/certs
您可以通过在 settings-custom.php 中提供替代路径来覆盖生成的密钥路径和加密密钥。例如:
settings-custom.php
$apiKeyPaths = [
'publicKeyPath' => '/var/www/cms/custom/public.key',
'privateKeyPath' => '/var/www/cms/custom/private.key',
'encryptionKey' => ''
];
Xibo 可以在显示编辑表单中展示 OpenOOH 场地分类。要使此功能在开发中正常工作,需要下载最新文件并将其放置在以下位置:openooh/specification.json
openooh/specification.json
生产/CI 容器在构建过程中会添加此文件,因此它已在 Docker 镜像中可用。
使用 Docker Compose 启动容器。
docker-compose up --build -d
容器启动后,您可以使用以下凭据登录:
用户名:xibo_admin 密码:password
xibo_admin password
解析翻译:
React:
cd frontend
npx i18next-cli extract
然后:
docker-compose exec web sh -c "cd /var/www/cms; rm -R ./cache"
docker-compose exec web sh -c "cd /var/www/cms; php bin/locale.php"
find ./locale ./cache ./lib ./web -iname "*.php" -print0 | xargs -0 xgettext --from-code=UTF-8 -k_e -k_x -k__ -o locale/default.pot
导入翻译:
bzr pull lp:~dangarner/xibo/holmes-translations
转换为 mo 格式:
mo
for i in *.po; do msgfmt "$i" -o $(echo $i | sed s/po/mo/); done
将生成的 mo 文件移动到 locale 文件夹中。
mo locale
React 语言包(frontend/public/locale/langs/.json)由 locale/.mo 文件生成,不提交到代码库,它们是构建产物。npm run dev 和 npm run build 会自动重新生成它们,因此通常无需手动操作。要手动重新生成(例如添加新 mo 文件后):
frontend/public/locale/langs/*.json locale/*.mo npm run dev npm run build mo
cd frontend
npm run i18n:convert
要生成 swagger.json 文件,请在开发容器运行时执行:
swagger.json
docker-compose exec web sh -c "cd /var/www/cms; vendor/bin/openapi lib -o web/swagger.json"
要了解更多关于应用代码及各部分如何组合的信息,请参考开发者文档。
我们非常欢迎对项目的贡献 - 请参阅 CONTRIBUTING.md 了解更多信息。
我们基于开源项目构建了商业产品和服务。如果您想支持我们的工作,最好的方式是成为我们的客户。无论如何,我们都致力于保持项目的开源性质!
支持请求可在 Xibo 社区论坛上提交。与本仓库相关的已验证、可复现的错误可在 Xibo 父仓库中报告。
来自真实用户的反馈,见证轩辕镜像的优质服务