进阶-登录-数据库-s3

lobechat源码安装

下载源码

wget https://github.com/lobehub/lobe-chat/archive/refs/tags/v1.12.20.tar.gz

解压

解压完成之后会在当前目录下创建lobechat-1.12.20文件夹

tar -xvf v1.12.20.tar.gz 

编译并启动

cd lobechat-1.12.20

# 安装依赖
pnpm install

# 拷贝配置环境变量的配置文件,打开.env.local进行编辑,填写自己的参数
cp .env.example .env.local

# 编译
pnpm run build 

# 启动
pnpm run start 

配置项修改

  • 关于编译和启动的参数都在package.json文件中进行控制,默认启动监听的是127.0.0.1,我们要分享给别人使用的话就得修改监听的ip地址。
  • 打开package.json文件,找到如下配置(scripts->start) 修改配置
  • 例如要监听所有的ip地址就修改为 next start -H 0.0.0.0 -p 3000
  • 修改完之后重新编译,然后再重新启动就可以了

后台服务启动

上述启动后是在终端里面执行的,如果你的终端关闭了,服务也就没法使用了。 当然你也可以使用screen或者tmux开一个窗口来启动,但始终都不是一个优雅的方式。 最好的方式还是以后台服务的方式来启动。

  • 使用 PM2 来管理你的 Node.js 应用程序是一个很好的选择,因为 PM2 提供了进程管理、负载均衡、日志管理等功能。

    • 安装pm2
        npm install -g pm2
      
    • 启动
        cd lobechat-1.12.19
        #name是一个自定义的名称,你可以在后续用它来管理你启动的服务
        pm2 start npx --name "lobe-chat" -- next start -H 0.0.0.0 -p 3210
      
  • 启动后你可以通过检查端口的方式查看是否启动成功
      # yum install net-tools 如果没有netstat命令的话执行此命令安装
      netstat -nltpa 
    
  • 下面是一些关于pm2其它的操作
    • 停止
        pm2 stop lobe-chat
      

      停止

    • 删除
        pm2 delete lobe-chat
      

      删除

    • 查看日志
        pm2 logs lobe-chat
      
    • 查看状态
        pm2 status lobe-chat
      

      查看日志

    • 将pm2的服务加入开启启动 执行完上述启动命令(pm2 start lobechat)之后,再执行pm2 save命令保存当前运行的pm2的进程列表。 然后我们来设置pm2的开机启动,设置开启启动非常的简单,一句命令就搞定:
        pm2 startup systemd
        # macos 
        pm2 startup launchd 
      

      设置完成之后,结果如下图所示 以后如果遇到关机重启或者重新开机之后就会自动拉起前面pm2保存的列表

数据库安装

本文演示环境为ubuntu20,postgresql的版本为16.4

安装编译依赖

sudo apt-get update
sudo apt-get install libicu-dev libreadline-dev

下载源码包


postgresql官网下载最新的14版本包:
https://www.postgresql.org/ftp/source/

wget https://ftp.postgresql.org/pub/source/v16.4/postgresql-16.4.tar.gz

编译安装


tar -xvf postgresql-16.4.tar.gz
cd postgresql-16.4/


编译参数:

# --prefix 为指定的安装目录,按照自己的实际情况就行修改
./configure  --prefix=/opt/pgsql

make -j8 && make install 

初始化

sudo -i -u postgres
初始化
/opt/pgsql/bin/initdb -D /opt/pgsql/data


添加密码

/opt/pgsql/bin/psql 

执行完上述命令之后会进入到psql的交互界面,再执行以下sql语句来添加密码

  • 将’new_password’修改为自己的密码,如果你的用户不是postgres的话也进行相应的修改
    ALTER USER postgres WITH PASSWORD 'new_password';
    
编辑配置文件让密码生效

打开/opt/pgsql/data/pg_hba.conf文件,翻到最后几行,将默认local/ipv4/ipv6对应的连接的trust改为md5,方便起见将三个都修改,当然你也可以自定义。

  • 注意,一般情况下你会看到有6行,下面的三行有replacation是关于数据库备份的,可以先暂时不用管,保持默认就行,我们只需要修改上面的三行。
vi /opt/pgsql/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             192.168.100.0/24            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

修改监听IP和端口

默认情况下,数据库只打开了本地(localhost)的5432端口连接,如果你想在另外的机器上进行连接,则需要修改postgresql.conf这个配置文件。 找到listen_addresses这一行,可以设置以下几种:

  • listen_addresses = ‘*’ 表示监听所有的地址
  • listen_addresses = ‘192.168.100.21’ 表示只监听192.168.100.21这个ip地址(假如你有多个网卡的话,会有多个ip地址,你只想监听某一个)
  • listen_addresses = ‘192.168.100.21,127.0.0.1’ 多个ip地址用,分割 端口的话修改port 这个参数就可以,按自己的情况来,默认是5432
vi /opt/pgsql/data/postgresql.conf

listen_addresses = '192.168.100.21,127.0.0.1'
port = 5432

重载配置

上述修改都完成后,我们就可以重载配置并且进行启动了

  • -D参数表示指定数据库的数据目录
  • -l 表示日志文件
    /opt/pgsql/bin/pg_ctl reload -D /opt/pgsql/data
    /opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile start
    

测试连接

执行完成start的命令之后,pgsql的数据库就启动了,我们可以测试下是否设置成功

  • 使用数据库连接的客户端(navicat/others)
  • 执行命令,按照提示输入刚才配置的密码
    psql -U postgres -h 127.0.0.1 -W
    

将数据库加入后台服务

上述的启动方式虽然可以能够让我们的lobechat服务正常使用,但是不够优雅。所有我们要配置能够以后台(background/daemon service)方式启动。

创建 PostgreSQL 服务文件

首先需要为 PostgreSQL 创建一个 systemd 服务文件。通常这个文件位于 /etc/systemd/system/ 目录下。

sudo vi /etc/systemd/system/postgresql.service
# 在该文件中添加以下内容(根据你的 PostgreSQL 安装路径和用户进行调整):

[Unit]
Description=PostgreSQL RDBMS
After=network.target

[Service]
Type=simple
User=postgres
Group=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecStop=/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop
Restart=on-failure

[Install]
WantedBy=multi-user.target
重新加载 systemd 配置

创建或修改完服务文件后,需要重新加载 systemd 配置:

sudo systemctl daemon-reload
启动 PostgreSQL 服务

使用以下命令启动 PostgreSQL 服务

sudo systemctl start postgresql
设置 PostgreSQL 服务开机自启
sudo systemctl enable postgresql
查看服务状态
sudo systemctl status postgresql

安装pgvector

参考资料

pgvector 是一个 PostgreSQL 扩展,用于处理向量(vectors),特别是高维度向量。这种类型的扩展在处理机器学习、数据科学和向量搜索等应用中非常有用。向量搜索在推荐系统、图像识别、自然语言处理等领域有广泛的应用。

小提示

编译安装的时候会搜索当前数据库的pg_conf这个命令,默认情况下在你安装的pgsql的bin/目录下,比如我的就是在/opt/pgsql/bin这个目录下。 如果这个目录没有在当前的环境变量里面的话,会提示找不到这个文件。所以在安装之前,需要将这个目录加入到环境变量中。

添加环境变量

  • 打开/etc/profile ,在末尾添加
    export PATH=/opt/pgsql/bin:$PATH 
    
  • 再执行命令让环境变量生效
    source /etc/profile 
    

源码安装

https://github.com/pgvector/pgvector.git
cd /tmp
git clone --branch v0.7.4 https://github.com/pgvector/pgvector.git
cd pgvector
make
make install # may need sudo

版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:《 lobechat本地部署进阶 》

本文链接:http://0.0.0.0:3015/tech/lobechat%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2%E8%BF%9B%E9%98%B6.html

本文最后一次更新为 天前,文章中的某些内容可能已过时!