容器平滑升级
CatCRM 容器本身无状态,所有业务数据均保存在宿主机挂载目录(默认 ~/catcrm)中,容器可以随时删除重建而不会丢失数据。
升级新版本时,使用与首次部署相同的 -e 和 -v 参数重新 docker run 即可:
# 1. 拉取新版本镜像
docker pull makunet/catcrm:0.1.1
# 2. 优雅停止容器(等待 30 秒让 PostgreSQL 与 Redis 完成落盘)
docker stop -t 30 catcrm
# 3. 移除旧容器
docker rm catcrm
# 4. 使用新版本镜像标签(0.1.1)重新执行 docker run
升级注意事项
- 禁止强杀容器:请勿使用
docker rm -f强制杀死运行中的容器,否则 PostgreSQL 下次启动时需要执行崩溃恢复(Crash Recovery)。 - 清理系统配置缓存:如果新版本升级修改了系统配置表数据,请手动清理 Redis 中的配置缓存以立即生效:
docker exec catcrm sh -c 'redis-cli -a "$REDIS_PASSWORD" --no-auth-warning -n 0 DEL system:config' - 修改密码:如需更换数据库或 Redis 密码,只需用新的
DB_PASSWORD、REDIS_PASSWORD重建容器,启动脚本会自动同步数据库用户密码。
数据备份与 JVM 内存调整
在线备份 PostgreSQL 数据库
无需进入容器,直接在宿主机执行以下命令即可导出完整 SQL 备份文件:
docker exec catcrm sh -c 'PGPASSWORD="$DB_PASSWORD" pg_dump -h 127.0.0.1 -U "${DB_USER:-catcrm}" "${DB_NAME:-catcrm}"' > catcrm_backup_$(date +%F).sql
调整 JVM 内存占比
容器默认配置 JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=60.0"。如需在内存较小的机器或大内存服务器上自定义 JVM 堆上限,可在 docker run 时通过环境变量覆盖:
-e JAVA_TOOL_OPTIONS="-Xms512m -Xmx2048m"
官网静态化打包与 CDN 托管 (site/)
CatCRM 官方网站(位于仓库 site/ 目录)基于 Nuxt 3 + Nuxt UI v3 + Nuxt Content v3 构建,已预置全站静态预渲染(SSG)配置,生成的纯静态文件可直接托管至阿里云 OSS + CDN、腾讯云 COS + EdgeOne、Cloudflare Pages、Vercel 或任意 Nginx 静态服务器。
1. 本地开发与预览
cd site
npm install
npm run dev # 启动在 http://localhost:3001
2. 生成全站静态产物(SSG)
cd site
npm run generate
执行完成后,所有预渲染好的 HTML、CSS、JS 与内置 SQLite WASM 内容库将输出到 site/.output/public(以及软链 site/dist)目录。
3. 上传至 CDN / 对象存储
只需将 site/.output/public/ 目录下的全部文件上传至您的对象存储桶(Bucket)或 CDN 源站目录:
- 默认首页设置为:
index.html - 404 错误页设置为:
404.html - 建议对
/_nuxt/*静态带哈希资源配置长期强缓存(Cache-Control: public, max-age=31536000, immutable),对*.html页面配置协商缓存(Cache-Control: no-cache)。