Casvisor
运维

升级

发版

Casvisor通过推送版本tag发版,例如v1.110.0。每个版本会出现在GitHub Releases上,带Linux、Windows和macOS的amd64、arm64压缩包(里面有程序、conf/、data/、swagger/和web/build/),并发布amd64、arm64的Docker镜像:

镜像内容
casbin/casvisorCasvisor,不另外配置时用SQLite
casbin/casvisor-all-in-oneCasvisor加自带的MariaDB,并已配置好使用它

推送v1.2.3这样的tag时,两个镜像都会发布1.2.3、v1.2.3、1.2、1和latest几个标签;v1.2.3-beta.1这样的预发布tag只发布1.2.3-beta.1和v1.2.3-beta.1。生产环境里请固定版本,需要时再主动升级。

升级Docker镜像

docker pull casbin/casvisor:<版本>
docker rm -f casvisor
docker run -d --name casvisor -p 19000:19000 -p 2222:2222 \
  -v casvisor-db:/db -v casvisor-recordings:/recordings \
  casbin/casvisor:<版本>

新容器要用和旧容器相同的卷、端口和环境变量启动。SQLite数据库在挂到/db的卷里,录像在挂到/recordings的卷里;用all-in-one镜像时,数据库在/var/lib/mysql。没有这些卷,换容器就会丢数据。旧容器停止时,开着的会话会断开;登录会话存成文件(而不是Redis)时,用户要重新登录。

数据库

启动时,Casvisor会补上新版本需要的表和列。它不会删除任何东西:新版本不再用的表和列原样留在库里。跨很多个版本升级前请先备份数据库,以便回退。

从较早的版本升级

2026年10月,Casvisor收窄成只做堡垒机,改动很大:

  • v1.107.0去掉了机器和提供商页面、背后的云同步,以及把日志写上区块链的功能。旧的machine和provider表还留在库里,不再需要时可以删掉。资产现在自己保存协议、主机、端口和账号,原来基于机器的资产要重新填写才能连接。
  • v1.109.0加入了权限。在为非管理员用户建好权限之前,他们什么都访问不了。
  • v1.110.0启动时自己去Casdoor取证书,能配任意Casdoor;新增credentialKey加密凭据、SSH私钥、固定主机指纹和allowedUsers。已有的资产会在下一次连接时记下指纹。

升级原来用MySQL和Casdoor的部署

Casvisor不另外配置时用SQLite和自带账号。升级原来配了MySQL和Casdoor的Casvisor时:

  • 数据库。 在挂载的app.conf里或用环境变量保留driverName = mysql,以及dataSourceName和dbName。没有它们,Casvisor会在一个新的空SQLite库上启动。all-in-one镜像自己为它的MariaDB设好了这几项。
  • 登录。 设了casdoorEndpoint就什么都不变。新拷贝的默认app.conf里它是空的,会切换到自带账号,记得把你的Casdoor配置搬过去。
  • 录像。 现在每个会话都会录像。在Docker里给/recordings挂一个卷,录像才不会随容器丢失;不想永久保留就设recordingRetentionDays,或者用disableRecording = true关掉录像。
在GitHub上编辑

本页内容