Initial commit: knowledge base
This commit is contained in:
+47
@@ -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` |
|
||||
@@ -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
|
||||
```
|
||||
@@ -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
|
||||
```
|
||||
@@ -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
@@ -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%) |
|
||||
| 容器数 | 4(lobehub, postgres, redis, rustfs) |
|
||||
| SearXNG | 已停止删除 |
|
||||
| 自启 | Docker + Nginx + LobeHub 全部 enabled |
|
||||
| 备份 | 每日凌晨 3 点,保留 7 天 |
|
||||
Reference in New Issue
Block a user