管理员

# 运行你自己的 Welley 服务器

我们的命令行工具可以在一台 Linux 机器上装好 Welley 需要的一切。云服务器可以用，你自己的硬件也可以。

[阅读：快速开始：最小化 Welley 部署](https://welley.com/zh/administrators/docs/quick-start/) [阅读：Welley CLI](https://welley.com/zh/administrators/docs/cli/) [安装 Docker Engine](https://docs.docker.com/engine/install/)

我们计划将来把 Welley 开源。发布日期和许可证目前都还没有公布。

## 准备好主机、DNS 和邮件

这些是快速入门里的起步要求。你需要多大的容量，取决于用户数量和工作负载。

### Linux 主机

-   Ubuntu 24.04 LTS，或类似的较新发行版。
-   从 2 vCPU、4 GB 内存和 60 GB 磁盘起步。
-   使用固定的公网 IPv4 地址，以及一个有 sudo 权限的非 root 用户。

### 网络

-   允许从互联网访问入站 TCP 80 和 443，允许从你自己的网络访问 TCP 22。
-   请保持 80 端口空闲，用于证书验证和每周一次的证书续期。

### 站点 DNS

-   把你的域名和 storage.<domain> 指向主机的 IP 地址。
-   请在安装前创建这两条记录。CLI 会检查它们，如果没有解析到这台主机就会停止。

### SMTP 和管理员邮箱

-   请准备好 SMTP 主机、用户、密码和发件地址。默认使用 587 端口的 STARTTLS。
-   你还需要一个管理员邮箱，用于首次登录和找回密码。

### 邮件 DNS

-   为发件地址所在的域名设置 SPF、DMARC，以及你的邮件服务商生成的 DKIM。
-   请使用服务商给出的准确 SPF 值。把它合并到你现有的 SPF 记录里，不要再添加第二条。
-   如果缺少 SPF 或 DMARC，CLI 会提醒你。它无法检查你的服务商的 DKIM 选择器。

## 安装 Docker Engine 和 Compose

请按 Docker 官方针对你的 Linux 发行版的说明操作，然后让你的部署用户拥有使用 Docker 的权限。

[Docker Engine 安装](https://docs.docker.com/engine/install/)

### 把用户加入 Docker 组

把 <user> 换成你的非 root 部署用户。运行这条命令后，请退出登录再重新登录。

```
sudo usermod -aG docker <user>
```

### 检查 Docker 和 Compose

这两条命令都要能在该用户下正常运行。

```
docker ps
docker compose version
```

## 下载 CLI

请选择与你运行 CLI 的机器相匹配的二进制文件。部署主机本身必须运行 Linux。

### Linux，x86-64

```
curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=linux/amd64" -o wlycli
chmod +x wlycli
./wlycli -v
```

### Linux，ARM64

```
curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=linux/arm64" -o wlycli
chmod +x wlycli
./wlycli -v
```

### macOS，Apple silicon

```
curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=darwin/arm64" -o wlycli
chmod +x wlycli
./wlycli -v
```

### macOS，Intel

```
curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=darwin/amd64" -o wlycli
chmod +x wlycli
./wlycli -v
```

-   这些命令会从稳定通道下载，并显示 CLI 的版本。
-   每次发布新版本，版本号都会变。安装时请参考最新的 CLI 文档。

## 创建部署

在你准备好的 Linux 主机上运行这条命令。请把示例中的域名、邮箱和 SMTP 值换成你自己的。

```
./wlycli deploy create \
-d example.com \
-e admin@example.com \
--smtp-host smtp.example.com \
--smtp-user "$MAIL_USER" \
--smtp-password "$MAIL_PASSWORD" \
--smtp-from noreply@example.com
```

| 设置 | 默认值 |
| --- | --- |
| 安装目录 | ~/.welley/<project>。示例域名生成的项目名是 example\_com。 |
| 数据库 | 内置的 PostgreSQL，数据放在安装目录下。 |
| 组件 | Welley 平台、RAG 管道、Nginx、Redis 和 PostgreSQL，另有维护用的容器。 |
| 证书 | 通过 Certbot 使用 Let’s Encrypt，每周续期。 |
| 媒体 | 上传的文件和静态文件放在 https://storage.<domain>。 |
| 更新 | 稳定通道，每天检查一次。更新过程会尽量避免停机。 |
| 可选服务 | 最简配置不会添加托管数据库、CDN、遥测或 Slack 集成。 |

-   运行之前，请先把 MAIL\_USER 和 MAIL\_PASSWORD 设为你的 SMTP 凭据。
-   快速入门要求带上这六个参数。
-   这条命令会检查 DNS、写入部署文件、用 Certbot 获取证书，并启动容器。
-   deploy 命令是 deployment 的别名。

## 登录并检查结果

生成的管理员密码在平台日志里。请不要泄露这部分输出。

### 查找初始密码

这个容器名对应的是 example.com。如果用你自己的域名，请修改项目名。

```
docker logs example_com-platform-blue-1 | grep "Auto-init complete"
```

### 登录

打开你的域名，用你通过 -e 指定的管理员邮箱登录。请马上修改生成的密码。

### 检查容器

按照快速入门，你应该能看到 nginx、platform-blue、rag-pipeline-blue、postgres、redis、autoheal 和 snoopy。

```
docker ps
```

## 用 CLI 做管理

CLI 还提供了调用平台 API 的命令。你的账号仍然需要具备每个操作所需的权限。

-   运行某个操作之前，请先在命令帮助里查看它当前的参数。
-   login 命令需要 API 基础 URL、邮箱和密码。它会保存返回的会话令牌。
-   目前，login 命令会在成功日志里输出会话令牌。请注意不要泄露这段输出。

命令组：`accounts`, `posts`, `apps`, `emojis`, `feeds`, `reports`, `rules`, `settings`。

### 显示可用命令

```
./wlycli --help
```

### 显示部署命令

```
./wlycli deployment --help
```

### 显示登录选项

```
./wlycli login --help
```

### 显示设置选项

```
./wlycli settings --help
```

## 更新与恢复

默认情况下，部署每天会检查一次稳定版更新。服务器管理员可以在管理界面中管理版本。

-   如果你的部署文件仍然有效，但有些容器出了问题，快速入门会让你运行 restart，它会重新创建这些容器。
-   只要项目目录或其中的容器还在，create 就不会再次运行。
-   强制删除选项会删除部署文件和内置数据库。它不是恢复步骤，也不会保留你的数据。
-   deploy-server 技能仍然使用 deployment update 这个名称。当前的 CLI 改用 deployment auto-update。手动维护之前，请先查看当前 CLI 的帮助。

### 用现有部署重新创建容器

```
./wlycli deploy restart -d example.com
```

根据你保存的配置重新创建容器。不会删除部署数据。

## 用 AI 助手部署

如果你的 AI 助手支持 SKILL.md 包，可以下载我们官方的 deploy-server 技能。它会引导你完成 DigitalOcean 部署。

目前这个技能只支持 DigitalOcean。CLI 快速入门也适用于其他云服务和你自己的 Linux 主机。

### 使用方法

-   解压软件包，然后按你的助手安装技能的方式加载 deploy-server 目录。
-   让助手使用 $deploy-server。
-   技能会向你询问域名、DNS 访问权限、SSH 设置、SMTP 信息和管理员邮箱。
-   它可以设置 DigitalOcean 虚拟机，如果你需要，还可以设置托管的 PostgreSQL 数据库。它会和你确认部署所需的信息以及托管数据库的价格。

### 下载之前

-   这个软件包是原始技能的原样副本。
-   其中的下载和更新示例已经过时。请到本网站的快速入门获取当前稳定版的下载链接。维护之前请先查看 CLI 帮助。
-   这个技能不附带云服务凭据或运行中的服务器，我们也不能保证它适用于所有助手。

软件包里有 `SKILL.md`、`agents/openai.yaml`和`references/digitalocean.md`。两种下载包含的文件相同。

[下载 deploy-server.zip（10.7 KB）](https://welley.com/downloads/deploy-server.zip) [下载 deploy-server.skill（10.7 KB）](https://welley.com/downloads/deploy-server.skill)

## 参考文档

完整的 CLI 文档和部署技能文件。无需账号即可在这里阅读。

-   [**Welley CLI** docs/index.md](https://welley.com/zh/administrators/docs/cli/)
-   [**快速开始：最小化 Welley 部署** docs/quick-start.md](https://welley.com/zh/administrators/docs/quick-start/)
-   [**部署服务器** skills/deploy-server/SKILL.md](https://welley.com/zh/administrators/docs/deploy-server-skill/)
-   [**openai.yaml** skills/deploy-server/agents/openai.yaml](https://welley.com/zh/administrators/docs/deploy-server-openai-yaml/)
-   [**DigitalOcean 参考** skills/deploy-server/references/digitalocean.md](https://welley.com/zh/administrators/docs/deploy-server-digitalocean/)
