ghcr.io/xibosignage/xibo-cms:test-3491
关于 Xibo
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-compose.yml
前提条件
开发 Docker 容器不会自动构建 PHP 或 JS 的依赖文件,这是开发人员的责任。因此,您需要以下工具:
- Git
- Composer
- NodeJS 版本 12
- npm
- Docker
克隆代码仓库
在您的开发工作区中创建一个文件夹并克隆代码仓库。如果您打算进行更改并提交拉取请求,请先 Fork 我们的仓库并创建一个新分支。
git clone git@github.com: /xibo-cms.git xibo-cms
分支
我们维护以下分支。要为 Xibo 贡献代码,请以 develop 分支为基础。
develop
- develop:4.4.x 的 bug 修复
- master:当前为 4.4
- release43:4.3 的 bug 修复
- release42:4.2 的 bug 修复
- release33:3.3 的 bug 修复
- release23:2.3 的存档
- release18:1.8 的存档
- release17:1.7 的存档
- release1.6.4:1.6 的存档
安装依赖
进入新创建的文件夹
cd xibo-cms
我们建议通过 Docker 安装依赖,以确保不同开发机器上的依赖一致性。
PHP 依赖
docker run --interactive --tty --volume $PWD:/app --volume ~/.composer:/tmp composer install
此命令还将 Composer 的 /tmp 文件夹挂载到您的主目录,以便您可以利用 Composer 缓存。
/tmp
网站依赖(webpack)
如果您已在本地安装 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;"
开发
[!IMPORTANT] 仅当您打算对Xibo进行代码更改时,才安装开发环境。从代码仓库安装不适合生产环境。
Xibo 使用 Docker 确保所有贡献者拥有可重复的开发环境,且易于启动和运行。我们推荐的最终用户安装中也使用相同的 Docker 容器,以促进从开发到部署的一致性。
为此,本代码仓库包含一个 docker-compose.yml 文件,用于启动模型开发环境。
前提条件
开发用 Docker 容器不会自动构建 PHP 或 JS 的依赖文件,这是开发人员的责任。因此,您需要以下工具:
- Git
- Composer
- NodeJS 12 版本
- npm
- Docker
克隆代码仓库
在您的开发工作区中创建一个文件夹并克隆代码仓库。如果您打算进行更改并提交拉取请求,请先 Fork 我们的仓库并创建一个新分支。
git clone git@github.com: /xibo-cms.git xibo-cms
分支
我们维护以下分支。要为 Xibo 贡献代码,请以 develop 分支为基础。
- develop:4.4.x 的错误修复
- master:当前为 4.4
- release43:4.3 的错误修复
- release42:4.2 的错误修复
- release33:3.3 的错误修复
- release23:2.3 的存档
- release18:1.8 的存档
- release17:1.7 的存档
- release1.6.4:1.6 的存档
安装依赖
进入新文件夹
cd xibo-cms
我们建议通过 Docker 安装依赖,以确保不同开发机器上的依赖一致性。
PHP 依赖
docker run --interactive --tty --volume $PWD:/app --volume ~/.composer:/tmp composer install
此命令还将 Composer 的 /tmp 文件夹挂载到您的主目录,以便您可以利用 Composer 缓存。
网站依赖(webpack)
如果您已在本地安装 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。显然这不适用于生产环境,但您不应将这些文件用于生产(我们有专门的生产容器)。
API 密钥
API 需要提供公钥/私钥 RSA 密钥对和加密密钥。Docker 入口点将在 /library/certs 中创建这些文件。
您可以通过在 settings-custom.php 中提供替代配置来覆盖生成的密钥路径和加密密钥。例如:
$apiKeyPaths = [
'publicKeyPath' => '/var/www/cms/custom/public.key',
'privateKeyPath' => '/var/www/cms/custom/private.key',
'encryptionKey' => ''
];
OpenOOH 规范
Xibo 可以在显示编辑表单中展示 OpenOOH 场地分类。要使此功能在开发环境中工作,需要https://raw.githubusercontent.com/openooh/venue-taxonomy/main/specification.json%E5%B9%B6%E5%B0%86%E5%85%B6%E6%94%BE%E7%BD%AE%E5%9C%A8%EF%BC%9A%60openooh/specification.json%60
生产/CI 容器在构建过程中添加此文件,因此它已在 Docker 镜像中可用。
启动容器
使用 Docker Compose 启动容器。
docker-compose up --build -d
登录
容器启动后,您可以使用以下详细信息登录:
U:xibo_admin
P:password
翻译
要解析翻译:
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 格式:
for i in *.po; do msgfmt "$i" -o $(echo $i | sed s/po/mo/); done
将生成的 mo 文件移动到您的 locale 文件夹中。
Swagger API 文档
要生成 swagger.json 文件,请在开发容器运行时执行:
docker-compose exec web sh -c "cd /var/www/cms; vendor/bin/swagger lib -o web/swagger.json"
应用结构
要了解有关应用代码以及各部分如何组合的更多信息,请参阅开发文档。
问题反馈
支持请求可提交至 Xibo Community Forum。与本仓库相关的已验证且可复现的 bug 可提交至 https://github.com/xibosignage/xibo/issues%E3%80%82
轩辕镜像配置手册
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
Docker 配置
登录仓库拉取
通过 Docker 登录认证访问私有仓库
专属域名拉取
无需登录使用专属域名
K8s Containerd
Kubernetes 集群配置 Containerd
K3s
K3s 轻量级 Kubernetes 镜像加速
Dev Containers
VS Code Dev Containers 配置
Podman
Podman 容器引擎配置
Singularity/Apptainer
HPC 科学计算容器配置
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
Harbor 镜像源配置
Harbor Proxy Repository 对接专属域名
Portainer 镜像源配置
Portainer Registries 加速拉取
Nexus 镜像源配置
Nexus3 Docker Proxy 内网缓存
系统配置
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
镜像拉取常见问题
使用与功能问题
配置了专属域名后,docker search 为什么会报错?
docker search 限制
Docker Hub 上有的镜像,为什么在轩辕镜像网站搜不到?
站内搜不到镜像
机器不能直连外网时,怎么用 docker save / load 迁镜像?
离线 save/load
docker pull 拉插件报错(plugin v1+json)怎么办?
插件要用 plugin install
WSL 里 Docker 拉镜像特别慢,怎么排查和优化?
WSL 拉取慢
轩辕镜像安全吗?如何用 digest 校验镜像没被篡改?
安全与 digest
第一次用轩辕镜像拉 Docker 镜像,要怎么登录和配置?
新手拉取配置
轩辕镜像合规吗?轩辕镜像的合规是怎么做的?
镜像合规机制
轩辕镜像支持 docker push 上传本地镜像吗?
不支持 push
错误码与失败问题
docker pull 提示 manifest unknown 怎么办?
manifest unknown
docker pull 提示 no matching manifest 怎么办?
no matching manifest(架构)
镜像已拉取完成,却提示 invalid tar header 或 failed to register layer 怎么办?
invalid tar header(解压)
Docker pull 时 HTTPS / TLS 证书验证失败怎么办?
TLS 证书失败
Docker pull 时 DNS 解析超时或连不上仓库怎么办?
DNS 超时
docker 无法连接轩辕镜像域名怎么办?
域名连通性排查
Docker 拉取出现 410 Gone 怎么办?
410 Gone 排查
出现 402 或「流量用尽」提示怎么办?
402 与流量用尽
Docker 拉取提示 UNAUTHORIZED(401)怎么办?
401 认证失败
遇到 429 Too Many Requests(请求太频繁)怎么办?
429 限流
docker login 提示 Cannot autolaunch D-Bus,还算登录成功吗?
D-Bus 凭证提示
为什么会出现「单层超过 20GB」或 413,无法加速拉取?
413 与超大单层
账号 / 计费 / 权限
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务