宝塔面板部署

如果习惯使用可视化面板管理服务器,可以使用宝塔面板部署 FlecBlog。

作者:hsiwf

场景

腾讯云轻量应用服务器,Ubuntu Server 24.04 LTS 64bit,宝塔面板部署(用宝塔的话可以把数据库部署在docker外面,能用宝塔的定时任务备份数据库到对象存储,很不错的功能)

宝塔面板安装

  1. 登录服务器
  2. 更新系统(可选但推荐)
apt update && apt upgrade -y
  1. 安装宝塔面板
if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

重要 安装完成后需要去服务器的防火墙放行对应的端口

宝塔面板初始化

  1. 输入 bt default 可以查看宝塔的配置信息
  2. 输入 bt 可以修改宝塔面板的配置

安装依赖

安装 Docker

登录宝塔 → 左侧「Docker」→ 立即安装

安装 PostgreSQL

  1. 左侧「软件商店」→ 搜索 PostgreSQL → 安装
  2. 设置 → 版本管理 → 安装 14 版本

版本说明 如果使用 PostgreSQL 15 或更高版本,且数据库用户不是 postgres(超级用户),需要额外配置 schema 权限:

sudo -i -u postgres
psql -U postgres -d <数据库> -c "GRANT CREATE ON SCHEMA public TO <用户名>;"

创建数据库

左侧「数据库」→ PgSQL → 添加数据库

密码注意 数据库密码确定后不要轻易修改,可能导致认证失败

Docker Compose 配置

左侧「Docker」→ 容器编排 → 添加容器编排 → 编排名称:flecblog

compose 内容

services:
  server:
    image: talen8/flec-server:latest
    container_name: flec_server
    restart: unless-stopped
    environment:
      DB_HOST: 172.17.0.1
      DB_PORT: 5432
      DB_NAME: flecdb
      DB_USER: flecdb
      DB_PASSWORD: ${DB_PASSWORD}
      JWT_SECRET: ${JWT_SECRET}
    ports:
      - "8080:8080"
    volumes:
      - /srv/flecblog:/app/data
    networks:
      - flec-network

  blog:
    image: talen8/flec-blog:latest
    container_name: flec_blog
    restart: unless-stopped
    environment:
      NUXT_PUBLIC_API_URL: ${API_URL}
    ports:
      - "3000:3000"
    networks:
      - flec-network
    depends_on:
      - server

  admin:
    image: talen8/flec-admin:latest
    container_name: flec_admin
    restart: unless-stopped
    environment:
      API_URL: ${API_URL}
    ports:
      - "4000:4000"
    networks:
      - flec-network
    depends_on:
      - server

networks:
  flec-network:
    driver: bridge

.env 内容

# 宝塔 PostgreSQL
DB_HOST=172.17.0.1
DB_PORT=5432
DB_NAME=flecdb
DB_USER=flecdb
DB_PASSWORD=你的数据库密码

JWT_SECRET=123456789abcdefghijk

API_URL=https://api.你的域名/api/v1

常见问题

flec_server 报错

检查 PostgreSQL 配置:

  1. 左侧「文件」→ 搜索 postgresql.conf
  2. 确认 listen_addresses = '*':br
  3. 重启 PostgreSQL 服务

反向代理

左侧「Docker」→ 网站 → 创建 → 反代容器

域名容器端口
blog.你的域名flec_blog3000
admin.你的域名flec_admin4000
api.你的域名flec_server8080

申请 SSL

左侧「Docker」→ 网站 → 设置 →「SSL」→「Let's Encrypt」→ 申请 → 开启「强制 HTTPS」

访问测试

  • 博客:https://blog.你的域名
  • 管理后台:https://admin.你的域名
  • 默认账号:admin@example.com / 123456

安全提示 登录后请立即修改密码

宝塔维护操作

查看日志

Docker 管理器 → 容器列表 → 选中容器 →「日志」

重启/停止/删除

容器编排 → flecblog →「重启/停止/删除」

更新镜像

容器编排 → flecblog → 修改版本号 →「保存」

数据库备份

数据库 → PostgreSQL → 选中数据库 →「备份」→「计划任务」