mirror of
https://github.com/okxlin/appstore.git
synced 2026-09-22 16:00:58 +00:00
feat: add PaoPao-ce app (#4360)
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# PaoPao-ce
|
||||
|
||||
## 产品介绍
|
||||
PaoPao-ce 是一个基于 Go 和 Vue 的开源微社区平台,适合自托管社区、轻量社交和产品讨论场景。
|
||||
|
||||
## 主要功能
|
||||
- 发布动态、评论和互动
|
||||
- 内嵌 Web 前端
|
||||
- 使用 MySQL、Redis Stack 和 Meilisearch 提供数据、缓存和搜索能力
|
||||
- 支持本地附件存储
|
||||
|
||||
## 访问说明
|
||||
安装后通过 `http://<服务器 IP>:18088` 访问,实际端口以安装表单中的 `PANEL_APP_PORT_HTTP` 为准。
|
||||
|
||||
首次安装不会创建默认管理员账号,请打开页面后按界面流程注册首个账号,并及时在应用内完成站点设置。
|
||||
|
||||
## Introduction
|
||||
PaoPao-ce is an open source micro-community platform built with Go and Vue for self-hosted communities, social timelines and product discussions.
|
||||
|
||||
## Features
|
||||
- Posts, comments and social interactions
|
||||
- Embedded web frontend
|
||||
- MySQL, Redis Stack and Meilisearch for storage, cache and search
|
||||
- Local attachment storage
|
||||
|
||||
## 部署说明
|
||||
- 本应用使用官方多服务 Docker Compose 拓扑:PaoPao-ce Backend、MySQL、Redis Stack、Meilisearch。
|
||||
- 后端镜像固定为 `bitbus/paopao-ce:v0.6.0-alpha.2`。Docker Hub 当前没有发布 `v0.6.0-alpha.3` 后端镜像,且官方 compose 默认的 `0.6-alpha` tag 不存在。
|
||||
- 当前仅声明 amd64 架构,因为 `bitbus/paopao-ce` 已发布后端镜像为 amd64 单架构。
|
||||
- 不使用 all-in-one 镜像;该镜像在测试中出现缺少 `groupmod`、`usermod`、`gosu` 且 HTTP 服务未正常启动的问题。
|
||||
- `crossVersionUpdate` 已关闭,后续升级需要人工确认镜像 tag、数据库兼容性和真实升级测试。
|
||||
|
||||
## 端口
|
||||
| 变量 | 说明 | 默认值 | 必填 |
|
||||
| --- | --- | --- | --- |
|
||||
| PANEL_APP_PORT_HTTP | Web 访问端口 | 18088 | 是 |
|
||||
|
||||
## 数据持久化
|
||||
| 路径 | 说明 |
|
||||
| --- | --- |
|
||||
| APP_DATA_DIR/custom | PaoPao 配置、附件和日志 |
|
||||
| APP_DATA_DIR/mysql | MySQL 数据 |
|
||||
| APP_DATA_DIR/redis | Redis Stack 数据 |
|
||||
| APP_DATA_DIR/meili | Meilisearch 数据 |
|
||||
| APP_DATA_DIR/initdb | MySQL 首次初始化 SQL |
|
||||
|
||||
升级或迁移前,请先在 1Panel 中备份上述数据目录。
|
||||
|
||||
## 参数说明
|
||||
| 变量 | 说明 | 默认值 | 必填 |
|
||||
| --- | --- | --- | --- |
|
||||
| PUBLIC_DOMAIN | 本地附件公开访问主机,通常为 `服务器 IP:端口` 或反代域名 | 127.0.0.1:18088 | 是 |
|
||||
| MYSQL_PASSWORD | MySQL 数据库密码 | 随机生成 | 是 |
|
||||
| JWT_SECRET | JWT 签名密钥 | 随机生成 | 是 |
|
||||
| MEILI_MASTER_KEY | Meilisearch 主密钥 | 随机生成 | 是 |
|
||||
|
||||
## 使用说明
|
||||
- 后端容器首次启动时只在 `APP_DATA_DIR/custom/config.yaml` 不存在时生成配置文件,不会覆盖用户后续修改。
|
||||
- MySQL 初始化 SQL 会复制到 `APP_DATA_DIR/initdb/paopao.sql`,仅在 MySQL 数据目录首次初始化时执行。
|
||||
- 仅暴露 PaoPao Web 端口;MySQL、Redis Stack 和 Meilisearch 不对外暴露。
|
||||
- 如果通过反向代理或域名访问,请将 `PUBLIC_DOMAIN` 设置为最终访问主机,不要包含 `http://` 或 `https://`。
|
||||
|
||||
## 参考资料
|
||||
- 项目仓库: <https://github.com/rocboss/paopao-ce>
|
||||
- 官方 compose: <https://github.com/rocboss/paopao-ce/blob/v0.6.0-alpha.2/docker-compose.yaml>
|
||||
- 安装文档: <https://github.com/rocboss/paopao-ce/blob/main/INSTALL_ZH.md>
|
||||
@@ -0,0 +1,29 @@
|
||||
name: PaoPao-ce
|
||||
tags:
|
||||
- Website
|
||||
title: 开源微社区平台
|
||||
description: 开源微社区平台
|
||||
additionalProperties:
|
||||
key: paopao-ce
|
||||
name: PaoPao-ce
|
||||
tags:
|
||||
- Website
|
||||
shortDescZh: 开源微社区平台
|
||||
shortDescEn: Open source micro-community platform
|
||||
description:
|
||||
en: A self-hosted micro-community platform built with Go and Vue, with embedded web UI, local storage and search support.
|
||||
zh: 基于 Go 和 Vue 的自托管微社区平台,内置 Web 前端、本地存储和搜索能力。
|
||||
zh-Hant: 基於 Go 和 Vue 的自託管微社群平台,內建 Web 前端、本地儲存和搜尋能力。
|
||||
ja: Go と Vue で構築されたセルフホスト向けマイクロコミュニティ平台で、組み込み Web UI、ローカルストレージ、検索を備えています。
|
||||
ko: Go와 Vue로 구축된 셀프 호스팅 마이크로 커뮤니티 플랫폼으로 내장 Web UI, 로컬 스토리지 및 검색을 제공합니다.
|
||||
ru: Самостоятельно размещаемая микросоциальная платформа на Go и Vue со встроенным Web UI, локальным хранилищем и поиском.
|
||||
ms: Platform mikro-komuniti hos sendiri berasaskan Go dan Vue dengan Web UI terbina, storan tempatan dan carian.
|
||||
pt-br: Plataforma de microcomunidade auto-hospedada em Go e Vue, com Web UI embutida, armazenamento local e busca.
|
||||
type: website
|
||||
crossVersionUpdate: false
|
||||
limit: 0
|
||||
website: https://github.com/rocboss/paopao-ce
|
||||
github: https://github.com/rocboss/paopao-ce
|
||||
document: https://github.com/rocboss/paopao-ce/blob/v0.6.0-alpha.2/docker-compose.yaml
|
||||
architectures:
|
||||
- amd64
|
||||
@@ -0,0 +1,8 @@
|
||||
PANEL_APP_PORT_HTTP=18088
|
||||
TZ=Asia/Shanghai
|
||||
APP_DATA_DIR=./data
|
||||
PUBLIC_DOMAIN=127.0.0.1:18088
|
||||
MYSQL_PASSWORD=paopao_mysql_password
|
||||
JWT_SECRET=paopao_jwt_secret
|
||||
MEILI_MASTER_KEY=paopao_meili_master_key
|
||||
CONTAINER_NAME=paopao-ce
|
||||
@@ -0,0 +1,121 @@
|
||||
additionalProperties:
|
||||
formFields:
|
||||
- default: 18088
|
||||
edit: true
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
labelEn: HTTP Port
|
||||
labelZh: HTTP 端口
|
||||
label:
|
||||
en: HTTP Port
|
||||
zh: HTTP 端口
|
||||
zh-Hant: HTTP 埠
|
||||
ja: HTTP ポート
|
||||
ko: HTTP 포트
|
||||
ru: HTTP-порт
|
||||
ms: Port HTTP
|
||||
pt-br: Porta HTTP
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
- default: Asia/Shanghai
|
||||
edit: true
|
||||
envKey: TZ
|
||||
labelEn: Timezone
|
||||
labelZh: 时区
|
||||
label:
|
||||
en: Timezone
|
||||
zh: 时区
|
||||
zh-Hant: 時區
|
||||
ja: タイムゾーン
|
||||
ko: 시간대
|
||||
ru: Часовой пояс
|
||||
ms: Zon waktu
|
||||
pt-br: Fuso horario
|
||||
required: true
|
||||
type: text
|
||||
- default: ./data
|
||||
edit: true
|
||||
envKey: APP_DATA_DIR
|
||||
labelEn: Data Directory
|
||||
labelZh: 数据目录
|
||||
label:
|
||||
en: Data Directory
|
||||
zh: 数据目录
|
||||
zh-Hant: 資料目錄
|
||||
ja: データディレクトリ
|
||||
ko: 데이터 디렉터리
|
||||
ru: Каталог данных
|
||||
ms: Direktori data
|
||||
pt-br: Diretorio de dados
|
||||
required: true
|
||||
type: text
|
||||
- default: 127.0.0.1:18088
|
||||
edit: true
|
||||
envKey: PUBLIC_DOMAIN
|
||||
labelEn: Public Host
|
||||
labelZh: 公开访问主机
|
||||
label:
|
||||
en: Public Host
|
||||
zh: 公开访问主机
|
||||
zh-Hant: 公開存取主機
|
||||
ja: 公開アクセスホスト
|
||||
ko: 공개 접속 호스트
|
||||
ru: Публичный хост
|
||||
ms: Hos awam
|
||||
pt-br: Host publico
|
||||
required: true
|
||||
type: text
|
||||
- default: paopao_mysql_password
|
||||
edit: true
|
||||
envKey: MYSQL_PASSWORD
|
||||
labelEn: MySQL Password
|
||||
labelZh: MySQL 密码
|
||||
label:
|
||||
en: MySQL Password
|
||||
zh: MySQL 密码
|
||||
zh-Hant: MySQL 密碼
|
||||
ja: MySQL パスワード
|
||||
ko: MySQL 비밀번호
|
||||
ru: Пароль MySQL
|
||||
ms: Kata laluan MySQL
|
||||
pt-br: Senha do MySQL
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
- default: paopao_jwt_secret
|
||||
edit: true
|
||||
envKey: JWT_SECRET
|
||||
labelEn: JWT Secret
|
||||
labelZh: JWT 密钥
|
||||
label:
|
||||
en: JWT Secret
|
||||
zh: JWT 密钥
|
||||
zh-Hant: JWT 金鑰
|
||||
ja: JWT シークレット
|
||||
ko: JWT 비밀키
|
||||
ru: Секрет JWT
|
||||
ms: Rahsia JWT
|
||||
pt-br: Segredo JWT
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
- default: paopao_meili_master_key
|
||||
edit: true
|
||||
envKey: MEILI_MASTER_KEY
|
||||
labelEn: Meilisearch Master Key
|
||||
labelZh: Meilisearch 主密钥
|
||||
label:
|
||||
en: Meilisearch Master Key
|
||||
zh: Meilisearch 主密钥
|
||||
zh-Hant: Meilisearch 主金鑰
|
||||
ja: Meilisearch マスターキー
|
||||
ko: Meilisearch 마스터 키
|
||||
ru: Главный ключ Meilisearch
|
||||
ms: Kunci induk Meilisearch
|
||||
pt-br: Chave mestra do Meilisearch
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
@@ -0,0 +1,516 @@
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_attachment
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_attachment`;
|
||||
CREATE TABLE `p_attachment` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0',
|
||||
`file_size` BIGINT NOT NULL,
|
||||
`img_width` BIGINT NOT NULL DEFAULT '0',
|
||||
`img_height` BIGINT NOT NULL DEFAULT '0',
|
||||
`type` tinyint NOT NULL DEFAULT '1' COMMENT '1图片,2视频,3其他附件',
|
||||
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_attachment_user` (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=100041 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='附件';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_captcha
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_captcha`;
|
||||
CREATE TABLE `p_captcha` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '验证码ID',
|
||||
`phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号',
|
||||
`captcha` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '验证码',
|
||||
`use_times` int NOT NULL DEFAULT '0' COMMENT '使用次数',
|
||||
`expired_on` BIGINT NOT NULL DEFAULT '0' COMMENT '过期时间',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_captcha_phone` (`phone`) USING BTREE,
|
||||
KEY `idx_captcha_expired_on` (`expired_on`) USING BTREE,
|
||||
KEY `idx_captcha_use_times` (`use_times`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1021 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='手机验证码';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_comment
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_comment`;
|
||||
CREATE TABLE `p_comment` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '评论ID',
|
||||
`post_id` BIGINT NOT NULL DEFAULT '0' COMMENT 'POST ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
|
||||
`ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
|
||||
`is_essence` tinyint NOT NULL DEFAULT 0 COMMENT '是否精选',
|
||||
`reply_count` int NOT NULL DEFAULT 0 COMMENT '回复数',
|
||||
`thumbs_up_count` int NOT NULL DEFAULT 0 COMMENT '点赞数',
|
||||
`thumbs_down_count` int NOT NULL DEFAULT 0 COMMENT '点踩数',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_comment_post_id` (`post_id`) USING BTREE,
|
||||
KEY `idx_comment_user_id` (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=6001736 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_comment_content
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_comment_content`;
|
||||
CREATE TABLE `p_comment_content` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '内容ID',
|
||||
`comment_id` BIGINT NOT NULL DEFAULT '0' COMMENT '评论ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
|
||||
`type` tinyint NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址',
|
||||
`sort` BIGINT NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_comment_content_comment_id` (`comment_id`) USING BTREE,
|
||||
KEY `idx_comment_content_user_id` (`user_id`) USING BTREE,
|
||||
KEY `idx_comment_content_type` (`type`) USING BTREE,
|
||||
KEY `idx_comment_content_sort` (`sort`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=11001738 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论内容';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_comment_reply
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_comment_reply`;
|
||||
CREATE TABLE `p_comment_reply` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '回复ID',
|
||||
`comment_id` BIGINT NOT NULL DEFAULT '0' COMMENT '评论ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`at_user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '@用户ID',
|
||||
`content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
|
||||
`ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
|
||||
`ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
|
||||
`thumbs_up_count` int NOT NULL DEFAULT '0' COMMENT '点赞数',
|
||||
`thumbs_down_count` int NOT NULL DEFAULT '0' COMMENT '点踩数',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_comment_reply_comment_id` (`comment_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=12000015 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论回复';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_comment_metric
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_comment_metric`;
|
||||
CREATE TABLE `p_comment_metric` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`comment_id` BIGINT NOT NULL,
|
||||
`rank_score` BIGINT NOT NULL DEFAULT 0,
|
||||
`incentive_score` int NOT NULL DEFAULT 0,
|
||||
`decay_factor` int NOT NULL DEFAULT 0,
|
||||
`motivation_factor` int NOT NULL DEFAULT 0,
|
||||
`is_del` tinyint NOT NULL DEFAULT 0,
|
||||
`created_on` BIGINT NOT NULL DEFAULT 0,
|
||||
`modified_on` BIGINT NOT NULL DEFAULT 0,
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_comment_metric_comment_id_rank_score` (`comment_id`, `rank_score`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_tweet_comment_thumbs
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_tweet_comment_thumbs`;
|
||||
CREATE TABLE `p_tweet_comment_thumbs` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'thumbs ID',
|
||||
`user_id` BIGINT NOT NULL,
|
||||
`tweet_id` BIGINT NOT NULL COMMENT '推文ID',
|
||||
`comment_id` BIGINT NOT NULL COMMENT '评论ID',
|
||||
`reply_id` BIGINT COMMENT '评论回复ID',
|
||||
`comment_type` TINYINT NOT NULL DEFAULT '0' COMMENT '评论类型 0为推文评论、1为评论回复',
|
||||
`is_thumbs_up` TINYINT NOT NULL DEFAULT '0' COMMENT '是否点赞',
|
||||
`is_thumbs_down` TINYINT NOT NULL DEFAULT '0' COMMENT '是否点踩',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` TINYINT NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_tweet_comment_thumbs_uid_tid` (`user_id`, `tweet_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='推文评论点赞';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_message
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_message`;
|
||||
CREATE TABLE `p_message` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '消息通知ID',
|
||||
`sender_user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '发送方用户ID',
|
||||
`receiver_user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '接收方用户ID',
|
||||
`type` tinyint NOT NULL DEFAULT '1' COMMENT '通知类型,1动态,2评论,3回复,4私信,99系统通知',
|
||||
`brief` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '摘要说明',
|
||||
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '详细内容',
|
||||
`post_id` BIGINT NOT NULL DEFAULT '0' COMMENT '动态ID',
|
||||
`comment_id` BIGINT NOT NULL DEFAULT '0' COMMENT '评论ID',
|
||||
`reply_id` BIGINT NOT NULL DEFAULT '0' COMMENT '回复ID',
|
||||
`is_read` tinyint NOT NULL DEFAULT '0' COMMENT '是否已读',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_message_receiver_user_id` (`receiver_user_id`) USING BTREE,
|
||||
KEY `idx_message_is_read` (`is_read`) USING BTREE,
|
||||
KEY `idx_message_type` (`type`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=16000033 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='消息通知';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_post
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_post`;
|
||||
CREATE TABLE `p_post` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主题ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`comment_count` BIGINT NOT NULL DEFAULT '0' COMMENT '评论数',
|
||||
`collection_count` BIGINT NOT NULL DEFAULT '0' COMMENT '收藏数',
|
||||
`upvote_count` BIGINT NOT NULL DEFAULT '0' COMMENT '点赞数',
|
||||
`share_count` BIGINT NOT NULL DEFAULT '0' COMMENT '分享数',
|
||||
`visibility` tinyint NOT NULL DEFAULT '0' COMMENT '可见性: 0私密 10充电可见 20订阅可见 30保留 40保留 50好友可见 60关注可见 70保留 80保留 90公开',
|
||||
`is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶',
|
||||
`is_essence` tinyint NOT NULL DEFAULT '0' COMMENT '是否精华',
|
||||
`is_lock` tinyint NOT NULL DEFAULT '0' COMMENT '是否锁定',
|
||||
`latest_replied_on` BIGINT NOT NULL DEFAULT '0' COMMENT '最新回复时间',
|
||||
`tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标签',
|
||||
`attachment_price` BIGINT NOT NULL DEFAULT '0' COMMENT '附件价格(分)',
|
||||
`ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
|
||||
`ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_post_user_id` (`user_id`) USING BTREE,
|
||||
KEY `idx_post_visibility` (`visibility`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1080017989 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_post_metric
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_post_metric`;
|
||||
CREATE TABLE `p_post_metric` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`post_id` BIGINT NOT NULL,
|
||||
`rank_score` BIGINT NOT NULL DEFAULT 0,
|
||||
`incentive_score` int NOT NULL DEFAULT 0,
|
||||
`decay_factor` int NOT NULL DEFAULT 0,
|
||||
`motivation_factor` int NOT NULL DEFAULT 0,
|
||||
`is_del` tinyint NOT NULL DEFAULT 0, -- 是否删除, 0否, 1是
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_post_metric_post_id_rank_score` (`post_id`,`rank_score`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_post_attachment_bill
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_post_attachment_bill`;
|
||||
CREATE TABLE `p_post_attachment_bill` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '购买记录ID',
|
||||
`post_id` BIGINT NOT NULL DEFAULT '0' COMMENT 'POST ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`paid_amount` BIGINT NOT NULL DEFAULT '0' COMMENT '支付金额',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_post_attachment_bill_post_id` (`post_id`) USING BTREE,
|
||||
KEY `idx_post_attachment_bill_user_id` (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=5000002 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章附件账单';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_post_collection
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_post_collection`;
|
||||
CREATE TABLE `p_post_collection` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
|
||||
`post_id` BIGINT NOT NULL DEFAULT '0' COMMENT 'POST ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_post_collection_post_id` (`post_id`) USING BTREE,
|
||||
KEY `idx_post_collection_user_id` (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=6000012 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章收藏';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_post_content
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_post_content`;
|
||||
CREATE TABLE `p_post_content` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '内容ID',
|
||||
`post_id` BIGINT NOT NULL DEFAULT '0' COMMENT 'POST ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
|
||||
`type` tinyint NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源',
|
||||
`sort` int NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_post_content_post_id` (`post_id`) USING BTREE,
|
||||
KEY `idx_post_content_user_id` (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=180022546 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章内容';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_post_star
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_post_star`;
|
||||
CREATE TABLE `p_post_star` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
|
||||
`post_id` BIGINT NOT NULL DEFAULT '0' COMMENT 'POST ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_post_star_post_id` (`post_id`) USING BTREE,
|
||||
KEY `idx_post_star_user_id` (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=6000028 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章点赞';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_tag
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_tag`;
|
||||
CREATE TABLE `p_tag` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '标签ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '创建者ID',
|
||||
`tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标签名',
|
||||
`quote_num` BIGINT NOT NULL DEFAULT '0' COMMENT '引用数',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `idx_tag_tag` (`tag`) USING BTREE,
|
||||
KEY `idx_tag_user_id` (`user_id`) USING BTREE,
|
||||
KEY `idx_tag_quote_num` (`quote_num`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=9000065 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='标签';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_topic_user
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_topic_user`;
|
||||
CREATE TABLE `p_topic_user` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`topic_id` BIGINT NOT NULL COMMENT '标签ID',
|
||||
`user_id` BIGINT NOT NULL COMMENT '创建者ID',
|
||||
`alias_name` VARCHAR ( 255 ) COMMENT '别名',
|
||||
`remark` VARCHAR ( 512 ) COMMENT '备注',
|
||||
`quote_num` BIGINT COMMENT '引用数',
|
||||
`is_top` TINYINT NOT NULL DEFAULT '0' COMMENT '是否置顶 0 为未置顶、1 为已置顶',
|
||||
`is_pin` TINYINT NOT NULL DEFAULT '0' COMMENT '是否钉住 0 为未钉住、1 为已钉住',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` TINYINT NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
`reserve_a` VARCHAR ( 255 ) COMMENT '保留字段a',
|
||||
`reserve_b` VARCHAR ( 255 ) COMMENT '保留字段b',
|
||||
PRIMARY KEY ( `id` ) USING BTREE,
|
||||
UNIQUE KEY `idx_topic_user_uid_tid` ( `topic_id`, `user_id` ) USING BTREE,
|
||||
KEY `idx_topic_user_uid_ispin` ( `user_id`, `is_pin`) USING BTREE
|
||||
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户话题';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_user
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_user`;
|
||||
CREATE TABLE `p_user` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||||
`nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '昵称',
|
||||
`username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户名',
|
||||
`phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号',
|
||||
`password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'MD5密码',
|
||||
`salt` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '盐值',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态,1正常,2停用',
|
||||
`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户头像',
|
||||
`balance` BIGINT NOT NULL COMMENT '用户余额(分)',
|
||||
`is_admin` tinyint NOT NULL DEFAULT '0' COMMENT '是否管理员',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `idx_user_username` (`username`) USING BTREE,
|
||||
KEY `idx_user_phone` (`phone`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=100058 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_user_metric
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_user_metric`;
|
||||
CREATE TABLE `p_user_metric` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`user_id` BIGINT NOT NULL,
|
||||
`tweets_count` int NOT NULL DEFAULT 0,
|
||||
`latest_trends_on` BIGINT NOT NULL DEFAULT 0 COMMENT '最新动态时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT 0,
|
||||
`created_on` BIGINT NOT NULL DEFAULT 0,
|
||||
`modified_on` BIGINT NOT NULL DEFAULT 0,
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_user_metric_user_id_tweets_count_trends` (`user_id`, `tweets_count`, `latest_trends_on`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_following
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_following`;
|
||||
CREATE TABLE `p_following` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`user_id` BIGINT NOT NULL,
|
||||
`follow_id` BIGINT NOT NULL,
|
||||
`is_del` tinyint NOT NULL DEFAULT 0, -- 是否删除, 0否, 1是
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_following_user_follow` (`user_id`,`follow_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_contact
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_contact`;
|
||||
CREATE TABLE `p_contact` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '联系人ID',
|
||||
`user_id` BIGINT NOT NULL COMMENT '用户ID',
|
||||
`friend_id` BIGINT NOT NULL COMMENT '好友ID',
|
||||
`group_id` BIGINT NOT NULL DEFAULT '0' COMMENT '好友分组ID:默认为0无分组',
|
||||
`remark` varchar(32) NOT NULL DEFAULT '' COMMENT '好友备注',
|
||||
`status` tinyint NOT NULL DEFAULT '0' COMMENT '好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友',
|
||||
`is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶, 0否, 1是',
|
||||
`is_black` tinyint NOT NULL DEFAULT '0' COMMENT '是否为黑名单, 0否, 1是',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除好友, 0否, 1是',
|
||||
`notice_enable` tinyint NOT NULL DEFAULT '0' COMMENT '是否有消息提醒, 0否, 1是',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `idx_contact_user_friend` (`user_id`,`friend_id`) USING BTREE,
|
||||
KEY `idx_contact_user_friend_status` (`user_id`, `friend_id`, `status`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='联系人';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_contact_group
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_contact_group`;
|
||||
CREATE TABLE `p_contact_group` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '联系人ID',
|
||||
`user_id` int NOT NULL DEFAULT '0' COMMENT '用户id',
|
||||
`name` varchar(32) NOT NULL DEFAULT '' COMMENT '分组名称',
|
||||
`is_del` tinyint NOT NULL DEFAULT '1' COMMENT '是否删除, 0否, 1是',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='联系人分组';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_wallet_recharge
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_wallet_recharge`;
|
||||
CREATE TABLE `p_wallet_recharge` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '充值ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`amount` BIGINT NOT NULL DEFAULT '0' COMMENT '充值金额',
|
||||
`trade_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '支付宝订单号',
|
||||
`trade_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '交易状态',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_wallet_recharge_user_id` (`user_id`) USING BTREE,
|
||||
KEY `idx_wallet_recharge_trade_no` (`trade_no`) USING BTREE,
|
||||
KEY `idx_wallet_recharge_trade_status` (`trade_status`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=10023 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='钱包流水';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for p_wallet_statement
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `p_wallet_statement`;
|
||||
CREATE TABLE `p_wallet_statement` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '账单ID',
|
||||
`user_id` BIGINT NOT NULL DEFAULT '0' COMMENT '用户ID',
|
||||
`change_amount` BIGINT NOT NULL DEFAULT '0' COMMENT '变动金额',
|
||||
`balance_snapshot` BIGINT NOT NULL DEFAULT '0' COMMENT '资金快照',
|
||||
`reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变动原因',
|
||||
`post_id` BIGINT NOT NULL DEFAULT '0' COMMENT '关联动态',
|
||||
`created_on` BIGINT NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`modified_on` BIGINT NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
`deleted_on` BIGINT NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
`is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_wallet_statement_user_id` (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=10010 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='钱包流水';
|
||||
|
||||
DROP VIEW IF EXISTS p_post_by_media;
|
||||
CREATE VIEW p_post_by_media AS
|
||||
SELECT post.*
|
||||
FROM
|
||||
( SELECT DISTINCT post_id FROM p_post_content WHERE ( TYPE = 3 OR TYPE = 4 OR TYPE = 7 OR TYPE = 8 ) AND is_del = 0 ) media
|
||||
JOIN p_post post ON media.post_id = post.ID
|
||||
WHERE
|
||||
post.is_del = 0;
|
||||
|
||||
DROP VIEW IF EXISTS p_post_by_comment;
|
||||
CREATE VIEW p_post_by_comment AS
|
||||
SELECT P.*, C.user_id comment_user_id
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
post_id,
|
||||
user_id
|
||||
FROM
|
||||
p_comment
|
||||
WHERE
|
||||
is_del = 0 UNION
|
||||
SELECT
|
||||
post_id,
|
||||
reply.user_id user_id
|
||||
FROM
|
||||
p_comment_reply reply
|
||||
JOIN p_comment COMMENT ON reply.comment_id = COMMENT.ID
|
||||
WHERE
|
||||
reply.is_del = 0
|
||||
AND COMMENT.is_del = 0
|
||||
)
|
||||
C JOIN p_post P ON C.post_id = P.ID
|
||||
WHERE
|
||||
P.is_del = 0;
|
||||
|
||||
DROP VIEW IF EXISTS p_user_relation;
|
||||
CREATE VIEW p_user_relation AS
|
||||
SELECT user_id, friend_id he_uid, 5 AS style
|
||||
FROM p_contact WHERE status=2 AND is_del=0
|
||||
UNION
|
||||
SELECT user_id, follow_id he_uid, 10 AS style
|
||||
FROM p_following WHERE is_del=0;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
@@ -0,0 +1,211 @@
|
||||
services:
|
||||
paopao-ce:
|
||||
image: "bitbus/paopao-ce:v0.6.0-alpha.2"
|
||||
container_name: ${CONTAINER_NAME}
|
||||
restart: always
|
||||
depends_on:
|
||||
paopao-ce-db:
|
||||
condition: service_healthy
|
||||
paopao-ce-redis:
|
||||
condition: service_healthy
|
||||
paopao-ce-meili:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- 1panel-network
|
||||
- paopao-ce-network
|
||||
ports:
|
||||
- "${PANEL_APP_PORT_HTTP}:8008"
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
- -c
|
||||
command:
|
||||
- |
|
||||
set -e
|
||||
yaml_quote() {
|
||||
value="$$1"
|
||||
printf '"'
|
||||
printf '%s' "$$value" | sed 's/\\/\\\\/g; s/"/\\"/g'
|
||||
printf '"'
|
||||
}
|
||||
mkdir -p /app/paopao-ce/custom/data/paopao-ce/oss /app/paopao-ce/custom/data/paopao-ce/logs
|
||||
if [ ! -f /app/paopao-ce/custom/config.yaml ]; then
|
||||
MYSQL_PASSWORD_FALLBACK="$${MYSQL_PASSWORD}"
|
||||
if [ -z "$$MYSQL_PASSWORD_FALLBACK" ]; then
|
||||
MYSQL_PASSWORD_FALLBACK="paopao"
|
||||
fi
|
||||
JWT_SECRET_FALLBACK="$${JWT_SECRET}"
|
||||
if [ -z "$$JWT_SECRET_FALLBACK" ]; then
|
||||
JWT_SECRET_FALLBACK="18a6413dc4fe394c66345ebe501b2f26"
|
||||
fi
|
||||
MEILI_MASTER_KEY_FALLBACK="$${MEILI_MASTER_KEY}"
|
||||
if [ -z "$$MEILI_MASTER_KEY_FALLBACK" ]; then
|
||||
MEILI_MASTER_KEY_FALLBACK="paopao-meilisearch"
|
||||
fi
|
||||
PUBLIC_DOMAIN_FALLBACK="$${PUBLIC_DOMAIN}"
|
||||
if [ -z "$$PUBLIC_DOMAIN_FALLBACK" ]; then
|
||||
PANEL_APP_PORT_HTTP_FALLBACK="$${PANEL_APP_PORT_HTTP}"
|
||||
if [ -z "$$PANEL_APP_PORT_HTTP_FALLBACK" ]; then
|
||||
PANEL_APP_PORT_HTTP_FALLBACK="8008"
|
||||
fi
|
||||
PUBLIC_DOMAIN_FALLBACK="127.0.0.1:$$PANEL_APP_PORT_HTTP_FALLBACK"
|
||||
fi
|
||||
MYSQL_PASSWORD_VALUE="$$(yaml_quote "$$MYSQL_PASSWORD_FALLBACK")"
|
||||
JWT_SECRET_VALUE="$$(yaml_quote "$$JWT_SECRET_FALLBACK")"
|
||||
MEILI_MASTER_KEY_VALUE="$$(yaml_quote "$$MEILI_MASTER_KEY_FALLBACK")"
|
||||
PUBLIC_DOMAIN_VALUE="$$(yaml_quote "$$PUBLIC_DOMAIN_FALLBACK")"
|
||||
cat > /app/paopao-ce/custom/config.yaml <<EOF
|
||||
App:
|
||||
RunMode: release
|
||||
|
||||
Features:
|
||||
Default: ["Web", "Frontend:EmbedWeb", "Meili", "LocalOSS", "MySQL", "BigCacheIndex", "LoggerFile"]
|
||||
|
||||
WebServer:
|
||||
RunMode: release
|
||||
HttpIp: 0.0.0.0
|
||||
HttpPort: 8008
|
||||
ReadTimeout: 60
|
||||
WriteTimeout: 60
|
||||
|
||||
Logger:
|
||||
Level: info
|
||||
|
||||
LoggerFile:
|
||||
SavePath: custom/data/paopao-ce/logs
|
||||
FileName: app
|
||||
FileExt: .log
|
||||
|
||||
Database:
|
||||
LogLevel: error
|
||||
TablePrefix: p_
|
||||
|
||||
MySQL:
|
||||
Username: paopao
|
||||
Password: $$MYSQL_PASSWORD_VALUE
|
||||
Host: paopao-ce-db:3306
|
||||
DBName: paopao
|
||||
Charset: utf8mb4
|
||||
ParseTime: true
|
||||
MaxIdleConns: 10
|
||||
MaxOpenConns: 30
|
||||
|
||||
Redis:
|
||||
InitAddress:
|
||||
- paopao-ce-redis:6379
|
||||
Username:
|
||||
Password:
|
||||
SelectDB: 0
|
||||
ConnWriteTimeout: 60
|
||||
|
||||
JWT:
|
||||
Secret: $$JWT_SECRET_VALUE
|
||||
Issuer: paopao-api
|
||||
Expire: 86400
|
||||
|
||||
Meili:
|
||||
Host: paopao-ce-meili:7700
|
||||
Index: paopao-data
|
||||
ApiKey: $$MEILI_MASTER_KEY_VALUE
|
||||
Secure: false
|
||||
|
||||
LocalOSS:
|
||||
SavePath: custom/data/paopao-ce/oss
|
||||
Secure: false
|
||||
Bucket: paopao
|
||||
Domain: $$PUBLIC_DOMAIN_VALUE
|
||||
|
||||
WebProfile:
|
||||
AllowUserRegister: true
|
||||
AllowTweetAttachment: true
|
||||
AllowTweetVideo: true
|
||||
DefaultTweetMaxLength: 2000
|
||||
DefaultTweetVisibility: public
|
||||
EOF
|
||||
fi
|
||||
cp /app/paopao-ce/custom/config.yaml /app/paopao-ce/config.yaml
|
||||
exec /app/paopao-ce/paopao serve
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- PANEL_APP_PORT_HTTP=${PANEL_APP_PORT_HTTP}
|
||||
- PUBLIC_DOMAIN=${PUBLIC_DOMAIN}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- JWT_SECRET=${JWT_SECRET}
|
||||
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
|
||||
volumes:
|
||||
- "${APP_DATA_DIR}/custom:/app/paopao-ce/custom"
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:8008/"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
start_period: 1m
|
||||
retries: 10
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
paopao-ce-db:
|
||||
image: "mysql:8.0"
|
||||
container_name: ${CONTAINER_NAME}-db
|
||||
restart: always
|
||||
networks:
|
||||
- paopao-ce-network
|
||||
command:
|
||||
- --character-set-server=utf8mb4
|
||||
- --collation-server=utf8mb4_unicode_ci
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=paopao
|
||||
- MYSQL_USER=paopao
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
volumes:
|
||||
- "${APP_DATA_DIR}/initdb:/docker-entrypoint-initdb.d:ro"
|
||||
- "${APP_DATA_DIR}/mysql:/var/lib/mysql"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -u paopao -p\"$${MYSQL_PASSWORD}\" --silent"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 30
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
paopao-ce-redis:
|
||||
image: "redis/redis-stack:7.2.0-v6"
|
||||
container_name: ${CONTAINER_NAME}-redis
|
||||
restart: always
|
||||
networks:
|
||||
- paopao-ce-network
|
||||
environment:
|
||||
- REDISEARCH_ARGS=MAXSEARCHRESULTS 5
|
||||
volumes:
|
||||
- "${APP_DATA_DIR}/redis:/data"
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 30
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
paopao-ce-meili:
|
||||
image: "getmeili/meilisearch:v1.7"
|
||||
container_name: ${CONTAINER_NAME}-meili
|
||||
restart: always
|
||||
networks:
|
||||
- paopao-ce-network
|
||||
environment:
|
||||
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
|
||||
- MEILI_DB_PATH=/meili_data
|
||||
volumes:
|
||||
- "${APP_DATA_DIR}/meili:/meili_data"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:7700/health >/dev/null"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 30
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
paopao-ce-network:
|
||||
driver: bridge
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
DATA_DIR="${APP_DATA_DIR:-./data}"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SOURCE_SQL="${SCRIPT_DIR}/../data/paopao-mysql.sql"
|
||||
|
||||
mkdir -p \
|
||||
"${DATA_DIR}/custom/data/paopao-ce/oss" \
|
||||
"${DATA_DIR}/custom/data/paopao-ce/logs" \
|
||||
"${DATA_DIR}/initdb" \
|
||||
"${DATA_DIR}/meili" \
|
||||
"${DATA_DIR}/mysql" \
|
||||
"${DATA_DIR}/redis"
|
||||
|
||||
if [ ! -f "${DATA_DIR}/initdb/paopao.sql" ]; then
|
||||
cp "${SOURCE_SQL}" "${DATA_DIR}/initdb/paopao.sql"
|
||||
fi
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
docker-compose down --volumes
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
exit 0
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"repository": "https://github.com/rocboss/paopao-ce",
|
||||
"dockerDocs": "https://github.com/rocboss/paopao-ce/blob/main/INSTALL_ZH.md",
|
||||
"composeFile": "https://github.com/rocboss/paopao-ce/blob/v0.6.0-alpha.2/docker-compose.yaml",
|
||||
"officialCompose": "https://github.com/rocboss/paopao-ce/blob/v0.6.0-alpha.2/docker-compose.yaml",
|
||||
"officialConfig": "https://github.com/rocboss/paopao-ce/blob/v0.6.0-alpha.2/internal/conf/config.yaml",
|
||||
"officialInstallDocs": "https://github.com/rocboss/paopao-ce/blob/main/INSTALL_ZH.md",
|
||||
"notes": [
|
||||
"Issue request: https://github.com/okxlin/appstore/issues/2435",
|
||||
"The all-in-one image was not used because runtime testing showed missing groupmod/usermod/gosu and no working HTTP service.",
|
||||
"The app uses the official multi-service topology: MySQL, Redis Stack, Meilisearch and PaoPao backend with embedded web UI.",
|
||||
"The backend image is pinned to bitbus/paopao-ce:v0.6.0-alpha.2 because Docker Hub does not publish a backend image for the newer v0.6.0-alpha.3 release and the official compose default tag 0.6-alpha is missing.",
|
||||
"Only amd64 is declared because bitbus/paopao-ce tags are single-architecture amd64 images."
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user