清新文艺的微社区PaoPao

什么是 PaoPao ?

PaoPao 是一个 Go 写的轻量级社区。采用 Gin+Vue 实现的微社区,界面清爽拥有话题、发布短内容、评论等功能。

安装

在群晖上以 Docker 方式安装。

本文写作时,bitbus/paopao-ce 镜像, latest 对应的版本是 0.5.2

接下来要准备 3 个文件,分别是:

  • paopao-mysql.sql:数据库初始化脚本;
  • config.yaml.sample:应用的设置文件;
  • docker-compose.ymlDocker Compose 工具使用的配置文件,用于定义和管理多个 docker 容器的服务;

paopao-mysql.sql

文件比较长,直接去官网下载,不需要修改

地址: https://github.com/rocboss/paopao-ce/blob/main/scripts/paopao-mysql.sql

config.yaml.sample

文件比较长,直接去官网下载

地址:
https://github.com/rocboss/paopao-ce/blob/main/config.yaml.sample

文件需要根据自己的设置进行修改,将 LocalOSS 中的 Domain 后面的值,由 127.0.0.1:8008 改为你群晖的主机 IP + 8038端口或者域名

之所以是 8038 而不是 8008 是因为主机端口在 docker-compose.yml 中设置为了 8038

否则上传的图片会显示不出来

docker-compose.yml

将下面的内容保存为 docker-compose.yml,这是基于官方的 docker-compose.yaml 修改而成

原文件地址:https://github.com/rocboss/paopao-ce/blob/main/docker-compose.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
version: '3.1'

services:
db:
image: mysql:8.0
container_name: paopao-db
restart: always
#ports:
# - 3306:3306
volumes:
- ./paopao-mysql.sql:/docker-entrypoint-initdb.d/paopao.sql
- ./mysql_data:/var/lib/mysql
environment:
MYSQL_DATABASE: paopao
MYSQL_USER: paopao
MYSQL_PASSWORD: paopao
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'

redis:
image: redis/redis-stack:7.2.0-v2
container_name: paopao-redis
restart: always
#ports:
# - 6379:6379
# - 8001:8001
environment:
REDISEARCH_ARGS: "MAXSEARCHRESULTS 5"

meili:
image: getmeili/meilisearch:v1.4
container_name: paopao-meili
restart: always
#ports:
# - 7700:7700
volumes:
- ./meili_data:/meili_data
environment:
- MEILI_MASTER_KEY=paopao-meilisearch

backend:
image: bitbus/paopao-ce
container_name: paopao-web
restart: always
ports:
- 8038:8008
# modify below to reflect your custom configure
volumes:
- ./config.yaml.sample:/app/paopao-ce/config.yaml
- ./data:/app/paopao-ce/custom
depends_on:
- db
- redis
- meili
  • 容器 paopao-db 的环境变量
可变
MYSQL_DATABASE 数据库库名
MYSQL_USER 数据库用户
MYSQL_PASSWORD 数据库用户对应的密码
MYSQL_RANDOM_ROOT_PASSWORD 启用随机生成的 root 用户密码

前三个参数如果修改了默认值,需要同步修改 config.yaml.sample 文件中对应的 MySQL 数据库部分

然后执行下面的命令

1
2
3
4
5
6
7
# 新建文件夹 paopao 和 子目录
mkdir -p /volume1/docker/paopao/{data,meili_data,mysql_data}

# 进入 paopao 目录
cd /volume1/docker/paopao

# 将 paopao-mysql.sql、config.yaml.sample、docker-compose.yml 三个文件放入当前目录

现在的目录结构如下:

为了避免容器 paopao-web 因连接数据库失败而反复重启,我们需要需要先启动数据库

1
2
# 一键启动数据库
docker-compose up -d db

数据库初始化大概5分钟左右,当看到日志显示下面的信息,数据库应该就准备好了

1
[Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.33' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.

接下来就可以启动其他容器了

1
2
# 一键启动
docker-compose up -d

如果没什么意外的话,现在应该能看到 4 个容器在运行

运行

在浏览器中输入 http://群晖IP:8038 就能看到主界面

先点注册 按钮注册新用户

注册成功之后的界面

发帖方式类似于微博和推特,先试试图片,看起来一切正常

PaoPao 和我们之前介绍的 Misskey 是同类应用,只是 PaoPao 并不是去中心化的

文章传送门:去中心化开源社交平台Misskey

但是,PaoPao 有桌面端,下载地址:https://github.com/rocboss/paopao-ce/releases

有兴趣你可以搭一个试试

参考文档

rocboss/paopao-ce: 🔥An artistic “twitter like” community built on gin+zinc+vue+ts 清新文艺微社区
地址:https://github.com/rocboss/paopao-ce

广场 | 泡泡 - 一个清新文艺的微社区
地址:https://www.paopao.info