客户首次安装与密钥

install首次安装、客户专属密钥与公钥交付、初始密码和中断恢复边界。

快速上手 2945 字 ·约 5 分钟读完 ·更新于 2026-10-31

更新日期:2026-10-31。install 专用于全新客户环境,start/restart/stop 用于日常运行,configure --existing 用于关联已有项目。不要对已有业务库重新执行安装来修复启动问题。

应生成哪些材料

材料用途与生成位置交付方式
平台 Ed25519 私钥每个新安装独立随机生成;签署平台证据,并派生结果存储加密密钥只保存在客户服务器/持久卷内,独立加密备份,不放进镜像或代码包
平台公钥 platform.pub从本次平台私钥导出,用于验证平台证据通过独立可信渠道交给核验方;公钥可以交付,不能从待验证证据包自行建立信任
初始管理员密码 bootstrap-password每次安装独立随机生成,至少48个URL安全字符写入客户私有目录,不打印到终端;交给指定管理员后修改登录密码
数据库管理/业务密码Docker新安装分别随机生成,两类账号权限分离保存在客户私有目录;平台容器只读取业务连接文件
企业连接器私钥各企业节点自行运行连接器初始化生成企业侧保管,平台只登记其公钥;不共用平台私钥
HTTPS证书内置Caddy根据正式域名申请,或由客户已有网关提供与平台签名密钥不同,需域名、端口和实际TLS验收

不能把开发环境 .runtime、演示账号密码、平台私钥、企业连接器私钥一起复制给所有客户。代码与镜像中不携带这些安装秘密。平台生成的是实际随机Ed25519密钥,不是一个大家共用的默认口令或固定示例密钥。

Docker:推荐的新客户安装路径

服务器需要可用Docker Engine、Compose v2和Python 3.9+。在客户部署目录执行:

./run.sh docker install --email admin@your-company.com --origin https://data.your-company.com
./run.sh docker status

这个流程依次检查已有容器/数据卷、生成缺失秘密、构建镜像、启动数据库、验证空库、生成平台密钥和管理员、导出公钥,最后启动平台及Caddy并等待健康检查。不会先启动一个未经初始化的平台来生成无法追踪的默认账号。

  • 默认启用同域名的内置Caddy。正确解析域名并开放80/443;真实证书签发仍需从外部验证。
  • 已有客户网关可加 --external-proxy,保留HTTPS origin,由网关转发到宿主机回环端口。
  • 若8090被占用,加 --http-port 8110,不会停止旧实例。
  • 已拿到本版镜像的客户可设置公开的 DATANOUS_IMAGE,并加 --skip-build;镜像必须支持本版安装契约。不要把不明旧版镜像当作兼容版本。
  • 单主机默认Compose项目名固定为 datanous。发现已有该项目容器或卷时拒绝新安装;未提供多项目同主机自动分配方案。

公开配置在 .runtime/deploy/compose.env。初始密码在 .runtime/deploy/bootstrap-password,公钥在 .runtime/deploy/platform.pub,安装进度在 .runtime/deploy/install.json。秘密目录权限0700;绑定给非root容器的数据库秘密为只读0444,宿主其他普通用户不能穿过父目录访问。安装日志、安装记录和导出公钥保存在该私有目录。

**平台私钥位于 datanous_platform_state 持久卷的 /app/state/platform.key**,不会打印,也不会自动复制到客户操作员电脑。交付前按客户密钥备份制度单独导出并加密保管该文件,同时备份数据库和部署秘密目录。仅备份镜像不能恢复历史加密结果。

本地/原生部署:客户已有独立 PostgreSQL

先为客户创建专用空数据库,准备权限0600的数据库URL文件,内容是一行完整PostgreSQL连接串。初始化需业务库创建对象/迁移权限,不自动安装宿主PostgreSQL,也不接管已有库。

./run.sh build
./run.sh install --email admin@your-company.com --database-url-file /secure/customer-postgres-url
./run.sh start

需要其他端口时,安装时加 --listen 127.0.0.1:8110;HTTP来源默认与监听端口一致。安装前不要先执行普通 configure;已有配置会被视为既有实例而拒绝覆盖。

原生模式的私钥、公钥、初始密码和安装记录分别位于:

.runtime/launcher/platform.key
.runtime/launcher/platform.pub
.runtime/launcher/bootstrap-password
.runtime/launcher/install.json

均放在0700的私有目录内;私钥、口令和配置文件为0600。数据库连接文件继续由客户保管,安装配置仅引用路径,不复制连接口令。安装会生成同版启动配置,随后用日常启停命令管理。

重复执行、失败恢复与已有客户

安装在数据库迁移锁内检查业务数据库是否为空;非空时先拒绝,尚不生成替代平台私钥。init -fresh-install 同样拒绝已有密钥路径。普通 init 保留为人工管理入口,不是自动重装命令。

安装记录/配置/密钥或既有Docker卷存在时,不覆盖、不删除、不自动清空数据库。安装成功后不再运行install,直接使用start。Docker初始化已完成但启动/TLS检查失败时,记录状态为 initialized_start_pending,应修复环境后使用 docker start。

若在构建、迁移、密钥写入或管理员初始化之间中断,保留秘密及记录,由运维先核对 install.log、数据库和原密钥,再从相应阶段人工恢复。本版没有提供任意中断点的一键自动续装;不要删除安装记录/密钥或数据卷来强制重装,也不要生成新密钥代替旧密钥。

已有客户升级使用备份、迁移与发布流程;遗失平台私钥不是重新install能修复的问题。各企业连接器和浏览器签名设备仍按各自登记流程建立身份,不由服务器安装器代签。

本轮验证

已用全新私有PostgreSQL及真实平台验证安装、生成密钥与公钥对应、两个独立客户密钥不同、重复安装拒绝,以及非空数据库在生成替代密钥前被拒绝。原项目8090及schema6保持原版本运行。

Docker安装顺序和已有卷拒绝已做组件测试,CI已加入新安装流程;当前开发机无可用Docker Engine,真实容器卷权限、镜像实跑、TLS签发及远端CI仍待目标环境验证,不据此宣称正式部署已验收。

相关:快速启动与Docker部署、本轮验证记录。

这一步卡住了?请通过首页客服微信沟通。 ← 返回文档中心