랭킹으로 돌아가기

rocboss/paopao-ce

Gopaopao-demo.vercel.app

A scalable social community platform powered by Gin backend and modern TypeScript/Vue frontend architecture

forumgovue3bbsginzincnaivetwitter
스타 성장
스타
4.5k
포크
658
주간 성장
이슈
0
2k3k4k
2022년 5월2023년 9월2025년 2월2026년 7월
아티팩트Go Modulesgo get github.com/rocboss/paopao-ce
README

Go Go Report Card Forks Stars MIT License Contributors Sourcegraph

PaoPao logo

PaoPao

An open-source micro-community platform built with Go and Vue.
Designed for self-hosted social products, community experiments, and customizable deployments.

简体中文 · Live Demo · Pull Requests · Project Notes


Overview

PaoPao is a full-stack, open-source micro-community system. It combines a Go backend, a Vue 3 web client, and an optional Tauri desktop application, with a modular feature system for storage, search, logging, observability, and deployment strategy.

The repository is suitable for teams or individuals who want to run a community product, evaluate an extensible social platform, or build on top of an existing codebase instead of starting from scratch.

Why PaoPao

  • Full-stack delivery: backend, web frontend, and desktop packaging live in one repository.
  • Modular runtime features: enable different capability sets through Features suites such as Default, Develop, Demo, and Slim.
  • Flexible infrastructure: supports MySQL, PostgreSQL, SQLite, Redis, Meilisearch, and multiple object storage providers.
  • Multiple deployment paths: run from source, Docker, Docker Compose, or all-in-one container images.
  • Self-hosting friendly: configuration is file-based and operational docs are already included in the repo.

Preview

Web

Light theme preview

Dark theme preview

Desktop

More screenshots and live behavior are available at PaoPao.

Architecture at a Glance

Layer Primary stack
Backend Go, Gin, Cobra, GORM, Mir
Web frontend Vue 3, Vite, Naive UI
Desktop client Tauri
Search Meilisearch
Cache Redis
Object storage Local OSS, MinIO, AliOSS, COS, Huawei OBS, S3-compatible
Observability OpenTelemetry, Sentry, Pyroscope, Pprof

Repository Layout

Path Purpose
cmd/, internal/, pkg/ Backend application and shared packages
web/ Vue 3 web application and Tauri desktop frontend
docs/ Deployment, OpenAPI, design proposals, and related documentation
scripts/ SQL bootstrap and helper assets
config.yaml.sample Complete runtime configuration template

Quick Start

Option A: Evaluate locally with Docker Compose

This is the fastest way to bring up a local environment for evaluation.

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

Then open:

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

Option B: Develop from source

Requirements

  • Go 1.24+
  • Node.js 20.19+ or 22.12+
  • MySQL 5.7+
  • Redis
  • Meilisearch
  • Rust + Tauri prerequisites if you plan to build the desktop app

Backend

  1. Import scripts/paopao-mysql.sql into MySQL.
  2. Copy the sample config and adjust only the bootstrap-critical values for your environment.
  3. Start the backend.
cp config.yaml.sample config.yaml
make run

To build a release binary instead:

make build

To serve the embedded web UI from the Go binary, build the web assets first and run with the embed tag:

make build-web
make run TAGS='embed'

Web frontend

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

To produce static assets:

yarn build

Desktop app

cd web
yarn tauri build

For the full installation guide, Docker build variants, desktop prerequisites, and migration notes, see INSTALL.md.

Configuration and Feature Suites

config.yaml.sample is now a minimal bootstrap template. At runtime, PaoPao loads the embedded default config first, then overlays ./custom/config.yaml or ./config.yaml if present, preferring the first file it finds.

That means the external config can stay intentionally small. In the current design:

  • Keep in YAML: ports, feature selection, database, Redis, JWT, and AdminSettings.EncryptionKey
  • Prefer the admin UI (/#/admin/settings): site profile, app behavior limits, search provider settings, object-storage settings, SMS/payment settings, and other operational knobs supported by the registry
  • Watch apply mode: some settings are live, while others are marked restart-required in the admin page

The Features section controls which capability bundles are enabled:

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"

Typical examples:

# Use the default suite
release/paopao serve

# Use only the declared develop suite
release/paopao serve --no-default-features --features develop

# Add sms on top of the default suite
release/paopao serve --features sms

# Enable features explicitly
release/paopao serve --no-default-features --features sqlite3,localoss,loggerfile,redis

For the current implementation status of each feature, see features-status.md.

Documentation Map

Branch Strategy

The project uses a staged branch model:

Branch Role
main Stable production branch; bug-fix oriented
beta Public testing branch
alpha Internal testing branch
dev Main development branch for new work
feature/* Focused feature branches
r/* Distribution-oriented release branches

If you plan to contribute new functionality, target dev unless the maintainers specify otherwise.

Contributing

Pull requests are welcome. If you want to contribute:

  1. Fork the repository.
  2. Create a branch from dev for feature work.
  3. Keep changes focused and documented.
  4. Open a PR with context about the problem, approach, and verification.

If you deploy your own instance, consider adding it to deployed-sites.md.

Star History Chart

License

Distributed under the MIT License. See LICENSE for details.

(back to top)

관련 저장소
discourse/discourse

A platform for community discussion. Free, open, simple.

RubyRubyGemsGNU General Public License v2.0discoursejavascript
discourse.org
47.5k9k
flarum/flarum

Simple forum software for building great communities.

PHPPackagistMIT Licensephpforum
flarum.org
16.4k1.7k
apache/answer

A Q&A platform software for teams at any scales. Whether it's a community forum, help center, or knowledge management platform, you can always count on Apache Answer.

GoGo ModulesApache License 2.0communitygolang
answer.apache.org
15.6k1.3k
NodeBB/NodeBB

Node.js based forum software built for the modern web

JavaScriptnpmGNU General Public License v3.0nodebbjavascript
nodebb.org
15.2k3k
flarum/framework

Simple forum software for building great communities.

PHPPackagistMIT Licenseflarumphp
flarum.org
6.7k880
lobsters/lobsters

Computing-focused community centered around link aggregation and discussion

RubyRubyGemsOtherrubyrails
lobste.rs
4.8k978
UnityCommunity/UnityLibrary

:books: Library of all kind of scripts, snippets & shaders for Unity

C#MIT Licenseunityunity-scripts
unitycommunity.github.io/UnityLibrary/
4.4k467
frontendbr/forum

:beer: Portando discussões feitas em grupos (Facebook, Google Groups, Slack, Disqus) para o GitHub Discussions

MIT Licenseforumfrontend
4.2k226
ruby-china/homeland

:circus_tent: An open source forum/community system based on Rails, developed based on Ruby China.

RubyRubyGemsMIT Licenserailsforum
homeland.ruby-china.org
3.9k1.2k
mlogclub/bbs-go

A lightweight community and Q&A platform for forums, knowledge bases, and discussions.一个轻量级社区和问答平台。

TypeScriptnpmGNU General Public License v3.0bbscommunity
bbs-go.com
3.4k691
88250/symphony

🎶 一款用 Java 实现的现代化社区(论坛/问答/BBS/社交网络/博客)系统平台。A modern community (forum/Q&A/BBS/SNS/blog) system platform implemented in Java. https://ld246.com

JavaMavenGNU Affero General Public License v3.0forumbbs
b3log.org/sym
2.9k504
rafalp/Misago

Misago is fully featured modern forum application that is fast, scalable and responsive.

PythonPyPIGNU General Public License v2.0forumsforum
misago-project.org
2.7k548