Loading repository data…
Loading repository data…
rocboss / repository
A scalable social community platform powered by Gin backend and modern TypeScript/Vue frontend architecture
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
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.
Features suites such as Default, Develop, Demo, and Slim.More screenshots and live behavior are available at PaoPao.
| 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 |
| 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 |
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 - PaoPaohttp://localhost:7700 - Meilisearchhttp://localhost:8001 - RedisInsight1.24+20.19+ or 22.12+5.7+scripts/paopao-mysql.sql into MySQL.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'
cd web
cp .env .env.local
yarn
yarn dev
To produce static assets:
yarn build
cd web
yarn tauri build
For the full installation guide, Docker build variants, desktop prerequisites, and migration notes, see INSTALL.md.
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:
AdminSettings.EncryptionKey/#/admin/settings): site profile, app behavior limits, search provider settings, object-storage settings, SMS/payment settings, and other operational knobs supported by the registryThe 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.
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.
Pull requests are welcome. If you want to contribute:
dev for feature work.If you deploy your own instance, consider adding it to deployed-sites.md.
Distributed under the MIT License. See LICENSE for details.