Initial commit: knowledge base

This commit is contained in:
2026-08-05 17:12:58 +08:00
commit 695bed03c4
6 changed files with 400 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
# 服务器配置
## 基本信息
| 项目 | 值 |
|------|-----|
| 平台 | 阿里云轻量应用服务器 |
| 地域 | 中国香港 |
| 实例名 | Docker-xszn |
| 实例ID | d97779334f2b4a81a3b6cf626a377c65 |
| 公网IP | `8.210.128.95` |
| 私网IP | `172.19.48.250` |
| 配置 | 2核2G 40G ESSD |
| 镜像 | Docker 26.1.3 |
| 系统 | Alibaba Cloud Linux |
| 到期 | 2027年8月5日 |
| 月费 | ~39元 |
## SSH 连接
### 本地 SSH Key
```
~/.ssh/lobe_server (RSA 2048)
```
### 连接命令
```bash
ssh -i ~/.ssh/lobe_server root@8.210.128.95
```
## 防火墙规则
| 端口 | 协议 | 用途 |
|------|------|------|
| 22 | TCP | SSH |
| 80 | TCP | HTTP → Nginx |
| 443 | TCP | HTTPS → Nginx |
| 3210 | TCP | LobeHub 内部端口(不对外) |
## 域名
| 项目 | 值 |
|------|-----|
| 域名 | `suyushi.top` |
| 注册商 | Namesilo |
| DNS A 记录 | `@``8.210.128.95` |
| DNS CNAME | `www``suyushi.top` |
+106
View File
@@ -0,0 +1,106 @@
# LobeHub Docker 部署流程
## 部署日期
2026-08-05
## 目录结构
```
/lobehub/
├── docker-compose.yml
├── .env
├── bucket.config.json
├── searxng-settings.yml
└── data/ # 持久化数据(Postgres、Redis、RustFS
```
## 安装步骤
### 1. 下载配置
```bash
mkdir /lobehub && cd /lobehub
curl -O https://raw.githubusercontent.com/lobehub/lobehub/HEAD/docker-compose/deploy/docker-compose.yml
curl -O https://raw.githubusercontent.com/lobehub/lobehub/HEAD/docker-compose/deploy/.env.example
mv .env.example .env
```
### 2. 修改 .env 关键配置
```bash
# 域名
APP_URL=https://suyushi.top
# 端口(内部使用 3210
LOBE_PORT=3210
# 安全密钥(必须用 openssl rand -base64 32 生成)
KEY_VAULTS_SECRET=<随机生成>
AUTH_SECRET=<随机生成>
# 数据库密码
POSTGRES_PASSWORD=<你设的密码>
```
### 3. 修复 rustfs-init 依赖
rustfs-init 容器因缺少 bucket.config.json 会失败,修改 docker-compose.yml 将 rustfs-init 的 condition 从 `service_completed_successfully` 改为 `service_started`
```bash
sed -i '/rustfs-init:/,/condition: service_completed_successfully/{s/condition: service_completed_successfully/condition: service_started/}' docker-compose.yml
```
### 4. 启动
```bash
docker compose up -d
```
## 核心服务
| 服务 | 容器名 | 端口 | 说明 |
|------|------|------|------|
| LobeHub | lobehub | 3210(内部) | Web 应用主程序 |
| Postgres | lobe-postgres | 5432 | 数据库(ParadeDB + pgvector + pg_search |
| Redis | lobe-redis | 6379 | 缓存和会话 |
| RustFS | lobe-rustfs | 9000 | S3 兼容对象存储 |
| SearXNG | lobe-searxng | 8080 | 隐私搜索引擎 |
## AI 模型配置
只启用 DeepSeek V4 Flash,禁用其他所有提供商:
```bash
# .env 配置
DEEPSEEK_API_KEY=sk-xxxxxxxx
DEEPSEEK_PROXY_URL=https://api.deepseek.com/v1
OPENAI_API_KEY=sk-xxxxxxxx
OPENAI_PROXY_URL=https://api.deepseek.com/v1
OPENAI_MODEL_LIST=-all,+deepseek-v4-flash=DeepSeek V4 Flash<131072:fc>
# 禁用其他提供商
ENABLED_OPENAI=1
ENABLED_ANTHROPIC=0
ENABLED_GOOGLE=0
... (所有其他 ENABLED_*=0)
# 禁用模型市场
FEATURE_FLAGS=-market,-welcome_suggest
```
> **注意:** DeepSeek API 兼容 OpenAI 格式,所以通过 OPENAI 通道接入,但实际调用的是 DeepSeek。
## 常用管理命令
```bash
cd /lobehub
# 查看所有容器状态
docker compose ps
# 查看 lobe 日志
docker compose logs lobe | tail -50
# 重启 lobe
docker compose restart lobe
# 完全重建 lobe(.env 修改后必须用这个)
docker compose down lobe && docker compose up -d lobe
# 查看全部日志
docker compose logs 2>&1 | tail -100
```
+65
View File
@@ -0,0 +1,65 @@
# HTTPS + Nginx 配置
## 架构
```
浏览器 (https://suyushi.top:443)
→ Nginx (端口 80/443)
→ LobeHub 容器 (内部 127.0.0.1:3210)
```
## Nginx 安装
```bash
yum install -y nginx
```
## Nginx 配置
文件路径:`/etc/nginx/conf.d/lobehub.conf`
```nginx
server {
listen 80;
server_name suyushi.top www.suyushi.top;
location / {
proxy_pass http://127.0.0.1:3210;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
## Let's Encrypt SSL 证书
### 安装 Certbot
```bash
yum install -y certbot python3-certbot-nginx
```
### 签发证书
```bash
certbot --nginx -d suyushi.top -d www.suyushi.top --non-interactive --agree-tos --email panghusys2025@gmail.com --redirect
```
> 证书自动续期已配置,90天有效,到期前自动更新
## 启动 Nginx 自启
```bash
systemctl enable nginx
```
## 端口冲突处理
如果 nginx 起不来报 `Address already in use:80`
```bash
fuser -k 80/tcp # 杀掉占用端口的进程
systemctl start nginx
```
+84
View File
@@ -0,0 +1,84 @@
# 环境变量和注意事项
## 当前环境变量清单(/lobehub/.env
### 核心域名
```
APP_URL=https://suyushi.top
INTERNAL_APP_URL=http://localhost:3210
LOBE_PORT=3210
```
### 安全密钥
```
KEY_VAULTS_SECRET=<openssl rand -base64 32 生成>
AUTH_SECRET=<openssl rand -base64 32 生成>
```
### 数据库
```
POSTGRES_PASSWORD=<密码>
LOBE_DB_NAME=lobechat
DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}
```
### AI 模型
```
DEEPSEEK_API_KEY=sk-b2788f9928e64162911a9be0141acd2e
DEEPSEEK_PROXY_URL=https://api.deepseek.com/v1
OPENAI_API_KEY=sk-b2788f9928e64162911a9be0141acd2e
OPENAI_PROXY_URL=https://api.deepseek.com/v1
OPENAI_MODEL_LIST=-all,+deepseek-v4-flash=DeepSeek V4 Flash<131072:fc>
```
### 提供商开关
```
ENABLED_OPENAI=1
其他所有 ENABLED_* = 0
```
### 界面
```
FEATURE_FLAGS=-market,-welcome_suggest
```
## 踩坑记录
| 坑 | 原因 | 解决 |
|------|------|------|
| `.env` 修改后不生效 | `docker compose restart` 不重新读 .env | 用 `docker compose down lobe && docker compose up -d lobe` |
| KEY_VAULTS_SECRET 报错 | 手动填的字符串不合法 | 必须用 `openssl rand -base64 32` 生成 |
| rustfs-init 失败 | 缺少 bucket.config.json | 改 docker-compose.yml 跳过该依赖 |
| nginx 端口 80 被占 | lobe 之前占用了 80 | `fuser -k 80/tcp` 杀进程 |
| APP_URL=https 重定向到 HTTPS | lobe 把 HTTP 请求重定向到 HTTPS | 先设 HTTP,配完 nginx + SSL 再改回 HTTPS |
| SearXNG 反复重启 | 配置问题 | 不影响核心功能,可忽略 |
| 夸克浏览器打不开 | 浏览器兼容性 | 用 Chrome/Safari |
## DNS 管理
注册商:Namesilo
API Key`b53438acc2344d7ccc8a2e9e312a9e0e766f59c46badde7abdf572c7bf15a09e`
### DNS 列表 API
```bash
curl "https://www.namesilo.com/api/dnsListRecords?version=1&type=json&key=<KEY>&domain=suyushi.top"
```
### 添加记录
```bash
curl "https://www.namesilo.com/api/dnsAddRecord?version=1&type=json&key=<KEY>&domain=suyushi.top&rrtype=A&rrhost=&rrvalue=8.210.128.95&rrttl=3600"
```
### 删除记录
```bash
curl "https://www.namesilo.com/api/dnsDeleteRecord?version=1&type=json&key=<KEY>&domain=suyushi.top&rrid=<RECORD_ID>"
```
## 月度费用
| 项目 | 月费 |
|------|------|
| 阿里云轻量香港服务器 | ~39元 |
| 域名 suyushi.top | ~2元(年摊) |
| DeepSeek API | ~30-50元 |
| **合计** | **~70-90元** |
+85
View File
@@ -0,0 +1,85 @@
# 服务器加固(2026-08-05
## 1. Swap 交换空间
**原因:** 2G 内存没有 Swap,内存爆了直接 OOM 杀进程。
```bash
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
```
**验证:** `swapon --show``/swapfile file 2G`
## 2. 停止 SearXNG
**原因:** 不用搜索功能,容器每分钟重启一次浪费 CPU。
```bash
cd /lobehub
docker compose stop searxng
docker compose rm -f searxng
```
> 注意:不要运行 `docker compose up -d`(会重建 SearXNG),单服务用 `docker compose up -d lobe`
## 3. 开机自启
创建 `/etc/systemd/system/lobehub.service`
```ini
[Unit]
Description=LobeHub Docker Stack
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/lobehub
ExecStart=/usr/bin/docker compose up -d lobe postgresql redis rustfs
ExecStop=/usr/bin/docker compose stop
[Install]
WantedBy=multi-user.target
```
```bash
systemctl daemon-reload
systemctl enable lobehub docker nginx
```
## 4. 每日自动备份
脚本位置:`/lobehub/backup.sh`
```bash
#!/bin/bash
DB_PASS=$(grep POSTGRES_PASSWORD /lobehub/.env | cut -d= -f2)
DATE=$(date +%Y%m%d_%H%M%S)
FILE=/lobehub/backups/lobehub_$DATE.sql.gz
docker compose -f /lobehub/docker-compose.yml exec -T postgresql pg_dump -U postgres lobechat | gzip > $FILE
find /lobehub/backups -name '*.sql.gz' -mtime +7 -delete
echo "Backup: $FILE ($(du -h $FILE | cut -f1))"
```
Cron 任务(每天凌晨 3 点):
```
0 3 * * * /lobehub/backup.sh >> /lobehub/backups/backup.log 2>&1
```
备份目录:`/lobehub/backups/`,保留最近 7 天。
## 最终状态
| 项目 | 值 |
|------|-----|
| 内存 | 1.0G/1.8G + 2.0G Swap |
| 磁盘 | 9.2G/40G (25%) |
| 容器数 | 4lobehub, postgres, redis, rustfs |
| SearXNG | 已停止删除 |
| 自启 | Docker + Nginx + LobeHub 全部 enabled |
| 备份 | 每日凌晨 3 点,保留 7 天 |
+13
View File
@@ -0,0 +1,13 @@
# 部署运维文档
suyushi.top 全线部署运维记录。
## 文档
| 文件 | 内容 |
|:--|:--|
| `01-服务器配置.md` | 阿里云轻量香港、SSH、域名 |
| `02-LobeHub部署流程.md` | Docker Compose 四步部署 |
| `03-HTTPS配置.md` | Nginx + Let's Encrypt SSL |
| `04-环境变量和注意事项.md` | .env 配置 + 踩坑 |
| `05-服务器加固.md` | Swap、自启、备份 |