- 主域名:
dwill.top(Cloudflare 转发) - 子域名:
blog.dwill.top:7777(Caddy 反代) - 反向代理: Caddy
- 容器宿主机端口:
9527(映射到容器内 8000) - 项目根目录:
C:\Users\SERVER\Desktop\zt\my_blog
将整个 my_blog 文件夹复制到服务器的 C:\Users\SERVER\Desktop\zt\ 目录下。
确保包含以下重要文件:
Dockerfiledocker-compose.ymlserver/client/
在项目根目录下创建 .env 文件:
cd C:\Users\SERVER\Desktop\zt\my_blog
copy .env.example .env使用记事本打开并填入真实信息:
# JWT 密钥 (推荐生成一个 64 位以上的随机字符串)
SECRET_KEY=your-random-secret-key-here
# 管理员密码 (用于登录后台)
ADMIN_USERNAME=avids2
ADMIN_PASSWORD=your-secure-password
# 生产环境 CORS 配置 (非常重要,否则后台无法调接口)
CORS_ORIGINS=https://dwill.top,https://blog.dwill.top由于你的 Docker 环境中有其他服务(如 postgres),我们需要确保网络连通:
# 如果 backend 网络已存在则跳过
docker network create backenddocker-compose up -d --build提示: 首次构建需要编译前端和管理后台,大约耗时 5-10 分钟。
docker ps你应该能看到名为 astris-blog 的容器,状态为 Up。
在你的 CaddyFile 中,将之前测试用的 9990 替换为我们的博客端口 9527:
# Astris Blog
blog.dwill.top:7777 {
reverse_proxy localhost:9527
}保存并重启/热加载 Caddy。
- 博客前台: https://dwill.top
- 管理后台: https://dwill.top/admin
docker-compose logs -f blog数据库文件存放在 data/blog.db,直接复制保存即可。
如果你在本地修改了代码想同步到服务器:
- 覆盖服务器上的源码
- 运行
docker-compose up -d --build重新构建镜像
- 图片路径:我已经修复了图片路径逻辑。如果你发现老文章图片还是不显示,请在后台编辑文章,确保图片路径是以
/uploads/开头的相对路径。 - 端口占用:如果 9527 被占用,请在
docker-compose.yml中修改第一个数值。