# 部署 - 使用 Docker

:::tip
本章节内容及 Docker 容器化部署功能由社区贡献者 @[@hitechbeijing](https://github.com/hitechbeijing) 提供。
:::

## 容器运行

进入docker目录启动容器编排：

```bash
docker compose up dify-chat -d
```

浏览器访问http://127.0.0.1:8080/dify-chat/

容器默认暴露http端口8080，https端口8443，可修改.env文件配置环境变量

默认配置的docker镜像为多应用模式，如需自定义使用（如单应用模式）请自行构建docker镜像

## 使用certbot全自动签发letsencrypt免费ssl证书

在操作之前请编辑.env文件修改以下几个参数：

```bash
NGINX_HTTPS_ENABLED=true
#域名
NGINX_SERVER_NAME
#待申请证书的域名
CERTBOT_DOMAIN
NGINX_ENABLE_CERTBOT_CHALLENGE=true
#域名邮箱，随便写
CERTBOT_EMAIL
#更多证书申请参数，可留空
CERTBOT_OPTIONS
```

> 注意：请确保你配置的域名可以使用80端口访问到你的 dify-chat 站点，详见：https://eff-certbot.readthedocs.io/en/latest/install.html#alternative-1-docker

在docker目录执行命令即可全自动申请、签发证书：

```bash
docker-compose --profile certbot up
```

签发的证书在[docker/certbot/conf/live/你的域名]目录下。

注意：以上路径的证书文件为替身，如需将证书用在其他项目上需要在[docker/certbot/conf/archive/你的域名]目录下获取真实证书文件

```txt
`privkey.pem`  : the private key for your certificate.
`fullchain.pem`: the certificate file used in most server software.
`chain.pem`    : used for OCSP stapling in Nginx >=1.3.7.
`cert.pem`     : will break many server configurations, and should not be used
                 without reading further documentation (see link below).
```

![注意：证书需要定期续期]
