<div id="top"></div>
<!-- PROJECT SHIELDS -->
[![Go](https://github.com/rocboss/paopao-ce/actions/workflows/go.yml/badge.svg)](https://github.com/rocboss/paopao-ce/actions/workflows/go.yml)
[![Go Report Card][goreport-shield]][goreport-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![MIT License][license-shield]][license-url]
[![Contributors][contributors-shield]][contributors-url]
[![Sourcegraph](https://img.shields.io/badge/view%20on-Sourcegraph-brightgreen.svg)](https://sourcegraph.com/github.com/rocboss/paopao-ce)
<!-- PROJECT LOGO -->
<div align="center">
<a href="https://github.com/rocboss/paopao-ce">
<img src="https://cdn.rocs.me/static/paopao-logo.png" alt="Logo" width="80" height="80">
</a>
<h3 align="center">PaoPao</h3>
<p align="center">
🔥一个清新文艺的微社区
<br />
<a href="https://www.paopao.info/">View Demo</a>
·
<a href="https://github.com/rocboss/paopao-ce/pulls">Pull Request</a>
·
<a href="https://www.yuque.com/rocs/paopao/about">Features</a>
</p>
</div>
---
## 预览
Web端:
[![明色主题][product-light-screenshot]](https://www.paopao.info)
[![暗色主题][product-dark-screenshot]](https://www.paopao.info)
更多演示请前往[官网](https://www.paopao.info)体验(谢绝灌水)
桌面端:
![](docs/proposal/.assets/000-00.png)
<p align="right">(<a href="#top">back to top</a>)</p>
## 🛠 技术栈
PaoPao主要由以下优秀的开源项目/工具构建
#### 后端:
* [Go](https://go.dev/ 'go')
* [Gin](https://gin-gonic.com/ 'gin')
* [Mir](https://github.com/alimy/mir 'go-mir')
* [Buf](https://github.com/bufbuild/buf 'buf')
* [gRPC](https://github.com/grpc/grpc-go 'grpc-go')
* [Zinc](https://zinclabs.io/ 'zinc')
#### 前端:
* [Naive UI](https://www.naiveui.com/)
* [Vue.js](https://vuejs.org/)
* [Vite.js](https://vitejs.dev/)
* [tauri](https://github.com/tauri-apps/tauri 'tauri')
<!-- GETTING STARTED -->
## 🏗 快速开始
### 环境要求
* Go (1.20+)
* Node.js (14+)
* MySQL (5.7+)
* Redis
* Zinc
> Zinc是一款轻量级全文搜索引擎,可以查阅 <https://zincsearch.com/> 安装
以上环境版本为PaoPao官方的开发版本,仅供参考,其他版本的环境未进行充分测试
### 安装说明
### 方式一. 手动安装(推荐)
克隆代码库
```sh
git clone https://github.com/rocboss/paopao-ce.git
```
#### 后端
1. 导入项目根目录下的 `scripts/paopao.sql` 文件至MySQL数据库
2. 拷贝项目根目录下 `config.yaml.sample` 文件至 `config.yaml`,按照注释完成配置编辑
3. 编译后端
编译api服务:
```sh
make build
```
编译api服务、内嵌web前端ui:
```sh
make build TAGS='embed'
```
编译后在`release`目录可以找到对应可执行文件。
```sh
release/paopao-ce
```
4. 直接运行后端
运行api服务:
```sh
make run
```
运行api服务、web前端ui服务:
```sh
make run TAGS='embed'
```
提示: 如果需要内嵌web前端ui,请先构建web前端(建议设置web/.env为VITE_HOST="")。
5. 使用内置的Migrate机制自动升级维护SQL DDL:
```sh
# 添加 Migration 功能到 Features 中 开启migrate功能
vim config.yaml
# file: config.yaml
# Features:
# Default: ["Base", "MySQL", "Zinc", "MinIO", "LoggerZinc", "Migration"]
# 编译时加入migration tag编译出支持migrate功能的可执行文件
make build TAGS='migration'
release/paopao-ce
# 或者 带上migration tag直接运行
make run TAGS='migration'
```
> 注意:默认编译出来的可执行文件是不内置migrate功能,需要编译时带上migration tag才能内置支持migrage功能。
#### 前端
1. 进入前端目录 `web`,拷贝`.env` 到 `.env.local`,编辑 `.env.local ` 文件中后端服务地址及其他配置项,下载依赖包
```sh
cd ./web && cp .env .env.local
vim .env.local
yarn
```
2. 编译前端
```sh
yarn build
```
build完成后,可以在dist目录获取编译产出,配置nginx指向至该目录即可
#### 桌面端
1. 进入前端目录 `web`,拷贝`.env` 到 `.env.local`,编辑 `.env.local ` 文件中后端服务地址及其他配置项,下载依赖包
```sh
cd ./web && cp .env .env.local
vim .env.local
yarn
```
2. 编译前端
```sh
yarn build
```
3. 构建桌面端
```sh
yarn tauri build
```
桌面端是使用[Rust](https://www.rust-lang.org/) + [tauri](https://github.com/tauri-apps/tauri)编写
的,需要安装tauri的依赖,具体参考[https://tauri.studio/v1/guides/getting-started/prerequisites](https://tauri.studio/v1/guides/getting-started/prerequisites).
### 方式二. 使用Docker构建、运行
* 后端:
```sh
# 默认参数构建, 默认内嵌web ui并设置api host为空
docker build -t your/paopao-ce:tag .
# 内嵌web ui并且自定义API host参数
docker build -t your/paopao-ce:tag --build-arg API_HOST=http://api.paopao.info .
# 内嵌web ui并且使用本地web/.env中的API host
docker build -t your/paopao-ce:tag --build-arg USE_API_HOST=no .
# 内嵌web ui并且使用本地编译的web/dist构建
docker build -t your/paopao-ce:tag --build-arg USE_DIST=yes .
# 只编译api server
docker build -t your/paopao-ce:tag --build-arg EMBED_UI=no .
# 运行
mkdir custom && docker run -d -p 8008:8008 -v ${PWD}/custom:/app/paopao-ce/custom -v ${PWD}/config.yaml.sample:/app/paopao-ce/config.yaml your/paopao-ce:tag
# 或者直接运行构建好的docker image
mkdir custom && docker run -d -p 8008:8008 -v ${PWD}/custom:/app/paopao-ce/custom -v ${PWD}/config.yaml.sample:/app/paopao-ce/config.yaml bitbus/paopao-ce:latest
```
* 前端:
```sh
cd web
# 默认参数构建
docker build -t your/paopao-ce:web .
# 自定义API host 参数构建
docker build -t your/paopao-ce:web --build-arg API_HOST=http://api.paopao.info .
# 使用本地编译的dist构建
docker build -t your/paopao-ce:web --build-arg USE_DIST=yes .
# 运行
docker run -d -p 8010:80 your/paopao-ce:web
```
### 方式三. 使用 docker-compose 运行
```sh
git clone https://github.com/rocboss/paopao-ce.git
cd paopao-ce && docker compose up -d
# visit http://localhost:8008 👀 paopao-ce
# visit http://localhost:8001 👀 RedisInsight
# visit http://localhost:8080 👀 phpMyAdmin
```
默认是使用config.yaml.sample的配置,如果需要自定义配置,请拷贝默认配置文件(比如config.yaml),修改后再同步配置到docker-compose.yaml如下:
```
# file: docker-compose.yaml
...
backend:
image: bitbus/paopao-ce:latest
restart: always
depends_on:
- db
- redis
- zinc
# modify below to reflect your custom configure
volumes:
- ./config.yaml:/app/paopao-ce/config.yaml
ports:
- 8008:8008
networks:
- paopao-network
....
```
> 注意:默认提供的 docker-compose.yaml 初衷是搭建本机开发调试环境,如果需要产品部署供外网访问,请自行调优配置参数或使用其他方式部署。
### 开发文档
#### Docs文档说明
`docs`目录提供了各种开发文档,包括:
* [deploy](docs/deploy/) - paopao-ce部署文档
* [discuss](docs/discuss/) - 开发相关的问题交流论述文档
* [openapi](docs/openapi/) - paopao-ce后端导出API文档
* [proposal](docs/proposal/) - paopao-ce功能特性提按文档
> 比如,关于paopao-ce的设计定位,可以参考[docs/proposal/001-关于paopao-ce的设计定位](docs/proposal/001-关于paopao-ce的设计定位.md),简要阐述了paopao-ce是如何定位自身的。
#### API文档
开发者可以在本地开启`Docs`服务,浏览后端导出的API服务接口文档。
* `config.yaml` 添加 `Docs` 功能项:
```yaml
...
Features:
Default: ["Base", "M
没有合适的资源?快使用搜索试试~ 我知道了~
Go+Zinc架构PaoPao泡泡清新文艺的微社区系统源码
共492个文件
go:203个
js:52个
sql:43个
需积分: 3 0 下载量 89 浏览量
2024-10-08
20:54:15
上传
评论
收藏 9.04MB ZIP 举报
温馨提示
泡泡微社区是一个规模不大但功能完备的高性能微社区。它采用了Go+Zinc架构,前端使用Vue3构建,界面采用清新简洁的设计风格,布局类似Twitter的三栏设计。 后端服务使用Go编写,内存占用仅为8MB。即使在单实例每秒请求请求请求的情况下,内存消耗也稳定在约20MB左右,资源消耗非常低。 全文检索功能采用了轻量级的Zinc替代了笨重的ElasticSearch。在拥有10万条数据时,Zinc的内存占用也只有约10MB左右。 泡泡提供明暗两套主题,可以根据系统的主题色自动切换。这样用户可以根据自己的喜好选择适合自己的界面风格。 泡泡的设计注重性能和用户体验,无论是在资源消耗方面还是界面交互方面都做到了优秀的平。。用户可以享受到快速、流畅的社区体验,并根据个人喜好进行个性化设置。 ### 环境要求 * Go (1.20+) * Node.js (14+) * MySQL (5.7+) * Redis * Zinc
资源推荐
资源详情
资源评论
收起资源包目录
Go+Zinc架构PaoPao泡泡清新文艺的微社区系统源码 (492个子文件)
Post-d4d1dd23.css 7KB
index-df729f44.css 3KB
Messages-7ed31ecd.css 1KB
Home-47eb20e2.css 1KB
User-4f525d0f.css 1KB
Setting-bfd24152.css 1KB
Wallet-77044929.css 940B
Anouncement-662e2d95.css 871B
post-item-37a52e00.css 860B
Contacts-b60e5e0d.css 837B
Profile-5d71a5c2.css 723B
v3-infinite-loading-7d241236.css 704B
content-cc55174b.css 614B
main-nav-3ef9bae6.css 458B
Topic-8dbcebb5.css 395B
vfonts-7afd136d.css 289B
Collection-e1365ea0.css 242B
post-skeleton-f1900002.css 238B
404-020b2afd.css 167B
qqwry.dat 9.98MB
Dockerfile 1KB
Dockerfile 474B
Dockerfile-backend-builder 109B
Dockerfile-backend-runner 117B
.dockerignore 79B
.dockerignore 59B
001-01.drawio 5KB
006-01.drawio 4KB
001-03.drawio 3KB
001-02.drawio 2KB
.env 1KB
.gitattributes 107B
.gitignore 310B
.gitignore 101B
.gitignore 82B
priv.go 25KB
priv.go 23KB
core.go 17KB
core.go 12KB
auth.pb.go 11KB
comments.go 11KB
tweets.go 11KB
loose.go 8KB
storage.go 8KB
setting.go 7KB
utils.go 7KB
zinc.go 7KB
meili.go 7KB
alipay.go 7KB
loose.go 7KB
base.go 7KB
contacts.go 6KB
pub.go 6KB
friendship.go 6KB
base.go 6KB
auth_grpc.pb.go 6KB
pub.go 6KB
xerror.go 6KB
followship.go 6KB
post.go 5KB
topics.go 5KB
huaweiobs.go 5KB
minio.go 5KB
redis.go 5KB
priv.go 5KB
alipay_priv.go 5KB
conf.go 5KB
zinc.go 5KB
index.go 5KB
localoss.go 5KB
alioss.go 4KB
cos.go 4KB
server.go 4KB
wallet.go 4KB
message.go 4KB
friendship.go 4KB
user.go 4KB
comment.go 3KB
contact.go 3KB
jinzhu.go 3KB
iploc.go 3KB
user.go 3KB
user.go 3KB
user.go 3KB
comment_reply.go 3KB
tweets.go 3KB
dao.go 3KB
search.go 3KB
simple.go 3KB
post_collection.go 3KB
priv.go 3KB
migration_embed.go 3KB
post_star.go 3KB
web.go 3KB
post_content.go 3KB
cache.go 3KB
core.go 3KB
jwt.go 3KB
topic.go 3KB
admin.go 2KB
共 492 条
- 1
- 2
- 3
- 4
- 5
资源评论
抖码
- 粉丝: 294
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 机器学习(预测模型):全球大型超市四年(2011-2014)的销售数据
- 机器学习(大模型):法律领域预训练的大型语言模型(LLM)微调而设计的数据集
- 密歇根州立大学ODE讲义
- 超级好用的OCR软件,支持截图,文字识别
- android-studio-2024.2.1.10-windows-zip.zip.001
- android-studio-2024.2.1.10-windows-zip.zip.002
- 仿twitter社区源码推特PHP源码修复版
- 静态编译的Qt6.6.3(win10+MSVC2019+openssl+静态运行时) part01
- 机器学习(预测模型):自行车共享使用情况的数据集
- 公司年会策划方案(完整).doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功