Docker系列 Bensz Channel:构建AI时代Up主和粉丝互动的高效平台

本博客由AI模型商OhMyGPT强力驱动!如何更快地访问本站?有需要可加电报群获得更多帮助。本博客用什么VPS?创作不易,请支持苯苯!推荐购买本博客的VIP喔,10元/年即可畅享所有VIP专属内容!

个人开发不易,欢迎大家点Star关注,谢谢啦:

概览

  • 基于 Laravel + Better Auth + PostgreSQL + Redis 构建的现代化 Web 社区平台
  • 支持多种登录方式(邮箱验证码、邮箱密码、微信/QQ 扫码)与完整的用户权限管理
  • 内置 Markdown 编辑器,支持粘贴图片自动上传,提供 SMTP 邮件订阅与 RSS 订阅
  • 游客访问自动使用预构建静态 HTML + Gzip 压缩,性能优化到极致
  • Docker Compose 一键部署,支持 Docker Hub 镜像快速启动

前言

最近我在 B 站做 up 主1,发了不少关于 AI 应用、Vibe Coding、国自然标书写作的教程视频,粉丝慢慢多了起来。但随之而来的是一个让我头疼的问题:怎么跟大家保持高效互动?

一开始我建了个微信群,很快就发现不对劲——微信群只能容纳 200 人,而且每次我更新项目、发布新功能,都得在群里发消息。问题是微信群是个聊天工具,消息很快就被刷屏了,后来加入的小伙伴根本看不到历史更新。更要命的是,我用 AI 开发东西更新频繁,总不能每改一次就在群里吆喝一声吧?(~ ̄▽ ̄)~

后来我试了 QQ 频道,心想这下总该行了吧?结果更崩溃:发个消息审核半小时都过不了,链接还会被”智能”压缩成乱码,完全没法正常使用。最关键的是,QQ 频道不支持 Markdown,也无法与 Claude Code 这样的 Vibe Coding 工具交互——而我恰恰需要用 AI 来自动发布更新公告、总结项目进展。

你可能会问:为什么不用 Discourse 或 Telegram?国外的小伙伴确实可以,但国内用户访问不便。我想来想去,既然咱们都会用 AI 了,为什么不手搓一个呢?于是在写国自然标书的间隙,我花了两天时间开发了 Bensz Channel——一个专为 AI 时代 up 主设计的社区平台。

Bensz Channel 基于 Laravel + Better Auth + PostgreSQL + Redis + Docker 构建,采用三栏式布局(左侧频道导航、中间内容流、右侧社区信息),核心特点是:支持 Markdown、可与 Claude Code 交互、按频道组织内容、支持 RSS/邮件订阅。它的定位不是传统论坛,更像是 QQ 频道和知识星球的结合体——我可以用 AI 自动发布项目更新,小伙伴们可以通过 RSS 订阅或邮件通知及时获取消息,内容按频道沉淀,后来者也能看到完整历史。

最重要的是,Docker Compose 一键部署,5 分钟就能拥有自己的社区平台!我已经在自己的服务器上跑起来了,实际地址是 https://channel.hwb0307.com2,小伙伴们可以先去体验一下。

我在 B 站也讨论了一下相关的情况,欢迎查看3:

下面,我就来详细介绍如何部署和使用这个平台!

核心特性

在正式开始部署之前,让我们先了解一下 Bensz Channel 都有哪些亮点功能。

频道系统

Bensz Channel 的核心是频道系统。你可以创建多个主题频道,比如”技术分享”、”生活日常”、”问答互动”等,每个频道都有独立的内容流。系统还内置了两个特殊频道:

  • 精华频道:自动聚合所有被标记为”精华”的文章,方便粉丝快速找到优质内容
  • 未分类频道:默认隐藏,用于临时存放未归类的内容

管理员可以在后台决定哪些频道出现在顶栏导航中,隐藏的频道仍然保留访问地址和内容,只是不会在首页显示。这种设计让内容组织更加灵活!

多种登录方式

为了降低用户的注册门槛,Bensz Channel 支持多种登录方式2

  • 邮箱验证码登录:无需记密码,输入邮箱收验证码即可登录
  • 邮箱密码登录:传统的账号密码登录方式
  • 微信扫码登录:支持微信开放平台 OAuth(也提供演示模式)
  • QQ 扫码登录:支持 QQ 互联 OAuth(也提供演示模式)

是不是感觉很贴心?特别是微信/QQ 扫码登录,对于习惯使用社交账号的用户来说非常方便。而且,项目默认开启演示模式,即使你没有申请微信/QQ 开放平台账号,也可以直接体验扫码登录的流程!

Markdown 支持

作为一个技术向的社区平台,Markdown 支持是必不可少的。Bensz Channel 的文章和评论都支持 Markdown 渲染,而且还有一个超级实用的功能:粘贴图片自动上传

你只需要在编辑器中直接粘贴图片(Ctrl+V 或 Cmd+V),系统会自动上传到服务器并插入 Markdown 图片链接。上传的图片统一存放在 data/web/storage/app/public/media/ 目录,重新部署后也不会丢失。这个功能对于经常需要插入截图的技术文章来说,简直不要太方便!

订阅通知

Bensz Channel 提供了两种订阅方式:

SMTP 邮件订阅(需登录):
– 默认开启”全部版块新文章提醒”和”评论 @ 提醒”
– 可以在订阅设置页面关闭全部提醒,或仅保留指定版块
– 管理员可以在后台配置 SMTP 服务器,支持测试邮件发送

RSS 订阅(公开):
– 全部版块:/feeds/articles.xml
– 单个版块:/feeds/channels/{channel-public-id}.xml
– 任何拿到链接的用户都可以在 RSS 阅读器中订阅

值得一提的是,Bensz Channel 的公开文章、频道和频道 RSS 链接统一使用固定长度的不可变 public_id,即使你修改了文章标题或频道名称,链接也不会失效。这个设计细节体现了对用户体验的用心!

静态页面优化

这是 Bensz Channel 最让我自豪的功能之一:游客访问自动使用预构建静态 HTML + Gzip 压缩

当游客(未登录用户)访问网站时,系统会优先返回预先构建好的静态 HTML 文件,而不是每次都动态渲染页面。这些静态文件还会额外生成 .gz 压缩版本,Nginx 开启 gzip_static 后可以直接返回压缩文件,大幅提升加载速度。

每次管理员修改文章/频道、成员发表评论后,系统会自动触发静态站点重建。高频更新的文章和评论会走异步队列和增量重建,不会阻塞用户操作。这种设计让 Bensz Channel 在保持动态交互能力的同时,拥有接近静态网站的访问速度!

而且,静态资源(CSS、JS、图片)采用 Vite 指纹命名,可以通过 ASSET_URL 接入 CDN,进一步加速全球访问。我自己就接入了 DogeCloud CDN,效果非常明显!

管理后台

Bensz Channel 提供了完整的管理后台,包括:

  • 频道管理:创建、编辑、删除频道,控制顶栏显示
  • 文章管理:一键设置文章置顶或精华
  • 用户管理:查看用户列表、修改用户资料、设置角色、封禁用户
  • 站点设置:自定义站点名称、标语、CDN 地址、登录方式开关
  • 订阅设置:配置 SMTP 服务器、测试邮件发送

管理后台的大部分高频操作都改为了紧凑图标按钮,鼠标悬停会显示用途提示,操作起来非常高效。

技术栈

在介绍部署方法之前,让我们先了解一下 Bensz Channel 的技术架构。作为一个现代化的 Web 应用,它采用了以下技术栈2

层级 方案
Web 应用 Laravel 12 + Blade + Tailwind CSS
认证服务 Better Auth + Express
数据库 PostgreSQL 17
缓存 Redis 7
Web 服务 Nginx + PHP-FPM
前端构建 Vite 7
本地邮件 Mailpit
部署 Docker Compose

这套技术栈的选择有几个考虑:

Laravel 12:作为 PHP 生态中最流行的框架,Laravel 提供了完善的 ORM、路由、中间件、队列等功能,开发效率极高。而且 Laravel 的文档非常详细,社区活跃,遇到问题很容易找到解决方案。

Better Auth:这是一个现代化的认证服务,支持多种登录方式(邮箱验证码、密码、OAuth 等),而且可以自托管。Bensz Channel 将 Better Auth 作为独立的认证服务运行,Laravel 通过内部共享密钥调用认证 API,实现了认证逻辑与业务逻辑的分离。

PostgreSQL 17:相比 MySQL,PostgreSQL 在复杂查询、JSON 支持、全文搜索等方面更有优势。而且 PostgreSQL 的 MVCC(多版本并发控制)机制让并发性能更好,特别适合社区平台这种读写频繁的场景。

Redis 7:用于缓存和队列,大幅提升响应速度。Bensz Channel 的静态页面重建任务就是通过 Redis 队列异步处理的。

Nginx + PHP-FPM:Nginx 作为 Web 服务器,PHP-FPM 处理 PHP 请求,这是 PHP 应用的经典组合。Nginx 的静态文件服务能力非常强,配合 gzip_static 可以直接返回预压缩的静态文件。

Vite 7:现代化的前端构建工具,支持热更新、代码分割、资源指纹等功能。Vite 的构建速度比 Webpack 快很多,开发体验非常好。

Mailpit:本地邮件测试工具,可以拦截所有发出的邮件并在 Web 界面中查看。在开发和测试阶段非常有用,避免误发邮件给真实用户。

Docker Compose:一键部署所有服务,包括 Web 应用、认证服务、数据库、缓存、邮件服务等。所有配置都在 docker-compose.yml 中定义,部署和迁移都非常方便。

快速部署

好了,理论知识讲得差不多了,下面进入实战环节!Bensz Channel 提供了两种部署方式:使用 Docker Hub 镜像(推荐)和本地构建镜像。我们先介绍最简单的 Docker Hub 镜像部署方式。

前置要求

在开始之前,请确保你的服务器满足以下要求:

  • Docker 20.10+
  • Docker Compose 2.0+
  • 至少 2GB 内存(推荐 4GB)
  • 至少 10GB 磁盘空间

如果你还没有安装 Docker 和 Docker Compose,可以参考我之前的教程《Docker系列 学习Docker之前》。

创建工作目录

首先,我们创建一个工作目录来存放配置文件和数据:

work=~/docker/bensz-channel
mkdir -p $work/config
cd $work

创建 docker-compose.yml

在工作目录中创建 docker-compose.yml 文件:

vim docker-compose.yml

粘贴以下内容:

services:
  channel-web:
    image: huangwb8/bensz-channel-web:latest
    container_name: channel-web
    ports:
      - "${WEB_PORT:-6542}:80"
    env_file:
      - config/.env
    depends_on:
      channel-auth:
        condition: service_healthy
      channel-postgres:
        condition: service_healthy
      channel-redis:
        condition: service_started
      channel-mailpit:
        condition: service_started
    volumes:
      - ./data/web/storage:/var/www/html/storage
      - ./data/web/bootstrap-cache:/var/www/html/bootstrap/cache
      - ./data/web/static:/var/www/html/public/${STATIC_SITE_OUTPUT_DIR:-static}
    healthcheck:
      test: ["CMD-SHELL", "curl -fsS http://127.0.0.1/up || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 12

  channel-worker:
    image: huangwb8/bensz-channel-web:latest
    container_name: channel-worker
    entrypoint:
      - php
      - /var/www/html/artisan
      - queue:work
      - --queue=static-builds,default
      - --sleep=1
      - --tries=3
      - --timeout=900
    env_file:
      - config/.env
    depends_on:
      channel-web:
        condition: service_healthy
      channel-postgres:
        condition: service_healthy
      channel-redis:
        condition: service_started
    volumes:
      - ./data/web/storage:/var/www/html/storage
      - ./data/web/bootstrap-cache:/var/www/html/bootstrap/cache
      - ./data/web/static:/var/www/html/public/${STATIC_SITE_OUTPUT_DIR:-static}
    restart: unless-stopped

  channel-auth:
    image: huangwb8/bensz-channel-auth:latest
    container_name: channel-auth
    env_file:
      - config/.env
    depends_on:
      channel-postgres:
        condition: service_healthy
      channel-mailpit:
        condition: service_started
    healthcheck:
      test: ["CMD-SHELL", "node -e \"fetch('http://127.0.0.1:3001/health').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))\""]
      interval: 10s
      timeout: 5s
      retries: 12
      start_period: 120s

  channel-postgres:
    image: postgres:17-alpine
    container_name: channel-postgres
    env_file:
      - config/.env
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-bensz} -d ${POSTGRES_DB:-bensz_channel}"]
      interval: 5s
      timeout: 5s
      retries: 12

  channel-redis:
    image: redis:7-alpine
    container_name: channel-redis
    command: redis-server --appendonly yes --dir /data
    volumes:
      - ./data/redis:/data

  channel-mailpit:
    image: axllent/mailpit:latest
    container_name: channel-mailpit
    command: ["--database", "/data/mailpit.db"]
    ports:
      - "${MAILPIT_PORT:-8025}:8025"
    volumes:
      - ./data/mailpit:/data

这个配置文件定义了 6 个服务:

  • channel-web:Web 应用主容器,运行 Laravel + Nginx
  • channel-worker:队列处理容器,负责异步任务(如静态页面重建)
  • channel-auth:认证服务容器,运行 Better Auth
  • channel-postgres:PostgreSQL 数据库
  • channel-redis:Redis 缓存和队列
  • channel-mailpit:本地邮件测试工具

创建配置文件

接下来,我们需要创建 config/.env 配置文件:

vim config/.env

粘贴以下内容(记得修改密钥和密码):

# ============================================
# Docker Compose 直接引用的公开配置
# ============================================

# 端口映射
WEB_PORT=6542
MAILPIT_PORT=8025

# 静态站点配置
STATIC_SITE_OUTPUT_DIR=static

# PostgreSQL 配置
DB_HOST=postgres
POSTGRES_DB=bensz_channel
POSTGRES_USER=bensz

# Laravel 数据库连接配置
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=bensz_channel
DB_USERNAME=bensz

# ============================================
# 密钥类配置(敏感信息 - 必须修改)
# ============================================

# Laravel 应用密钥(运行下面命令生成)
# docker run --rm huangwb8/bensz-channel-web:latest php artisan key:generate --show
APP_KEY=base64:your_generated_app_key_here

# 数据库密码(修改为强密码)
DB_PASSWORD=your_secure_db_password_here
POSTGRES_PASSWORD=your_secure_db_password_here

# Better Auth 密钥(修改为强随机字符串)
BETTER_AUTH_SECRET=your_secure_auth_secret_here
BETTER_AUTH_INTERNAL_SECRET=your_secure_internal_secret_here

# 管理员密码
ADMIN_PASSWORD=your_admin_password_here

# 邮件服务凭证(可选)
MAIL_USERNAME=
MAIL_PASSWORD=

# AWS 凭证(可选)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=

# 第三方登录凭证(可选)
WECHAT_CLIENT_ID=
QQ_CLIENT_ID=

重要提示:上面的配置文件中有几个密钥和密码必须修改:

  1. 生成 Laravel 应用密钥
docker run --rm huangwb8/bensz-channel-web:latest php artisan key:generate --show

将输出的密钥(类似 base64:xxxxxx)复制到 APP_KEY 字段。

  1. 设置数据库密码:将 DB_PASSWORDPOSTGRES_PASSWORD 改为强密码(建议使用随机生成的 32 位字符串)。

  2. 设置 Better Auth 密钥:将 BETTER_AUTH_SECRETBETTER_AUTH_INTERNAL_SECRET 改为强随机字符串(建议使用随机生成的 64 位字符串)。

  3. 设置管理员密码:将 ADMIN_PASSWORD 改为你想要的管理员密码。

启动服务

配置文件准备好后,就可以启动服务了:

docker compose up -d

第一次启动会拉取镜像,需要等待一段时间。你可以通过以下命令查看启动日志:

docker compose logs -f

当你看到类似这样的日志时,说明服务已经启动成功:

channel-web      | [INFO] Application ready
channel-auth     | [INFO] Better Auth service started on port 3001
channel-postgres | [INFO] database system is ready to accept connections

Ctrl+C 退出日志查看。

访问网站

启动成功后,你可以通过以下地址访问:

  • 🌐 站点首页:http://localhost:6542(或 http://你的服务器IP:6542
  • 🔑 登录页:http://localhost:6542/login
  • 📬 Mailpit:http://localhost:8025

默认管理员账号:
– 📧 邮箱:[email protected]
– 🔑 密码:你在 config/.env 中设置的 ADMIN_PASSWORD
– 🆔 用户ID:0

是不是感觉很简单?整个部署过程不超过 10 分钟!(~ ̄▽ ̄)~

配置反向代理

如果你想通过域名访问 Bensz Channel,需要配置反向代理。这里我推荐使用 Nginx Proxy Manager(NPM),它提供了友好的 Web 界面,配置起来非常方便。

不了解 Nginx Proxy Manager 用法的小伙伴,请看《Docker系列 两大神器NPM和ddns-go的安装》。

域名解析

首先,在你的域名托管商后台(或使用 ddns-go)解析好域名,比如 channel.example.com,指向你的服务器 IP。

添加 Proxy Host

在 Nginx Proxy Manager 中添加一个 Proxy Host:

  • Domain Nameschannel.example.com
  • Schemehttp
  • Forward Hostname / IP你的服务器局域网IP(如 192.168.1.100
  • Forward Port6542
  • Block Common Exploits:勾选
  • Websockets Support:勾选

在 SSL 标签页中申请 Let’s Encrypt 证书,勾选 Force SSLHTTP/2 Support

修改配置文件

反向代理配置好后,需要修改 config/.env 文件,将 APP_URL 改为你的域名:

vim config/.env

修改以下内容:

APP_URL=https://channel.example.com
SESSION_SECURE_COOKIE=true

然后重启服务:

docker compose restart

现在你就可以通过 https://channel.example.com 访问你的社区平台了!

进阶配置

配置 SMTP 邮件服务

如果你想启用邮件订阅功能,需要配置 SMTP 服务器。Bensz Channel 支持在后台管理界面中配置 SMTP,非常方便。

  1. 以管理员身份登录
  2. 进入”订阅设置”页面
  3. 填写 SMTP 服务器信息:
  4. SMTP 服务器:如 smtp.gmail.com
  5. SMTP 端口:如 587
  6. SMTP 用户名:你的邮箱地址
  7. SMTP 密码:邮箱密码或应用专用密码
  8. 发件人邮箱:发送邮件时显示的发件人地址
  9. 发件人名称:发送邮件时显示的发件人名称
  10. 点击”测试 SMTP”按钮,输入测试收件邮箱,验证配置是否正确
  11. 测试通过后,点击”保存 SMTP 配置”

配置保存后,系统会自动使用 SMTP 服务器发送邮件订阅通知、评论提醒和邮箱验证码。

配置 CDN 加速

Bensz Channel 支持将静态资源(CSS、JS、图片)托管到 CDN,加速全球访问。配置方法有两种:

方式一:后台站点设置(推荐)

  1. 以管理员身份登录
  2. 进入”站点设置”页面
  3. 找到”静态资源 CDN”字段
  4. 填写 CDN 域名,例如:https://cdn.example.com
  5. 点击”保存站点设置”

方式二:环境变量

config/.env 中配置:

ASSET_URL=https://cdn.example.com

配置后,页面中的静态资源会自动使用 CDN 域名,而页面链接继续使用 APP_URL

关于 DogeCloud CDN 的详细接入方法,可以参考项目的开发者文档2

配置微信/QQ 扫码登录

Bensz Channel 默认开启微信/QQ 扫码登录的演示模式,无需任何外部平台账号即可体验。如果你想启用真实的 OAuth 登录,需要完成以下步骤:

  1. 在微信开放平台(或 QQ 互联)创建网站应用,获取 Client IDClient Secret
  2. 配置回调地址:
  3. 微信:https://你的域名/auth/social/wechat/callback
  4. QQ:https://你的域名/auth/social/qq/callback
  5. 修改 config/.env 文件:
# 微信扫码登录
WECHAT_QR_MODE=oauth
WECHAT_CLIENT_ID=你的微信Client_ID
WECHAT_CLIENT_SECRET=你的微信Client_Secret

# QQ 扫码登录
QQ_QR_MODE=oauth
QQ_CLIENT_ID=你的QQ_Client_ID
QQ_CLIENT_SECRET=你的QQ_Client_Secret
  1. 重启服务:
docker compose restart

详细的配置教程可以参考项目文档《如何让本项目支持微信和QQ扫码登陆2

数据备份

Bensz Channel 的所有数据都存储在 data/ 目录中,包括:

  • data/postgres:PostgreSQL 数据库
  • data/redis:Redis 数据
  • data/mailpit:Mailpit 邮件数据
  • data/web/storage:Laravel 运行时存储(包括上传的图片)
  • data/web/static:预构建的静态页面

备份整个 data/ 目录即可保存所有数据。你可以使用 rsync、tar 或其他备份工具定期备份:

# 使用 tar 打包备份
tar -czf bensz-channel-backup-$(date +%Y%m%d).tar.gz data/

# 使用 rsync 同步到远程服务器
rsync -avz data/ user@backup-server:/path/to/backup/

如果需要恢复数据,只需将备份的 data/ 目录复制回工作目录,然后重启服务即可。

使用技巧

频道管理

作为管理员,你可以在”频道管理”页面创建和管理频道。一些实用技巧:

  • 频道顺序:频道在顶栏的显示顺序可以通过拖拽调整(如果主题支持)
  • 隐藏频道:不想在顶栏显示的频道可以隐藏,但仍然保留访问地址
  • 精华频道:将优质文章标记为”精华”,它们会自动出现在精华频道中

文章管理

发布文章时的一些技巧:

  • Markdown 语法:支持标准 Markdown 语法,包括标题、列表、代码块、表格等
  • 粘贴图片:直接在编辑器中粘贴图片(Ctrl+V 或 Cmd+V),系统会自动上传
  • 置顶文章:重要公告可以设置为置顶,会在首页优先显示
  • 精华文章:优质内容可以标记为精华,方便粉丝快速找到

用户管理

管理用户时的一些技巧:

  • 稳定用户 ID:每个用户都有一个稳定的 ID(从 101 开始递增),不会因为修改昵称或邮箱而改变
  • 封禁用户:可以对违规用户进行 1 天、3 天、7 天、30 天、永久或自定义时间的封禁
  • 批量操作:支持多选批量删除用户
  • 用户仪表盘:可以查看最近 7 天的登录/活跃、评论与发文统计

订阅设置

订阅功能的一些技巧:

  • 测试 SMTP:配置 SMTP 后,先点击”测试 SMTP”按钮验证配置是否正确,再保存
  • 选择性订阅:用户可以选择只订阅特定频道的新文章,而不是全部频道
  • RSS 订阅:RSS 订阅链接是公开的,可以分享给任何人

常见问题

启动失败怎么办?

如果服务启动失败,可以通过以下命令查看日志:

docker compose logs

常见的启动失败原因:

  1. 端口被占用:检查 6542 和 8025 端口是否被其他程序占用,可以在 config/.env 中修改端口号
  2. 密钥未配置:检查 config/.env 中的 APP_KEYDB_PASSWORDBETTER_AUTH_SECRET 等是否已正确配置
  3. 磁盘空间不足:确保服务器有足够的磁盘空间(至少 10GB)

如何升级到新版本?

Bensz Channel 使用 Docker Hub 镜像,升级非常简单:

# 拉取最新镜像
docker compose pull

# 重启服务
docker compose up -d

升级后,数据会自动迁移,不会丢失任何内容。

如何修改管理员密码?

管理员可以在”账户设置”页面修改自己的密码。如果忘记了管理员密码,可以通过以下方法重置:

  1. 停止服务:docker compose down
  2. 修改 config/.env 中的 ADMIN_PASSWORD
  3. 重启服务:docker compose up -d

系统会自动将管理员密码重置为 config/.env 中配置的值。

如何迁移到新服务器?

迁移 Bensz Channel 非常简单:

  1. 在旧服务器上备份 data/ 目录和 config/.env 文件
  2. 在新服务器上安装 Docker 和 Docker Compose
  3. 复制 docker-compose.ymlconfig/.envdata/ 目录到新服务器
  4. 启动服务:docker compose up -d

迁移完成后,所有数据和配置都会保留。

小结

Bensz Channel 是一个专为自媒体创作者设计的社区平台,它结合了 QQ 频道的频道化内容组织和知识星球的轻量级互动体验,提供了完整的用户管理、订阅通知、静态页面优化等功能。通过 Docker Compose 一键部署,5 分钟就能拥有自己的社区平台,而且完全开源,可以根据自己的需求随意定制。

相比传统的论坛程序,Bensz Channel 更注重内容的组织和沉淀,而不是单纯的讨论。频道系统让内容分类更加清晰,Markdown 支持让技术文章的撰写更加高效,静态页面优化让访问速度接近静态网站,订阅通知让粉丝不会错过任何更新。这些特性让 Bensz Channel 成为自媒体创作者与粉丝深度互动的理想平台。

我自己已经在 https://channel.hwb0307.com 部署了 Bensz Channel,用于与博客读者进行更深度的交流。如果你也想搭建一个属于自己的社区平台,不妨试试 Bensz Channel!项目完全开源,代码托管在 GitHub1,欢迎 Star 和贡献代码!

以后有什么使用心得会继续更新内容。请拭目以待!(~ ̄▽ ̄)~

参考文献

  1. Bilibili – Bensz的个人空间. https://space.bilibili.com/24478261
  2. Bensz Channel – 实际部署地址. https://channel.hwb0307.com
  3. Bilibili – Bensz Channel 部署教程视频. https://www.bilibili.com/video/BV1uFP9zoEGa
  4. GitHub – huangwb8/bensz-channel: 现代化 Web 社区平台. https://github.com/huangwb8/bensz-channel
  5. Bensz Channel – 开发者文档. https://github.com/huangwb8/bensz-channel/blob/main/docs/开发者文档.md

---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍


感谢OhMyGPT的友情赞助 (ฅ´ω`ฅ) 本博客基于m2w创作。版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。VIP内容严禁转载!由于可能会成为AI模型(如chatGPT)的训练样本,本博客禁止将AI自动生成内容作为文章上传(特别声明时除外)。如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租请留言 | 博客VPS | 致谢渺软公益CDN |
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇