Contents

Caddy网站部署踩坑记

之前用Caddy的时候觉得特别容易上手,最近稍微修改了一下服务器,重新部署网站,发现还是踩了很多坑.Caddy已经出了2.0了,尝试过使用一次但文档实在是太少了,也不知道怎么部署,而1.0的维护也看起来不太行,讨论的人也不多的样子.

1.dns

dns解析我用的是cloudflare,首先得安装caddy的dns.tls.cloudfalre插件,我一开始不知道怎么单独安装插件,就把整个可执行文件给替换了,果然就好了.
其次是配置环境变量,需要两个变量CLOUDFLARE_API_KEYCLOUDFLARE_EMAIL,这个就比较麻烦了,之前捣鼓过一次忘记记录了.

可以在执行caddy命令之前在shell中export这两个变量

1
2
export CLOUDFLARE_EMAIL=your-Cloudflare-email
export CLOUDFLARE_API_KEY=your-Cloudflare-API_KEY

也可以在service文件中指定环境文件或者环境变量.

Environment=CLOUDFLARE_EMAIL=your-Cloudflare-email 
Environment=CLOUDFLARE_API_KEY=your-Cloudflare-API_KEY

或者

EnvironmentFile=/etc/sysconfig/your-config

然后在重新运行服务前执行

1
sudo systemctl daemon-reload

有空真的需要系统的看一下systemd教程,感觉还是很有用的

2.git

caddy的git插件之前特别好用,将网站的静态文件托管到github仓库中,然后再配置一个github webhook,以后每次本地提交更新到github,服务器就会自动pull到本地.
然而更新了版本之后有一个问题,github的仓库地址不能识别,同样的配置文件,ssh仓库地址,现在显示

invalid port ":univerone" after host

我在相关的github issue上面找到了一个高赞回答


修改了一下仓库的地址就ok了

总结

对于文档比较少的工具有问题就得找别人的回答,尤其是该工具的github issue里面很可能有人提出相同的问题,需要仔细看

参考

  1. https://github.com/abiosoft/caddy-git/issues/106
  2. https://caddy.community/t/cloudflare-credentials-missing/2531
  3. https://stackoverflow.com/questions/48306864/caddy-linux-cloudflare-credentials-missing
  4. http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html