原文来源: https://forum.gitzaai.com/d/149
运行环境:
记得进入 Flarum 安装目录才能安装插件,新手常常忘记这个,说安装完后台看不到插件。
2. 打开 1panel 面板,进入「 容器」 > 「镜像」 页面
3. 拉取 Sonic 的镜像
```bash
valeriansaliou/sonic:v1.4.8
**说明:版本以 https://github.com/valeriansaliou/sonic 为准**
![Image description](https://flarum.csur.fun/2024-04-30/1714488684-945263-1panel-sonic-2024-04-30-21-14-46.png)
### 4. 创建存储卷,让配置持久化,不会丢失。
4-1. 名称可以随便起一个,以 sonic 为例
![Image description](https://flarum.csur.fun/2024-04-30/1714488744-297564-1panel-sonic-2024-04-30-21-18-12.png)
4-2. 进入存储卷 sonic 的目录,创建一个 config.cfg 文件,并且输入以下内容,保存:
```json
[server]
log_level = "error"
[channel]
inet = "0.0.0.0:1491"
tcp_timeout = 30
auth_password = "SecretPassword"
[channel.search]
query_limit_default = 10
query_limit_maximum = 100
query_alternates_try = 4
suggest_limit_default = 5
suggest_limit_maximum = 20
[store]
[store.kv]
path = "/var/lib/sonic/store/kv/"
retain_word_objects = 1000
[store.kv.pool]
inactive_after = 1800
[store.kv.database]
flush_after = 900
compress = true
parallelism = 2
max_files = 100
max_compactions = 1
max_flushes = 1
write_buffer = 16384
write_ahead_log = true
[store.fst]
path = "/var/lib/sonic/store/fst/"
[store.fst.pool]
inactive_after = 300
[store.fst.graph]
consolidate_after = 180
max_size = 2048
max_words = 250000
说明:auth_password = “SecretPassword” 这是授权连接的密码,可以改,也可以不改。
4-3. 复制这个配置的路径,等下要用到
/var/lib/docker/volumes/sonic/_data/config.cfg
5. 创建容器
5-1. 容器的名称,这个要记下,等下在 Flarum 插件里面需要填入这个容器名称作为通讯地址。
5-2. 选择刚才拉取的镜像 valeriansaliou/sonic:v1.4.8
5-3. 添加暴露端口 1491
因为 Sonic 默认端口是1491,如果你服务器没占用这个端口就行,占用就改其他,记得两边的端口要填写。
5-4. 网络选择 1panel 开头这个(以你实际使用的为准)
5-5. 挂载配置文件
就是填入第4步创建的config.cfg位置,
5-6. 重启规则,可以选择「一直重启」或者「失败后重启」,这样即使服务器重启也不用担心这个容器没启动,导致 Flarum 不能正常搜索。
5-7. 在容器界面,如果你看到容器在运行,并且显示占用的端口号,说明一切正常。否则就检查哪个步骤出错。
6. 启用 flarum-sonic 插件
6-1. 进入 Flarum 管理后台,启用这个插件 Search By Sonic
6-2. 主机这里填写刚才 [步骤5-1] 创建容器的名称
6-3. 端口,如果你之前没改端口,就默认1491,不用填
6-4. 密码,如果你之前配置文件没改密码,就默认,不用填
6-5. 语言环境,输入 cmn
6-6. 以上设置无误后,保存。
7. 打开终端,进入 Flarum 安装目录,输入创建索引的命令:
php flarum sonic:addtoindex
看到如图所示,证明你部署成功了。
然后在论坛搜索一下看看是否可用。
至此,本教程完毕。