
本仓库是将Docker相关内容从https://github.com/xwiki-labs/cryptpad%E5%88%86%E7%A6%BB%E5%87%BA%E6%9D%A5%E7%9A%84%E6%8C%81%E7%BB%AD%E5%8A%AA%E5%8A%9B%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%E3%80%82
官方推荐的部署方法是使用核心仓库提供的example.nginx.conf文件,并通过git、npm(由https://github.com/nvm-sh/nvm%E6%8F%90%E4%BE%9B%EF%BC%89%E5%92%8C%60bower%60%E5%9C%A8%E4%B8%BB%E6%9C%BA%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%9B%B4%E6%8E%A5%E7%AE%A1%E7%90%86%E6%9B%B4%E6%96%B0%E3%80%82
Docker镜像及其支持配置文件由使用它们的社区成员提供,核心开发团队仅提供尽力而为的支持。请注意,核心团队不使用也不测试Docker镜像,因此实际效果可能有所不同。
有关切换到本仓库的更多信息,请参见迁移指南。
重要:本仓库新增了标签为nginx和nginx-alpine的镜像。docker-compose.yml和traefik2.yml示例文件已修改为使用nginx镜像,因为旧版本未提供内容安全策略(CSP)头,而这是将CryptPad正确暴露到互联网的必要条件。建议使用promasu/cryptpad:nginx镜像(参见由Nginx代理的CryptPad)。
CryptPad的挂载文件和文件夹必须由用户ID 4001拥有。可能需要运行sudo chown -R 4001:4001 filename。如果容器引擎使用命名空间来转换容器内的UID和GID,则需要修正UID和GID或在容器内运行该命令。
标签:latest和alpine
文件:Dockerfile和Dockerfile-alpine
此镜像提供由Node服务的CryptPad,不包含证书或CSP配置。需按照CryptPad开发团队的建议(参见https://github.com/xwiki-labs/cryptpad/wiki/Installation-guide#opening-cryptpad-to-the-internet%EF%BC%89%E5%9C%A8%E5%85%B6%E5%90%8E%E6%96%B9%E9%83%A8%E7%BD%B2%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%82
保留此版本是为避免破坏现有部署。如果已有配置正确CSP的反向代理,可继续使用此镜像;否则应使用nginx或nginx-alpine版本。
基本运行:
docker run -d -p 3000:3000 -p 3001:3001 promasu/cryptpad
带自定义配置运行:
docker run -d -p 3000:3000 -p 3001:3001 -v ${PWD}/customize:/cryptpad/customize promasu/cryptpad
带配置文件运行:
docker run -d -p 3000:3000 -p 3001:3001 -v ${PWD}/config.js:/cryptpad/config/config.js promasu/cryptpad
带持久化数据运行:
docker run -d -p 3000:3000 -p 3001:3001 -v ${PWD}/data/blob:/cryptpad/blob \ -v ${PWD}/data/block:/cryptpad/block -v ${PWD}/customize:/cryptpad/customize \ -v ${PWD}/data/data:/cryptpad/data -v ${PWD}/data/files:/cryptpad/datastore promasu/cryptpad
标签:nginx和nginx-alpine
文件:Dockerfile-nginx和Dockerfile-nginx-alpine
此镜像提供由Nginx代理的CryptPad,比独立版本提供更多配置选项(但未设置最低要求选项时无法运行),并由Nginx处理CSP等HTTP头。
docker-entrypoint.sh脚本从CryptPad仓库提供的示例中复制Nginx配置(参见文件https://github.com/xwiki-labs/cryptpad/blob/main/docs/example.nginx.conf%EF%BC%89%EF%BC%8C%E5%B9%B6%E6%9B%BF%E6%8D%A2%E9%83%A8%E7%BD%B2%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E3%80%82
最低配置下,Nginx将在80端口监听未加密的HTTP2请求。大多数浏览器在没有反向代理升级连接的情况下无法连接(如果使用Traefik,参见此处)。要禁用HTTP2,设置环境变量CPAD_HTTP2_DISABLE为true。
若希望Nginx终止TLS连接,需提供完整链证书和密钥,并设置CPAD_TLS_CERT和CPAD_TLS_KEY。这两个变量必须同时设置,入口脚本才会在配置中设置路径。还可通过CPAD_TLS_DHPARAM提供Diffie-Hellman参数。若未提供dhparam.pem文件,容器启动时将生成该文件(注意:此过程耗时较长)。
| 变量名 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|
CPAD_MAIN_DOMAIN | CryptPad主域名(FQDN) | 是 | 无 |
CPAD_SANDBOX_DOMAIN | CryptPad沙箱子域名(FQDN) | 是 | 无 |
CPAD_API_DOMAIN | CryptPad API子域名(FQDN) | 否 | $CPAD_MAIN_DOMAIN |
CPAD_FILES_DOMAIN | CryptPad文件子域名(FQDN) | 否 | $CPAD_MAIN_DOMAIN |
CPAD_TRUSTED_PROXY | 可信代理地址或CIDR | 否 | 无 |
CPAD_REALIP_HEADER | 获取客户端IP的头(X-Real-IP或X-Forwarded-For) | 否 | X-Real-IP |
CPAD_REALIP_RECURSIVE | 指示Nginx递归查找客户端真实IP(on/off)(参见ngx_http_realip_module) | 否 | off |
CPAD_TLS_CERT | TLS证书文件路径 | 否 | 无 |
CPAD_TLS_KEY | TLS私钥文件路径 | 否 | 无 |
CPAD_TLS_DHPARAM | Diffie-Hellman参数文件路径 | 否 | /etc/nginx/dhparam.pem |
CPAD_HTTP2_DISABLE | 禁用HTTP2 | 否 | false |
最低配置运行:
docker run -d -e "CPAD_MAIN_DOMAIN=example.com" -e "CPAD_SANDBOX_DOMAIN=sandbox.example.com" -p 80:80 promasu/cryptpad:nginx
带配置文件运行:
docker run -d -e "CPAD_MAIN_DOMAIN=example.com" -e "CPAD_SANDBOX_DOMAIN=sandbox.example.com" \ -v ${PWD}/config.js:/cryptpad/config/config.js -p 80:80 promasu/cryptpad:nginx
带TLS运行:
docker run -d -e "CPAD_MAIN_DOMAIN=example.com" -e "CPAD_SANDBOX_DOMAIN=sandbox.example.com" \ -e "CPAD_TLS_CERT=/path/to/cert.pem" -e "CPAD_TLS_KEY=/path/to/key.pem" \ -e "CPAD_TLS_DHPARAM=/path/to/dhparam.pem" -v ${PWD}/cert.pem:/path/to/cert.pem \ -v ${PWD}/key.pem:/path/to/key.pem -v ${PWD}/dhparam.pem:/path/to/dhparam.pem \ -p 443:443 promasu/cryptpad:nginx
反向代理后方运行:
docker run -d -e "CPAD_MAIN_DOMAIN=example.com" -e "CPAD_SANDBOX_DOMAIN=sandbox.example.com" \ -e "CPAD_TRUSTED_PROXY=10.0.0.0/8" -e "CPAD_REALIP_HEADER=X-Forwarded-For" \ -e "CPAD_REALIP_RECURSIVE=on" -p 80:80 promasu/cryptpad:nginx
带自定义配置运行:
docker run -d -e "CPAD_MAIN_DOMAIN=example.com" -e "CPAD_SANDBOX_DOMAIN=sandbox.example.com" \ -v ${PWD}/customize:/cryptpad/customize -p 80:80 promasu/cryptpad:nginx
带持久化数据运行:
docker run -d -e "CPAD_MAIN_DOMAIN=example.com" -e "CPAD_SANDBOX_DOMAIN=sandbox.example.com" \ -v ${PWD}/data/blob:/cryptpad/blob -v ${PWD}/data/block:/cryptpad/block \ -v ${PWD}/customize:/cryptpad/customize -v ${PWD}/data/data:/cryptpad/data \ -v ${PWD}/data/files:/cryptpad/datastore -p 80:80 promasu/cryptpad:nginx
基本运行:
docker-compose up
带traefik2标签运行:
docker-compose -f docker-compose.yml -f traefik2.yml up
若将Traefik用作反向代理(例如处理SSL证书),当Nginx监听HTTP2时,CryptPad WebSocket可能无法访问。解决方法是通过设置CPAD_HTTP2_DISABLE环境变量禁用HTTP2。
参见https://github.com/xwiki-labs/cryptpad/issues/633
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务