Kirameku 全栈博客系统宝塔面板搭建教程

Kirameku 全栈博客系统宝塔面板搭建教程

# Kirameku 全栈博客系统宝塔面板搭建教程

## 项目简介

Kirameku 是一个现代化的全栈博客系统,包含以下组件:

**前端**: Next.js 16 + React 19 + TypeScript

**后端**: FastAPI + SQLModel + PostgreSQL

**管理面板**: Vue 3 + Element Plus

**阅读服务**: reader-master (Java/Kotlin)

本教程介绍如何使用宝塔面板在单台服务器上完整部署所有组件。

## 服务器要求

**CPU**: 2核及以上(编译Next.js需要)

**内存**: 4GB及以上

**硬盘**: 20GB及以上

**系统**: CentOS 8+/Ubuntu 20.04+/Debian 11+

**域名**: 已解析到服务器IP

## 第一步:安装宝塔面板

### 1. 安装宝塔

**CentOS:**

“`bash

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

“`

**Ubuntu/Debian:**

“`bash

wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

“`

### 2. 登录宝塔面板

安装完成后,会显示面板地址、用户名和密码:

“`

外网面板地址: http://服务器IP:8888/随机字符

内网面板地址: http://内网IP:8888/随机字符

username: xxxxxx

password: xxxxxx

“`

在浏览器中打开外网面板地址,使用提供的账号密码登录。

### 3. 安装基础环境

登录宝塔后,会弹出”推荐安装套件”窗口,选择以下环境:

**Nginx** – 最新稳定版

**MySQL** – 可以不装(我们用PostgreSQL)

**PHP** – 可以不装

**phpMyAdmin** – 可以不装

**Pure-Ftpd** – 可选

点击”一键安装”,等待安装完成。

## 第二步:安装必要软件

### 1. 安装PostgreSQL

在宝塔面板左侧菜单点击”软件商店”,搜索并安装:

**PostgreSQL** – 安装最新版本(15或16)

### 2. 安装PM2管理器

在软件商店搜索并安装:

**PM2管理器** – 用于管理Node.js进程

### 3. 安装Java

在终端中执行:

“`bash

# 安装OpenJDK 17

yum install -y java-17-openjdk-devel  # CentOS

apt install -y openjdk-17-jdk         # Ubuntu/Debian

# 验证安装

java -version

“`

### 4. 安装Python 3.11

“`bash

# CentOS 8+

dnf install -y python3.11 python3.11-pip

# Ubuntu 22.04+

apt install -y python3.11 python3.11-venv python3.11-pip

# 验证

python3.11 –version

“`

## 第三步:配置数据库

### 1. 启动PostgreSQL

在宝塔面板点击”数据库”,选择”PostgreSQL管理器”:

1. 点击”启动”按钮启动PostgreSQL服务

2. 点击”设置”修改配置文件(可选)

### 2. 创建数据库和用户

在终端中执行:

“`bash

# 切换到postgres用户

sudo -u postgres psql

# 在PostgreSQL命令行中执行

CREATE DATABASE kirameku;

CREATE USER kirameku_user WITH PASSWORD ‘your_secure_password’;

GRANT ALL PRIVILEGES ON DATABASE kirameku TO kirameku_user;

\q

“`

## 第四步:部署项目

### 1. 创建网站目录

在宝塔面板点击”文件”,进入 `/www/wwwroot` 目录:

1. 点击”新建目录”,创建 `kirameku` 文件夹

2. 进入 `kirameku` 文件夹

### 2. 克隆项目

在终端中执行:

“`bash

cd /www/wwwroot/kirameku

git clone https://github.com/Xinghongia/Kirameku.git

“`

或者在宝塔文件管理器中:

1. 点击”终端”按钮

2. 执行上述命令

### 3. 设置目录权限

在宝塔文件管理器中:

1. 右键点击 `Kirameku` 文件夹

2. 选择”权限”

3. 设置为 `755`,所有者 `www`

## 第五步:部署后端(FastAPI)

### 1. 进入后端目录

“`bash

cd /www/wwwroot/kirameku/Kirameku/backend

“`

### 2. 创建Python虚拟环境

“`bash

python3.11 -m venv venv

source venv/bin/activate

“`

### 3. 安装依赖

“`bash

pip install -r requirements.txt

“`

### 4. 配置环境变量

“`bash

cp .env.example .env

vi .env

“`

编辑 `.env` 文件:

“`env

# 数据库配置

DATABASE_URL=postgresql://kirameku_user:your_secure_password@localhost:5432/kirameku

# JWT密钥(生成随机字符串)

SECRET_KEY=your_random_secret_key_here

# 环境

ENVIRONMENT=production

# CORS(前端域名)

CORS_ORIGINS=[“https://yourdomain.com”,”https://admin.yourdomain.com”]

“`

### 5. 初始化数据库

“`bash

alembic upgrade head

“`

### 6. 使用PM2启动后端

在宝塔面板点击”软件商店” -> “PM2管理器”:

1. 点击”添加项目”

2. 填写以下信息:

   – **启动文件**: `/www/wwwroot/kirameku/Kirameku/backend/venv/bin/uvicorn`

   – **运行目录**: `/www/wwwroot/kirameku/Kirameku/backend`

   – **项目名称**: `kirameku-backend`

   – **启动参数**: `app.main:app –host 0.0.0.0 –port 8000 –workers 4`

3. 点击”提交”

或者使用命令行:

“`bash

cd /www/wwwroot/kirameku/Kirameku/backend

source venv/bin/activate

pm2 start “uvicorn app.main:app –host 0.0.0.0 –port 8000 –workers 4” –name kirameku-backend

pm2 save

“`

## 第六步:部署前端(Next.js)

### 1. 进入前端目录

“`bash

cd /www/wwwroot/kirameku/Kirameku/frontend

“`

### 2. 安装pnpm

“`bash

npm install -g pnpm

“`

### 3. 安装依赖

“`bash

pnpm install

“`

### 4. 配置API地址

编辑 `siteConfig.ts`:

“`typescript

export const siteConfig = {

  // …其他配置

  apiBaseUrl: “https://api.yourdomain.com”,  // 后端API地址

  // …其他配置

}

“`

### 5. 修改构建配置

编辑 `next.config.ts`:

“`typescript

import type { NextConfig } from “next”;

const nextConfig: NextConfig = {

  output: “standalone”,  // 使用standalone模式

  images: {

    unoptimized: true,

  },

};

export default nextConfig;

“`

### 6. 构建项目

“`bash

pnpm build

“`

### 7. 使用PM2启动前端

在宝塔PM2管理器中:

1. 点击”添加项目”

2. 填写以下信息:

   – **启动文件**: `/usr/bin/pnpm`

   – **运行目录**: `/www/wwwroot/kirameku/Kirameku/frontend`

   – **项目名称**: `kirameku-frontend`

   – **启动参数**: `start`

   – **环境变量**: `PORT=3000,NODE_ENV=production`

3. 点击”提交”

或者使用命令行:

“`bash

cd /www/wwwroot/kirameku/Kirameku/frontend

PORT=3000 pm2 start pnpm –name kirameku-frontend — start

pm2 save

“`

## 第七步:部署管理面板(Vue)

### 1. 进入管理面板目录

“`bash

cd /www/wwwroot/kirameku/Kirameku/admin

“`

### 2. 安装依赖

“`bash

pnpm install

“`

### 3. 配置API地址

编辑 `.env.production`:

“`env

VITE_API_BASE_URL=https://api.yourdomain.com

“`

### 4. 构建项目

“`bash

pnpm build

“`

构建完成后,会在 `dist` 目录生成静态文件。

## 第八步:配置网站和反向代理

### 1. 创建前端网站

在宝塔面板点击”网站” -> “添加站点”:

**域名**: `yourdomain.com` 和 `www.yourdomain.com`

**根目录**: `/www/wwwroot/kirameku/Kirameku/frontend`

**PHP版本**: 纯静态

**SSL**: 可以申请Let’s Encrypt证书

### 2. 配置前端反向代理

点击刚创建的网站 -> “设置” -> “反向代理”:

1. 点击”添加反向代理”

2. 填写:

   – **代理名称**: `frontend`

   – **目标URL**: `http://127.0.0.1:3000`

   – **发送域名**: `$host`

3. 点击”提交”

### 3. 创建API网站

再次点击”添加站点”:

**域名**: `api.yourdomain.com`

**根目录**: `/www/wwwroot/kirameku/Kirameku/backend`

**PHP版本**: 纯静态

### 4. 配置API反向代理

点击API网站 -> “设置” -> “反向代理”:

1. 点击”添加反向代理”

2. 填写:

   – **代理名称**: `backend`

   – **目标URL**: `http://127.0.0.1:8000`

   – **发送域名**: `$host`

3. 点击”提交”

### 5. 创建管理面板网站

点击”添加站点”:

**域名**: `admin.yourdomain.com`

**根目录**: `/www/wwwroot/kirameku/Kirameku/admin/dist`

**PHP版本**: 纯静态

管理面板是静态文件,Nginx直接服务即可,无需反向代理。

## 第九步:配置SSL证书

### 1. 申请Let’s Encrypt证书

对于每个网站(前端、API、管理面板):

1. 点击网站 -> “设置” -> “SSL”

2. 选择”Let’s Encrypt”

3. 勾选域名,点击”申请”

4. 开启”强制HTTPS”

### 2. 自动续签

宝塔会自动处理证书续签,无需手动操作。

## 第十步:配置防火墙

### 1. 宝塔防火墙

在宝塔面板点击”安全”:

1. 放行以下端口:

   – `22` – SSH

   – `80` – HTTP

   – `443` – HTTPS

   – `8888` – 宝塔面板

   – `8000` – 后端API(可选,如果通过Nginx代理可不开放)

   – `3000` – 前端服务(可选,如果通过Nginx代理可不开放)

2. 点击”添加规则”,填写端口和备注

### 2. 系统防火墙

在终端中:

“`bash

# 如果使用firewalld

firewall-cmd –permanent –add-service=http

firewall-cmd –permanent –add-service=https

firewall-cmd –reload

# 如果使用ufw

ufw allow 80/tcp

ufw allow 443/tcp

ufw enable

“`

## 第十一步:部署Reader-Master(可选)

### 1. 进入目录

“`bash

cd /www/wwwroot/kirameku/Kirameku/reader-master

“`

### 2. 编译

“`bash

./gradlew build

“`

### 3. 使用PM2启动

在宝塔PM2管理器中:

1. 点击”添加项目”

2. 填写:

   – **启动文件**: `/usr/bin/java`

   – **运行目录**: `/www/wwwroot/kirameku/Kirameku/reader-master`

   – **项目名称**: `kirameku-reader`

   – **启动参数**: `-jar build/libs/reader-master.jar`

## 第十二步:设置开机自启

### 1. PM2开机自启

在终端中执行:

“`bash

pm2 startup

pm2 save

“`

### 2. PostgreSQL开机自启

在宝塔面板”软件商店”中,找到PostgreSQL,点击”设置” -> “服务” -> “开机启动”

## 常用操作

### 查看日志

在宝塔面板:

**PM2日志**: 软件商店 -> PM2管理器 -> 点击项目 -> “日志”

**Nginx日志**: 网站 -> 点击网站 -> “日志”

**系统日志**: 面板左侧”日志”

### 重启服务

在宝塔面板:

**重启后端**: PM2管理器 -> 找到kirameku-backend -> “重启”

**重启前端**: PM2管理器 -> 找到kirameku-frontend -> “重启”

**重启Nginx**: 软件商店 -> Nginx -> “重启”

### 备份数据库

在宝塔面板:

1. 点击”数据库”

2. 找到kirameku数据库

3. 点击”备份” -> “备份数据库”

4. 可以设置”自动备份”

### 更新代码

“`bash

cd /www/wwwroot/kirameku/Kirameku

git pull

# 更新后端

cd backend

source venv/bin/activate

pip install -r requirements.txt

alembic upgrade head

pm2 restart kirameku-backend

# 更新前端

cd ../frontend

pnpm install

pnpm build

pm2 restart kirameku-frontend

# 更新管理面板

cd ../admin

pnpm install

pnpm build

# 无需重启,Nginx直接服务静态文件

“`

## 故障排查

### 1. 后端无法启动

在宝塔PM2管理器中查看日志:

– 检查数据库连接配置

– 检查端口8000是否被占用

– 检查Python虚拟环境是否激活

### 2. 前端构建失败

在终端中执行:

“`bash

cd /www/wwwroot/kirameku/Kirameku/frontend

rm -rf node_modules .next

pnpm install

pnpm build

“`

### 3. 502 Bad Gateway

1. 检查后端服务是否运行(PM2管理器)

2. 检查Nginx反向代理配置

3. 检查防火墙端口

### 4. 数据库连接失败

在宝塔面板:

1. 检查PostgreSQL是否启动

2. 检查数据库用户名密码

3. 检查数据库权限

## 完成

现在访问以下地址:

**博客前台**: https://yourdomain.com

**API文档**: https://api.yourdomain.com/docs

**管理面板**: https://admin.yourdomain.com

首次访问管理面板时,使用默认账号登录并在后台创建新用户。

## 宝塔面板特色功能

### 1. 可视化文件管理

– 在线编辑代码

– 上传下载文件

– 压缩解压

### 2. 数据库管理

– 可视化操作PostgreSQL

– 自动备份

– 导入导出

### 3. 监控告警

– 系统资源监控

– 网站访问统计

– 异常告警

### 4. 一键SSL

– 自动申请Let’s Encrypt

– 自动续签

– 强制HTTPS

### 5. 安全防护

– 防CC攻击

– 防SQL注入

– IP黑白名单

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
卡尔的头像-友人社区✎钻石会员
评论 抢沙发

请登录后发表评论

    暂无评论内容