Skip to content

FHU-yezi/JTools

Repository files navigation

部署

环境

  • Python 3.9+
  • PostgreSQL

数据库准备

本服务的部分模块依赖外部数据源 jianshujpep 数据库,您需事先下载并进行导入。

创建用户:

CREATE ROLE jtools LOGIN PASSWORD 'jtools';

创建数据库:

CREATE DATABASE jtools WITH OWNER = jtools;
CREATE DATABASE logs;

创建扩展:

jianshu 数据库)

CREATE EXTENSION IF NOT EXISTS pg_trgm;

为用户授权:

logs 数据库)

GRANT CREATE ON SCHEMA public TO jtools;

jianshu 数据库)

GRANT SELECT ON TABLE article_earning_ranking_records TO jtools;
GRANT SELECT ON TABLE lottery_win_records TO jtools;
GRANT SELECT ON TABLE users TO jtools;

jpep 数据库)

GRANT SELECT ON TABLE ftn_macket_records TO jtools;
GRANT SELECT ON TABLE ftn_orders TO jtools;

创建索引:

jianshu 数据库)

CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_article_earning_ranking_records_ranking ON article_earning_ranking_records (ranking);

CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_lottery_win_records_time ON lottery_win_records (time);
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_lottery_win_records_user_slug ON lottery_win_records (user_slug);
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_lottery_win_records_award_name ON lottery_win_records (award_name);

CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_users_name ON users USING gin (name gin_trgm_ops);

配置

复制 config.example.toml 文件,将其重命名为 config.toml

cp config.example.toml config.toml

如果您使用 Docker 进行部署:

  • jtools_postgres.host 填写 postgres
  • jianshu_postgres.host 填写 postgres
  • jpep_postgres.host 填写 postgres
  • uvicorn.host 填写 0.0.0.0

同时,您需要填写正确的 postgres.userpostgres.password

word_split_access_key 为具有 NLP 服务 使用权限的阿里云用户 Access Key,您可在 RAM 访问控制 中创建用户,并为其赋予 AliyunNLPReadOnlyAccess 权限。

该项非必填,其内容为空字符串时,「文章词云图」模块不可用。

使用 Docker 部署

创建 Docker 网络:

docker network create postgres

您需要在 postgres 网络的 5173 端口上运行一个 PostgreSQL 服务,身份验证相关信息请参考 部署 - 数据库准备 一节。

如您希望更换 Docker 网络名称或服务端口号,请同时调整 config.toml 中的相关配置。

启动服务:

docker compose up -d

您可在 http://localhost:8602 访问服务。

传统部署(不推荐)

下载 Python 项目管理工具 uv

pip install uv

安装依赖库(将自动创建虚拟环境):

uv install

下载前端运行时 Bun

curl -fsSL https://bun.sh/install | bash

安装依赖库:

bun install

您需要在 5173 端口上运行一个 PostgreSQL 服务,身份验证相关信息请参考 部署 - 数据库准备 一节。

如您希望更换服务端口号,请同时调整 config.toml 中的相关配置。

启动后端服务:

cd backend
uv run main.py

启动前端服务:

cd frontend
bun run dev

您可在 http://localhost:5173 访问服务。