CapRover 是什么
CapRover 是一个开源的自托管平台即服务(PaaS)解决方案(Heroku 的开源替代),旨在显著简化网络应用和数据库的部署与管理。
它作为一个强大的网络服务器管理器,支持广泛的应用类型,包括 NodeJS、Python、PHP、ASP.NET、Ruby,以及 MySQL、MongoDB、Postgres 等流行数据库,甚至 WordPress 等平台 。
CapRover 安装部署
基于Debian系统。
防火墙放行端口
如果未启用防火墙,可跳过。
此处使用相对于 iptables
更简单的 ufw
进行设置,如果系统未安装 ufw
则需先安装,或者直接使用 iptables
。
1 | ufw allow 80,443,3000,996,7946,4789,2377/tcp; ufw allow 7946,4789,2377/udp; |
安装 Docker
1 | apt-get update && apt-get install ca-certificates curl gnupg |
安装 CapRover
1 | docker run -p 80:80 -p 443:443 -p 3000:3000 -e ACCEPTED_TERMS=true -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover |
纯 IPv6 服务器安装方式
1 | docker run -p 80:80 -p 443:443 -p 3000:3000 \ |
MAIN_NODE_IP_ADDRESS
为机器的公网 IP。
安装成功后,执行
caprover serversetup
命令会被卡在 IPv6 地址不符合 IPv4 这一步。
通过地址加端口号访问 [2b01::ff]:3000 ,默认密码:captain42
。
安装的应用无法绑定域名,外部无法访问
绑定域名
添加 A
记录泛解析:
- Type: A
- Name:
*.something
- IP Address: 服务器 IP 地址
如果需要套上CDN,不建议直接使用二级域名泛解析,而是使用三级域名做泛解析(
*.something.domain.com
),避免遇上SSL证书错误、域名指向IP错误、集群registry异常等问题。
安装运行 CapRover CLI
npm install -g caprover
caprover serversetup
根据提示输入服务器 IP、泛解析根域名(something.domain.com
)、SSL 证书邮箱等信息。
安装完毕后会给出 CapRover 的登录信息,等待数分钟 CapRover 启动完成后即可在浏览器中登录。
相关操作命令
卸载 CapRover
1 | docker service rm $(docker service ls -q) |
重置 CapRover 登录密码
1 | docker service scale captain-captain=0 |
重启 CapRover
1 | docker service update captain-captain --force |
其他问题
应用绑定其它域名时显示1107:verification failed
1107:verification failed
- 确保域名有正确指向服务器 IP;
- 如果使用的是 CloudFlare 的解析服务,应暂用其反代功能(要使用反代功能,则应使用下面的
Nginx 使用自定义SSL
); - 跳过域名验证:
1 | echo "{\"skipVerifyingDomains\":\"true\"}" > /captain/data/config-override.json |
Nginx使用自定义SSL
- 在宿主机中(
/captain/generated/nginx
,安装 CapRover 时,映射的本地目录/caprover
)添加SSL证书(在目录/captain/data/nginx-shared/
下创建cert.pem
、key.pem
); - 在 CapRover 管理面板中,选择需要自定义 ssl 的应用,依次点击
HTTP Settings
→Edit Default Nginx Configurations
- 修改配置
- 原配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14<%
if (!s.forceSsl) {
%>
listen 80;
<%
}
if (s.hasSsl) {
%>
listen 443 ssl http2;
ssl_certificate <%-s.crtPath%>;
ssl_certificate_key <%-s.keyPath%>;
<%
}
%>- 改成:
1
2
3
4
5
6
7
8
9
10
11
12
13
14<%
if (!s.forceSsl) {
%>
listen 80;
<%
}
if (true) { ### <<< CHANGED
%>
listen 443 ssl http2;
ssl_certificate /nginx-shared/custom-ssl_certificate.crt; ### <<< CHANGED
ssl_certificate_key /nginx-shared/custom-ssl_certificate_key.key; ### <<< CHANGED
<%
}
%>
自部署Registry连接TLS超时
一键应用
一键应用(One-Click App)是 CapRover 预先配置好的应用模板,这些模板包含了应用程序运行所需要的所有配置,如:
- 应用程序代码或 Docker 镜像
- 数据库配置
- 环境变量
- 端口映射
- 持久化存储
- CapRover 特有配置
它是如何工作的?
当你在 CapRover 控制面板中选择安装一个一键应用时,CapRover 会:
- 拉取预定义配置:获取该应用程序的模板定义。
- 自动部署:根据模板自动执行一系列部署操作,包括拉取 Docker 镜像、创建容器、配置 Nginx 反向代理、设置 SSL 证书等。
- 准备就绪:在几分钟后,就可以通过配置的域名访问并开始使用该应用。
一键应用的优势
- 极度简化部署:无需深入了解 Docker 、Nginx 或应用程序本身复杂部署细节,大大降低技术门槛;
- 节省时间:从安装到运行,整个过程通常只需几分钟,无需耗费数小时甚至数天进行手动部署;
- 减少错误:预配置的模板经过测试,可以最大限度地减少手动配置可能引入的错误;
一键应用的配置文件
CapRover 及社区维护的 One-Click App 仓库:
本人自己维护的 One-Click App 仓库,主要是根据自身需求创建或调整(移除一键应用内自带的数据库,改成使用全局数据库,避免资源浪费)的配置文件。当前包含的一键应用如下:
- Authorizer:开源的身份认证解决方案。
- Casdoor:IAM/SSO平台。
- n8n-no-database:基于节点的开源工作流自动化工具。
- RSSHub:可拓展的 RSS 流生成器。