如果你使用 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 通用公共许可证的副本。如果没有,请访问 [***]
我们建议通过 Docker 安装官方发布版本。相关安装说明可在我们的文档中找到。
仅当您打算对 Xibo 进行代码修改时,才安装开发环境。从代码仓库安装不适合生产环境。
Xibo 使用 Docker 确保所有贡献者都能获得可重复的开发环境,且易于启动和运行。我们推荐的最终用户安装中也使用相同的 Docker 容器,以促进从开发到部署的一致性。
为此,本代码仓库包含一个 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 社区论坛上报告。经确认且可复现的与本代码仓库相关的 bug 可在 Xibo 主仓库中报告。
来自真实用户的反馈,见证轩辕镜像的优质服务