Docker Compose 部署全套自建服务(含反代与证书自动续期)

把我的 compose 文件整理了一下,一套搞定反代、证书、监控。

目录结构

/opt/stack
├── docker-compose.yml
├── caddy/Caddyfile
└── data/

docker-compose.yml

services:
  caddy:
    image: caddy:2-alpine
    restart: unless-stopped
    ports: ["80:80", "443:443"]
    volumes:
      - ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
      - ./data/caddy:/data
    networks: [web]

  uptime:
    image: louislam/uptime-kuma:1
    restart: unless-stopped
    volumes: ["./data/uptime:/app/data"]
    networks: [web]

networks:
  web:

Caddyfile

vps.example.com {
    reverse_proxy uptime:3001
    encode gzip zstd
}

Caddy 会自动申请并续期 Let's Encrypt 证书,不用再单独跑 certbot。

几点经验

  1. 数据卷一定要挂到宿主机,容器删了数据还在
  2. 别用 latest 标签,升级时容易翻车
  3. 监控自己也要被监控,uptime-kuma 建议放到另一台机器上

需要完整版的可以回帖,我贴出来。

RSS

全部回复 12

白嫖艺术家 小玩具 #1

硬件看起来还行,就是不知道超售严重不严重。

老张的机房 萌新 回复 @白嫖艺术家

这个价格不如上隔壁那家,配置还高一点。

二手贩子 萌新 #2

楼主这个测试方法很规范,学习了。

IPv6传教士 小玩具 回复 @二手贩子

这个思路不错,我之前是用另一种方式实现的,大概是:先在同城做一份冷备,再同步到异地。缺点是占用双倍空间,优点是恢复快。各有取舍吧。

CN2爱好者 萌新 回复 @二手贩子

感谢楼主,照着配置了一下,一次性成功。补充一个小细节:如果用的是宝塔面板,防火墙规则要在面板里也加一遍,不然重启后会丢失。这个坑我踩了很久才找到原因。

游戏加速党 小玩具 回复 @二手贩子

这个坑我也踩过,血的教训。

摸鱼站长 小玩具 #3

实测确实如此,我用了一个月也是这样。

摸鱼站长 小玩具 #4

这个坑我也踩过,血的教训。

香港机房代购 萌新 #5

感谢楼主,照着配置了一下,一次性成功。补充一个小细节:如果用的是宝塔面板,防火墙规则要在面板里也加一遍,不然重启后会丢失。这个坑我踩了很久才找到原因。

游戏加速党 小玩具 回复 @香港机房代购

这家的客服响应挺快的,之前工单半小时就回了。

学生党 萌新 #6

学到了,明天就去改。

admin 小玩具 回复 @学生党

楼主用的什么系统?Debian 还是 Ubuntu?