本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Element(前身为Vector和Riot)是一个基于Matrix React SDK构建的Matrix Web客户端。
Element对不同环境有多个支持层级:
支持
实验性
不支持
对于在Android或iOS设备上访问Element,我们目前推荐原生应用element-android和element-ios。
测试Element最简单的方法是使用托管版本:<[]>。对于喜欢体验最新功能的用户,develop分支会持续部署到<[]>。
要托管自己的Element副本,最快的方法是使用预构建的Element发布版本:
element-x.x.x目录移动(或符号链接)到适当的名称config.sample.json到config.json并修改来配置应用。详情参见配置文档。发布版本使用gpg和OpenPGP标准签名,可以通过位于<[***]>的公钥进行验证。
注意,为了聊天安全,您需要通过HTTPS提供Element服务。主流浏览器也不允许通过HTTP使用VoIP/视频聊天,因为WebRTC只能通过HTTPS使用。使用localhost时存在一些例外,这被视为安全上下文,因此被允许。
要将Element安装为桌面应用,请参见下面的作为桌面应用运行。
我们不建议从与Matrix homeserver相同的域名运行Element。原因是如果有人导致Element加载和呈现来自Matrix API的恶意用户生成内容,可能会发生XSS(跨站脚本)漏洞,从而获得对Element(或其他应用)的受信任访问。
我们已经采取了一些粗略的缓解措施来防止这种情况,但首先不这样做仍然是良好的实践。详见<[***]>。
除非有特殊要求,否则在托管Element Web时,您需要在Web服务器配置中添加以下内容:
X-Frame-Options: SAMEORIGIN头,防止Element Web被嵌入框架并防止[点击劫持][owasp-clickjacking]frame-ancestors 'none'指令到Content-Security-Policy头,作为X-Frame-Options的现代替代品(尽管两者都应包含,因为并非所有浏览器都支持)X-Content-Type-Options: nosniff头,[禁用MIME嗅探][mime-sniffing]X-XSS-Protection: 1; mode=block;头,用于旧版浏览器的基本XSS保护如果使用nginx,配置如下:
add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header Content-Security-Policy "frame-ancestors 'none'";
注意:如果您已在其他地方设置了Content-Security-Policy头,应修改它以包含frame-ancestors指令,而不是添加最后一行。
Docker镜像可用于作为Web服务器提供element-web服务。使用预构建镜像的最简单方法:
docker run -p 80:80 vectorim/element-web
要提供自定义config.json,将卷映射到/app/config.json。例如,如果自定义配置位于/etc/element-web/config.json,则Docker命令为:
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/element-web
要自己构建镜像:
git clone [***] element-web cd element-web git checkout master docker build .
如果要构建自定义分支或使用develop分支,请检出适当的element-web分支,然后运行:
docker build -t \ --build-arg USE_CUSTOM_SDKS=true \ --build-arg REACT_SDK_REPO="[***]" \ --build-arg REACT_SDK_BRANCH="develop" \ --build-arg JS_SDK_REPO="[***]" \ --build-arg JS_SDK_BRANCH="develop" \ .
Element是使用现代ES6构建的模块化Web应用,并使用Node.js构建系统。确保安装了最新的LTS版本Node.js。
推荐使用yarn而不是npm。如果尚未安装yarn,请参阅Yarn安装指南。
node.js,确保node版本至少为当前推荐的LTS版本。yarn,请先安装。git clone [***]。cd element-web。yarn install。config.sample.json到config.json并修改来配置应用。详见配置文档。yarn dist构建要部署的tarball。解压缩此文件将得到一个特定版本的目录,其中包含需要放在Web服务器上的所有文件。注意:Windows不支持yarn dist,因此Windows用户可以运行yarn build,这将把所有必要文件构建到webapp目录中。如果不使用dist脚本,Element的版本将不会显示在设置中。然后可以将webapp目录挂载到Web服务器上以实际提供应用服务,这完全是静态内容。
Element也可以作为桌面应用运行,由Electron包装。您可以从<[***]>下载预构建版本,或者如果您愿意,也可以自己构建。
要自己构建,请按照<[***]>上的说明进行操作。
非常感谢@aviraldg为Electron集成所做的初始工作。
作为桌面应用运行的其他选项:
yarn global add nativefier nativefier [***]
配置文档展示了如何根据需要覆盖桌面应用的默认设置。
提供的element-web docker镜像也可以在Kubernetes集群中运行。有关更多详细信息,请参阅Kubernetes示例。
Element支持各种设置来配置默认服务器、行为、主题等。详见配置文档。
Element的某些功能可以通过设置中Labs部分的标志启用。其中一些功能在labs.md中有描述。
当您从自己的Web服务器提供Element服务时,Element要求以下URL不被缓存:
/config.*.json /i18n /home /sites /index.html
我们还建议您通过将Web服务器配置为对/返回Cache-Control: no-cache,强制浏览器在页面加载时重新验证Element的任何缓存副本。这确保浏览器在部署后下次页面加载时获取Element的新版本。请注意,这已在我们Dockerfile的nginx配置中为您配置。
Element的大部分功能实际上在matrix-react-sdk和matrix-js-sdk模块中。可以通过某种方式设置这些模块,使其易于跟踪git中的develop分支,并能够进行本地更改而无需每次手动重建。
首先克隆并构建matrix-js-sdk:
git clone [***] pushd matrix-js-sdk yarn link yarn install popd
然后以类似方式处理matrix-react-sdk:
git clone [***] pushd matrix-react-sdk yarn link yarn link matrix-js-sdk yarn install popd
克隆仓库并切换到element-web目录:
git clone [***] cd element-web
通过复制config.sample.json到config.json并修改来配置应用。详见配置文档。
最后,构建并启动Element:
yarn link matrix-js-sdk yarn link matrix-react-sdk yarn install yarn start
等待几秒钟,初始构建完成后,您将看到类似以下内容:
[element-js] <s> [webpack.Progress] 100% [element-js] [element-js] ℹ 「wdm」: 1840 modules [element-js] ℹ 「wdm」: Compiled successfully.
请记住,该命令不会终止,因为它运行Web服务器并在源文件更改时重建。此开发服务器还禁用了缓存,因此不要在生产环境中使用它。
在浏览器中打开<[***]>,即可看到您新构建的Element。
tests目录中有许多应用级测试;这些测试旨在与Jest和JSDOM一起运行。要运行它们:
yarn test
有关如何运行端到端测试,请参见matrix-react-sdk。
要添加新翻译,请参阅翻译文档。
开发指南,请参见翻译开发文档。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429