因为想要自己 私有化部署一个数据库版本的 Lobe,终于"被迫"开始接触服务器。
首先了解一下常见服务器类型:
-
物理服务器:实实在在的一台机器
-
云服务器(VPS):虚拟出来的服务器(推荐新手使用)
-
共享主机:多人共用一台服务器资源
这里我从男朋友那拿到一台云服务器,安装的是 Debian 操作系统。
连接服务器
Mac/Linux 用户:
ssh root@你的服务器IP
退出
exit
给服务器安装 Docker
Docker 有 Docker Desktop 和 Docker Engine。在服务器上选择 Docker Engine 就行了,轻量高效。服务器安装的操作系统是 Debian,所以按照 Docker 文档,我选择的是 apt repository 的方式。结果发现速度好慢,看来得先给服务器弄一下代理了。
搞定服务器代理配置后回来继续安装 docker
- 先移除可能会冲突的包:
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
- 设置 Docker 的
apt
仓库:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
- 安装 Docker 的包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
结果遇到报错

询问 GPT 后得出:
这个报错的意思是:你要安装的这些 Docker 包(如 docker-ce
、containerd.io
等)系统找不到,也就是 apt 没有识别到这些包可用。
这通常是因为:Docker 的官方源没有正确添加成功,或者签名配置有问题。
而通过 gpt 的方法,试了好几次都还不能解决。最终把 docker engine 卸载,然后重新逐条运行安装命令,就成功解决了。还得是重启大法好~
给服务器配置代理
安装 Clash 内核
首先是安装 Clash 内核,我安装了 Clash Premium(增强版) ,这里需要选择自己的系统架构对应版本。
查看系统架构:
uname -a
得知是 Linux debian 6.1.0-27-amd64 #1 SMP PREEMPT DYNAMIc Debian 6.1.115-1 (2024-11-01) x86 64 GNU/Linux
下载预编译二进制:
# 创建 Clash 目录
mkdir -p ~/clash && cd ~/clash
# 下载 Clash Premium(Linux amd64)
wget https://downloads.clash.wiki/ClashPremium/clash-linux-amd64-v3-2023.08.17.gz
# 解压并赋予执行权限
gzip -d clash-linux-amd64-v3-2023.08.17.gz
mv clash-linux-amd64-v3-2023.08.17.gz clash
chmod +x clash
# 验证是否运行
./clash -v
配置 Clash
配置订阅链接
wget -O ~/clash/config.yaml "YOUR_SUBSCRIPTION_URL"
或者手动编辑
nano ~/clash/config.yaml
运行 Clash
- 前台运行(测试)
cd ~/clash
./clash -f config.yaml
- 后台运行
# 使用 systemd 管理(推荐)
sudo tee /etc/systemd/system/clash.service <<EOF
[Unit]
Description=Clash Proxy Service
After=network.target
[Service]
Type=simple
User=$USER
WorkingDirectory=$HOME/clash
ExecStart=$HOME/clash/clash -f $HOME/clash/config.yaml
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# 启动并设置开机自启
sudo systemctl daemon-reload
sudo systemctl start clash
sudo systemctl enable clash
# 查看状态
systemctl status clash
配置系统代理
Clash 默认监听 7890
(HTTP)和 7891
(SOCKS5),可以通过以下方式使用代理:
临时设置(当前终端生效)
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export ALL_PROXY="socks5://127.0.0.1:7891"
或者 永久生效(对所有用户)
# 修改 /etc/environment
sudo tee -a /etc/environment <<EOF
http_proxy="http://127.0.0.1:7890"
https_proxy="http://127.0.0.1:7890"
ALL_PROXY="socks5://127.0.0.1:7891"
EOF
# 重新加载配置
source /etc/environment
测试代理:
curl -x http://127.0.0.1:7890 https://www.google.com
如果返回 HTML 内容,说明代理成功。
管理 Clash
更新配置(无需重启服务)
# 通过 REST API 热重载配置
curl -X PUT "http://127.0.0.1:9090/configs" -H "Content-Type: application/json" -d '{"path": "$HOME/.config/clash/config.yaml"}'
切换代理节点
curl -X PUT "http://127.0.0.1:9090/proxies/GLOBAL" -H "Content-Type: application/json" -d '{"name": "my-proxy"}'
进阶配置
开启 TUN 模式
修改 config.yaml
:
tun:
enable: true
stack: system
dns-hijack:
- "any:53"
然后重启 Clash:
sudo systemctl restart clash
私有化部署 Lobe
成功安装完 Docker 后,发现 Lobe 官方提供了 Docker 部署 和 Docker Compose 部署方式。由于不知道怎么选择,就做了一下调查:
在私有化部署 Lobe(数据库版本) 时,选择 Docker 还是 Docker Compose 取决于你的需求复杂度、扩展性和管理便捷性。以下是具体对比和推荐方案:
场景 | Docker(单命令) | Docker Compose(多容器编排) |
---|---|---|
适用对象 | 单容器简单部署 | 多容器依赖(如数据库+应用) |
配置复杂度 | 简单(一行命令) | 中等(需编写 `docker-compose.yml`) |
扩展性 | 难(需手动管理依赖) | 易(一键启停多服务) |
网络/存储管理 | 手动配置 | 自动管理网络和卷 |
适用场景 | 快速测试或单服务 | 生产环境或多组件协作 |
总结
- Docker:适合 快速测试,简单粗暴。
- Docker Compose:适合 生产部署,管理多服务依赖。
因此根据我的实际需求选择,长期使用且有数据库,选择了 Docker Compose。于是就跟着文档操作做下去了。过程中碰到下面的几个问题,不过都一一解决了。
生成的安全密钥登陆错误
控制台成功打印安全密钥,但登陆都报错。通过阅读 源码发现默认密码为 123,尝试后成功登陆了。
docker compose up -d 失败

显然这是 Docker Daemon 拉取镜像失败了,需要给 Docker Daemon 配置代理。
- 创建或修改 Docker 服务配置文件:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
- 添加以下内容(根据你的代理类型修改):
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890/"
Environment="HTTPS_PROXY=http://127.0.0.1:7890/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
- 重新加载并重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
- 验证配置是否生效
systemctl show --property=Environment docker
docker 镜像源:https://github.com/dongyubin/DockerHub?tab=readme-ov-file
lobe auth 报错
点击登陆,页面直接报错
next auth: undefined
{"level":30,"time":1743405161265,"pid":30,"hostname":"9f50f89ebc8f","msg":"Error in tRPC handler (lambda) on path: file.getFiles, type: query"}
Error [TRPCError]: UNAUTHORIZED
at <unknown> (.next/server/chunks/54101.js:1:94332)
at f (.next/server/chunks/44817.js:4:74)
at r (.next/server/chunks/44817.js:1:6616)
at <unknown> (.next/server/chunks/77547.js:1:2708)
at Array.map (<anonymous>)
at g (.next/server/chunks/77547.js:1:2245)
at async a (.next/server/chunks/40332.js:1:19301) {
cause: undefined,
code: 'UNAUTHORIZED'
}
仔细查看 network 发现有一个请求 401


根据这个请求中的 client_id, redirect_url 线索,仔细查阅文档,发现是没有给 Casdoor 正确配置应用导致的。