Files
deploy.stack/anqicms

anqicms 部署栈

anqicms 是一个轻量、SEO 友好的中文内容管理系统,面向博客、自媒体和中小型企业建站场景,基于 Go 开发,开箱即用。

目录结构

文件 说明
stack.yml Docker Compose 编排文件
env.cfg.example 环境变量模板(不含敏感信息,可提交)
env.cfg 实际环境变量(gitignore,不提交) — 部署时从 example 复制
readme.md 本文档

服务端口

宿主机 容器 说明
${ANQICMS_PORT}(默认 8001 8001 Web 服务(含前台 + 后台)

宿主机端口可通过 env.cfg 中的 ANQICMS_PORT 自定义。

数据卷映射

容器路径 宿主机路径 说明
/app ${Volumes_Path} 应用数据根(配置、上传、缓存、主题、插件等)
/etc/timezone /etc/timezone 时区(只读)
/etc/localtime /etc/localtime 本地时间(只读)

环境变量

公共变量(env.cfg.example

变量 默认值 说明
IMAGE_TAG_VER latest anqicms 镜像版本号
IMAGE_TAG anqicms/anqicms:${IMAGE_TAG_VER} 完整镜像引用
Volumes_Path /data/volumes/anqicms 宿主机持久化目录
ANQICMS_PORT 8001 宿主机端口

部署步骤

首次部署

# 1. 准备数据目录
mkdir -pv /data/volumes/anqicms

# 2. 复制 env 模板并按需修改
cp env.cfg.example env.cfg
$EDITOR env.cfg

# 3. 拉取镜像
docker compose -p anqicms --env-file ./anqicms/env.cfg -f ./anqicms/stack.yml pull

# 4. 启动服务
docker compose -p anqicms --env-file ./anqicms/env.cfg -f ./anqicms/stack.yml up -d

首次访问

容器启动后,浏览器访问 http://<host-ip>:${ANQICMS_PORT}/,按安装向导完成:

  • 设置管理员账号 / 密码
  • 选择数据库(默认 SQLite,零外部依赖;如需 MySQL 在向导里填连接信息)
  • 完成初始化

验证

# 容器状态
docker ps -f name=anqicms

# 端口监听
ss -tlnp | grep ${ANQICMS_PORT}

# 容器日志
docker logs -f anqicms

# 健康检查
curl -sI http://localhost:${ANQICMS_PORT}/

停止 / 重启

# 停止(保留数据)
docker compose -p anqicms --env-file ./anqicms/env.cfg -f ./anqicms/stack.yml stop

# 完全销毁(**数据不删**,bind 挂载保留在宿主机)
docker compose -p anqicms --env-file ./anqicms/env.cfg -f ./anqicms/stack.yml down

# 重启
docker compose -p anqicms --env-file ./anqicms/env.cfg -f ./anqicms/stack.yml restart

升级

# 1. 备份数据(先停服)
docker compose -p anqicms --env-file ./anqicms/env.cfg -f ./anqicms/stack.yml stop
sudo rsync -a /data/volumes/anqicms/ /data/backups/anqicms/$(date +%Y%m%d)/

# 2. 修改 IMAGE_TAG_VER 后拉取
$EDITOR env.cfg
docker compose -p anqicms --env-file ./anqicms/env.cfg -f ./anqicms/stack.yml pull

# 3. 重建并启动
docker compose -p anqicms --env-file ./anqicms/env.cfg -f ./anqicms/stack.yml up -d

故障排查

症状 排查命令
容器起不来 docker logs -f anqicms
端口冲突 ss -tlnp | grep ${ANQICMS_PORT}
无法访问 检查防火墙/安全组、curl -sI http://localhost:${ANQICMS_PORT}/
数据丢失 确认 bind 挂载路径正确,不要用 anonymous volume

相关链接