一个镜像,运行在你自己的基础设施上
该仪表盘以单个 Docker 镜像的形式发布,运行在你自己掌控的硬件上。支持三种数据库引擎,默认没有产品遥测(除非你设置自己的 PostHog 密钥,否则不会向其发送任何内容),拉取镜像也无需账户。
- 需要运行的容器数
- 1
- 数据库引擎数
- 3
- 支持的 CPU 架构数
- 2
- 默认产品遥测
- 0
拉取镜像


无需账户,也无需登录镜像仓库——该镜像公开托管在 Docker Hub。 固定版本 →linux/amd64linux/arm64
这个决定
自托管能带来什么,又需要付出什么代价
没有可供对比的托管版仪表盘——自托管本身就是这款产品的运行方式。真正该问的不是是否值得,而是你需要自己承担什么。
始终留在你这一边
- 你的源代码。 扫描器从你自己的网络内部读取代码仓库。不会有任何内容被上传以提取其中的键值。
- 你的翻译数据。 翻译数据保存在你为容器指定的数据库中——可以是卷中的一个 SQLite 文件,也可以是你已经在运行的 Postgres/MySQL 服务器。
- 你的服务商密钥。 DeepL、Google、LibreTranslate:调用请求从你的实例发出,并使用你自己的会话密钥加密存储。
- 你的网络边界。 公开的端口默认绑定到 127.0.0.1。在你决定开放之前,其他任何设备都无法访问。
变成你自己的工作
- TLS 与反向代理。 镜像本身不终止 TLS。要将其暴露到 localhost 之外,需要在前面部署 Caddy、nginx 或 Traefik。
- 备份,以及对备份的验证。 一个数据卷或一次数据库转储。内置 CLI 可以将一切导出为 JSON,但恢复工作仍需你自己完成。
- 升级。 拉取新标签并重启即可。迁移会在启动时自动执行,失败的迁移不会被记录,因此下次启动时会重新尝试。
- 服务器模式下的登录。 同一实例上的多个账户经由我们运营的中央账户服务登录;今天你无法自己运行一套。
进入
- 你的团队
- TLS 与反向代理。
你的实例
127.0.0.1:6001数据库 · SQLite / PostgreSQL / MySQL
发出
- 我们的中央账户
- 登录
- 确认套餐:设置部署密钥后,最多每 15 分钟一次
- 首次自动翻译:仅账户 ID
- 你的翻译服务商(使用你的密钥)
- 我们的网站:界面语言文件,由浏览器下载
你的实例确实会与中央账户通信:用于登录(服务器模式下始终如此;本地模式下仅限没有本地密码的账户);设置了部署密钥后,还会用于确认套餐(使用仪表板期间最多每 15 分钟一次)和通知你的首次自动翻译(仅账户 ID)。浏览器会从我们的网站下载英语以外的界面语言文件。
选择
你想如何运行它
三种模式,一个镜像。模式决定了谁来登录、以及实例依赖什么——不会改变产品本身。
本地模式
默认如果只有你一人,或是一个已经处于可信网络之后的小团队,请选择这个。
- 有登录页面,账户只有一个,在首次启动时创建。
- SQLite 存储在一个 Docker 卷中,无需运行第二个服务。
- 你的数据和登录都留在你的机器上。非英语的界面文件目前仍来自我们。
服务器模式
多团队如果需要多人在同一实例上拥有各自的账户,请选择这个。
- 登录、角色,以及“草稿 → 已审核 → 已批准”的工作流。
- 联网数据库——PostgreSQL 或 MySQL。
- 登录经由我们运营的中央账户服务;今天你无法自己运行一套。
桌面版
无需 Docker如果你完全不想运行服务端,请选择这个。
- 内置服务端的 macOS、Windows、Linux 原生安装包。
- 翻译存储在本地 SQLite 中,只有当你把它们发送给自己设置的服务(例如翻译服务商或 Git 远程仓库)时,才会离开这台设备。
- 登录仍然通过你的在线账户完成。
选择数据库引擎
你的数据库,你的 compose 文件
三种引擎都拥有相同的 27 张表,因此选择并非关乎正确性,而是关乎你打算如何备份实例,以及还有谁需要访问它。
一个文件,一个容器
这是发布镜像默认提供、桌面应用也在使用的方式。无需第二个服务,也无需管理任何凭据。整个实例只是这一个文件加一个 Docker 卷。
端口绑定的地址是 127.0.0.1 ,这是刻意的设计:只能从本机访问,其他任何地方都无法访问。本地模式面向一个人或一个小团队,因此只应在你已经信任的代理、防火墙或 VPN 之后放宽这一绑定。
公开的端口默认绑定到 127.0.0.1。在你决定开放之前,其他任何设备都无法访问。
桌面版与自托管对比
自托管会带来什么不同
| 对比项 | 桌面应用 | 自主托管 |
|---|---|---|
| 安装 | 下载后直接打开 | docker compose up -d |
| 数据库 | 内置 SQLite | SQLite、PostgreSQL 或 MySQL |
| 数据存储的位置 | 你的本机 | 您的基础设施 |
| 更新 | 自动 | docker compose pull && docker compose up -d |
| 团队访问 | 仅限本机上的你 | 整个团队——服务器模式经由我们的中央账户服务登录 |
今天依赖 Elysera 的部分
仍依赖 Elysera 的部分
这个项目由持有代码权利的 Elysera 运营。下面说明今天还有哪些事情依赖于 Elysera。
本地模式
你的数据、服务器和登录都运行在你自己的机器上:首次启动时创建的账户用本地密码登录,会话无需联系 Elysera 即可自行续期。仍有一件事经过 Elysera:非英语的界面文件,你的浏览器会从其网站下载(如果下载不了,界面会退回到实例自己的副本,没有翻译的地方显示英语)。通过中央账户登录的账户,可以设置一个本地备用密码,从而不再依赖它。
服务器模式
登录经由 Elysera 运营的中央账户服务。今天你无法自己运行一套:它的代码尚未公开,而且仪表盘使用的是它的登录协议,因此标准的 OIDC 提供方不能直接替代。如果它无法访问,登录会在几分钟内中断。你的套餐不受影响:实例会保留它最后看到的套餐,除已结束的试用外,不会自行降低。
桌面版
你的翻译保存在你机器上的 SQLite 文件中。登录经由中央账户。
离开
带着你的数据离开
导出在你自己的实例上运行,使用你自己设置的令牌。不需要 Elysera 账户,也不需要许可。
保持你项目格式的 JSON
可以导出单一语言,也可以导出全部语言。文件沿用仪表盘扫描时你的文件所具有的格式(扁平或嵌套);若格式混合或从未扫描过,则为嵌套。尚无翻译的键不会被导出。
完整备份
一个包含整个实例的 JSON 文件,可在另一个实例上恢复。需要单独的管理员令牌。
你的语言文件
它们存放在你自己的仓库中。仪表盘读取它们,并通过同步写回;停用仪表盘,它们仍留在原处。
通过命令行
在 Docker 镜像中,先在环境变量里设置好令牌:
docker exec -it i18n-dashboard i18nd exportdocker exec -it i18n-dashboard i18nd backup
不作承诺的事
逐字节一致的往返转换。导出沿用你文件的格式,但键的顺序和排版可能与原文件不同,因此与原文件做 diff 时未必干净。