论坛社区 活跃维护

paopao-ce

rocboss/paopao-ce

一个可扩展的社交社区平台,由 Gin 后端和现代 TypeScript/Vue 前端架构驱动

4501
Stars 标星
652
Forks 分支
38
Watchers 关注
17
Open Issues
Go
主要语言
MIT
开源协议
28.0 MB
仓库大小
2 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:rocboss/paopao-ce
git clone https://github.com/rocboss/paopao-ce.git
git clone git@github.com:rocboss/paopao-ce.git
README.md main

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

PaoPao

一个基于 Go 与 Vue 的开源微社区平台。
适合自部署社区产品、功能验证,以及在现有能力之上进行二次开发。

English · 在线演示 · Pull Requests · 项目笔记


项目简介

PaoPao 是一个完整的开源微社区系统,包含 Go 后端、Vue 3 Web 前端,以及可选的 Tauri 桌面端。项目通过模块化的特性开关体系,将存储、搜索、日志、可观测性与部署方式组合在一起,便于按需裁剪和扩展。

如果你希望快速搭建一个可运行的社区产品,或者基于成熟代码库继续定制开发,而不是从零开始,PaoPao 是一个很合适的起点。

为什么选择 PaoPao

  • 全栈一体化:后端、Web 前端、桌面端构建都在同一仓库中维护。
  • 模块化运行能力:通过 Features 套件启用不同能力组合,例如 Default、Develop、Demo、Slim。
  • 基础设施灵活:支持 MySQL、PostgreSQL、SQLite、Redis、Meilisearch 以及多种对象存储后端。
  • 部署方式丰富:可通过源码、Docker、Docker Compose 或 all-in-one 镜像运行。
  • 适合自部署:配置文件清晰,仓库内已提供部署与开发文档。

预览

Web 端

桌面端

更多效果可前往 PaoPao 查看。

架构概览

层级 主要技术
后端 Go、Gin、Cobra、GORM、Mir
Web 前端 Vue 3、Vite、Naive UI
桌面端 Tauri
搜索 Meilisearch
缓存 Redis
对象存储 Local OSS、MinIO、AliOSS、COS、Huawei OBS、S3 兼容存储
可观测性 OpenTelemetry、Sentry、Pyroscope、Pprof

仓库结构

路径 说明
cmd/、internal/、pkg/ 后端应用与共享包
web/ Vue 3 Web 应用与 Tauri 桌面端前端
docs/ 部署文档、OpenAPI 文档、设计提案等
scripts/ SQL 初始化脚本与辅助资源
config.yaml.sample 完整的运行配置模板

快速开始

方案 A:使用 Docker Compose 快速体验

这是本地体验项目的最快方式。

git clone https://github.com/rocboss/paopao-ce.git
cd paopao-ce
docker compose up -d

启动后可访问:

  • http://localhost:8008 - PaoPao
  • http://localhost:7700 - Meilisearch
  • http://localhost:8001 - RedisInsight

方案 B:从源码开发

环境要求

  • Go 1.24+
  • Node.js 20.19+ 或 22.12+
  • MySQL 5.7+
  • Redis
  • Meilisearch
  • 如果需要构建桌面端,还需要安装 Rust 与 Tauri 依赖

后端

  1. 将 scripts/paopao-mysql.sql 导入 MySQL。
  2. 复制示例配置,并只调整与你环境相关的启动关键项。
  3. 启动后端服务。
cp config.yaml.sample config.yaml
make run

如果需要构建发布二进制:

make build

如果希望由 Go 服务直接内嵌并提供 Web UI,请先构建前端资源,再使用 embed 标签启动:

make build-web
make run TAGS='embed'

Web 前端

cd web
cp .env .env.local
yarn
yarn dev

构建静态资源:

yarn build

桌面端

cd web
yarn tauri build

更完整的安装步骤、Docker 构建方式、桌面端依赖与 migration 说明,请参考 INSTALL_ZH.md。

配置与 Feature 套件

config.yaml.sample 现在是一个最小化 bootstrap 模板。运行时,PaoPao 会先加载内置默认配置,再叠加 ./custom/config.yaml 或 ./config.yaml,并优先使用先找到的文件。

这意味着外部配置文件可以有意保持精简。当前建议是:

  • 继续放在 YAML 中:端口、Feature 组合、数据库、Redis、JWT,以及 AdminSettings.EncryptionKey
  • 尽量改到管理后台(/#/admin/settings):站点资料、应用行为阈值、全文索引、对象存储、短信/支付等已接入 registry 的配置
  • 注意生效方式:部分配置即时生效,部分会在后台中明确标记为“重启后生效”

Features 配置用于控制启用哪些能力组合:

Features:
  Default: ["Base", "MySQL", "Option", "LocalOSS", "LoggerFile"]
  Develop: ["Base", "MySQL", "Option", "Sms", "AliOSS", "LoggerOtlp"]
  Demo: ["Base", "MySQL", "Option", "Sms", "MinIO", "LoggerOtlp"]
  Slim: ["Base", "Sqlite3", "LocalOSS", "LoggerFile"]
  Base: ["Zinc", "Redis", "Alipay"]
  Option: ["SimpleCacheIndex"]
  Sms: "SmsJuhe"

常见用法示例:

# 使用默认套件
release/paopao serve

# 仅使用 develop 中声明的功能集
release/paopao serve --no-default-features --features develop

# 在默认套件基础上增加 sms
release/paopao serve --features sms

# 手动显式指定功能项
release/paopao serve --no-default-features --features sqlite3,localoss,loggerfile,redis

各功能项的当前实现状态可参考 features-status.md。

文档导航

分支策略

项目采用分阶段分支模型:

分支 作用
main 稳定生产分支,主要接收缺陷修复
beta 公测分支
alpha 内测分支
dev 主要开发分支,适合新功能开发
feature/* 独立功能分支
r/* 面向不同发行形态的发布分支

如果你准备提交新功能,通常应优先向 dev 分支发起贡献。

参与贡献

欢迎提交 Pull Request。建议的贡献流程:

  1. Fork 当前仓库。
  2. 从 dev 分支拉出自己的功能分支。
  3. 保持改动聚焦,并补充必要文档。
  4. 提交 PR 时说明问题背景、实现方式与验证结果。

如果你已经部署了自己的实例,也欢迎将站点补充到 deployed-sites.md。

许可证

项目基于 MIT License 发布,详见 LICENSE。

(回到顶部)

本站来源与版权声明
  • 本文标题:paopao-ce - 一个可扩展的社交社区平台
  • 本文链接:https://www.cn121.com/forum/rocboss-paopao-ce.html
  • 原项目:rocboss/paopao-ce 版权归原作者 rocboss 及贡献者所有
  • 收录信息:本站于 2026-10-24 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 rocboss/paopao-ce。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。