logo 摸鱼论坛beta

自托管社交内容发布平台

版本: 1.0.0
运行环境: PHP >= 8.0 | MySQL/MariaDB | ThinkPHP 8.x
官网: https://meimiao.de


简介

朋友圈是一个轻量级的自托管社交内容发布平台,类似于"朋友圈"或微博。支持多种内容类型(文字、图片、视频、音乐、长文),具备用户注册、评论、点赞、消息通知等完整社交功能,以及强大的后台管理系统。


适合个人博客、小型社区、团队内部分享等场景使用。


功能概览

内容发布

类型 说明
纯文字 简短文字动态
图片 最多 15 张图片,支持上传和外链,自动压缩转 WebP
视频 支持上传或填写视频地址,自动生成封面截图
音乐 填写音乐链接或网易云音乐 ID,自动获取歌曲信息
长文 支持标题、封面图、富文本内容的长篇文章

附加功能:

  • 标签/话题(最多 10 个)
  • 定时发布
  • 匿名发布
  • 公开/私密切换
  • 草稿保存
  • 置顶(管理员全局置顶 + 用户个人置顶)
  • 广告标记(可设置跳转链接)

评论系统

  • 登录用户评论(自动填充用户信息)
  • 访客评论(可选开启,需填写昵称和邮箱)
  • 楼中楼回复
  • 评论审核(可选开启)
  • 敏感词过滤 + 用户黑名单
  • @提及通知
  • 按文章开关评论

点赞系统

  • 登录用户和访客均可点赞
  • 防重复点赞
  • 点赞通知推送给文章作者

用户系统

  • 注册(可选开启,支持邮箱验证码)
  • 登录(速率限制防暴力破解)
  • 密码找回(邮箱验证码)
  • 个人主页(头像、封面、签名、网址)
  • 邮件通知开关(点赞、评论、回复)
  • 全设备退出登录
  • 旧密码自动升级 bcrypt 加密

消息通知

  • 评论通知
  • 点赞通知
  • @提及通知
  • 系统公告
  • 审核结果通知
  • 邮件推送(可选)

音乐系统

  • 站点背景音乐(随机播放)
  • 网易云音乐集成(输入歌曲 ID 自动获取信息和播放链接)

后台管理

访问地址:/admin/

仪表盘

  • 用户总数、文章总数、评论总数、上传容量统计
  • 今日新增文章/评论数
  • 待审核文章/评论数量
  • 最新用户和文章列表
  • 版本更新提示

基本设置

  • 站点名称、副标题
  • Favicon、Logo、首页背景图(支持上传)
  • 站点签名、版权信息、备案号
  • 每页显示数量(文章/评论)
  • 全站访问密码
  • 背景音乐

权限设置

站点开关:

  • 站点开关(关闭后显示维护页)
  • 注册开关
  • 登录开关

内容与互动:

  • 关注可见(仅关注者可看内容)
  • 匿名发布开关
  • 图片自动压缩
  • 访客评论开关
  • 评论审核开关
  • 文章审核开关

功能开关:

  • 友链功能
  • 搜索引擎收录
  • 自定义域名
  • 日间/夜间模式默认值
  • 回到顶部按钮
  • 搜索功能
  • 视频自动播放
  • 注册邮箱验证
  • 头像形状(圆形/方形)
  • 邮件推送通知
  • 禁用右键(内容保护)

内容管理

  • 置顶文章管理
  • 草稿功能开关
  • 标签功能开关
  • 评论安全设置(敏感词、黑名单)

文章审核

  • 待审核/已通过/已拒绝/草稿列表
  • 通过、拒绝、删除、编辑操作
  • 审核结果自动通知作者

评论审核

  • 待审核/已通过/已拒绝列表
  • 通过、拒绝、删除操作
  • 审核结果自动通知评论者

用户管理

  • 用户列表查看和编辑

友链管理

  • 友情链接增删改查(名称、网址、图片)

表情管理

  • 自定义表情/贴图
  • 支持触发码、分类、排序、启用/禁用

邮件设置

  • 支持 SMTP 和阿里云邮件两种驱动
  • SMTP:主机、端口、SSL/TLS、账号、密码、发件人
  • 阿里云:AccessKey ID/Secret、发件人
  • 发送测试邮件验证配置

邮件模板

  • 自定义邮件模板,支持变量替换
  • 注册验证码、密码重置验证码等模板

云存储设置

支持三种云存储后端:

服务 配置项
又拍云 Bucket、操作员、密码、域名
阿里云 OSS AccessKey、Endpoint、Bucket、域名
S3 兼容 AccessKey、Endpoint、Region、Bucket、域名(支持 AWS S3、Cloudflare R2 等)
  • 可选保留本地副本
  • 连接测试功能
  • 保存时需验证管理员密码

安全设置

  • 二步验证(2FA):
    • 邮箱验证码方式
    • TOTP 方式(兼容 Google Authenticator 等)
  • TOTP 密钥生成和重新生成
  • 二维码扫描配置

系统通知

  • 向所有用户或指定用户发送系统公告

上传文件管理

  • 查看所有已上传文件(大小、时间、使用状态)
  • 文件引用追踪(关联文章/用户/配置)
  • 安全删除(仅允许删除未引用的文件)
  • 需验证管理员密码

日志管理

  • 操作日志(记录所有管理操作)
  • 登录日志(记录登录尝试)

数据库备份

  • 生成带时间戳的 SQL 备份文件
  • 从备份恢复(需验证管理员密码)
  • 删除旧备份

配置版本

  • 创建配置快照(带备注)
  • 设置保存前自动创建快照
  • 回滚到历史版本(需验证管理员密码)

安装指南

环境要求

  • PHP >= 8.0
  • MySQL >= 5.7 或 MariaDB >= 10.2
  • PDO MySQL 扩展
  • JSON 扩展
  • runtime/ 目录可写

安装步骤

  1. 将程序文件上传到服务器 Web 目录
  2. 配置 Web 服务器,将网站根目录指向 public/ 文件夹
  3. 访问网站首页,系统自动跳转到安装页面
  4. 按照安装向导操作:
    • 第一步: 环境检测(自动检查 PHP 版本和必要扩展)
    • 第二步: 填写数据库信息(主机、端口、用户名、密码、数据库名)
    • 第三步: 创建管理员账号(用户名、密码、邮箱)和站点名称
    • 第四步: 安装完成

Web 服务器配置

Nginx:

server {
    listen 80;
    server_name yourdomain.com;
    root /path/to/public;
    index index.php;

    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=$1 last;
        }
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Apache:


确保开启 mod_rewrite 模块,程序自带 .htaccess 文件。

安装后建议

  1. 登录后台 /admin/,完善基本设置
  2. 配置邮件服务(用于注册验证、密码找回、通知推送)
  3. 配置云存储(可选,用于大文件存储)
  4. 开启二步验证(提升后台安全性)
  5. 根据需要调整权限设置

目录结构

├── app/
│   ├── controller/          # 控制器
│   │   ├── admin/           # 后台控制器
│   │   ├── api/             # 前台 API 控制器
│   │   └── server/          # 服务端 API 控制器
│   ├── middleware/           # 中间件
│   ├── model/               # 数据模型
│   ├── service/             # 业务服务层
│   ├── traits/              # Trait 复用
│   └── view/                # 模板文件
│       ├── admin/           # 后台模板
│       ├── component/       # 组件模板
│       └── edit/            # 编辑器模板
├── config/                  # 配置文件
├── database/                # 数据库 SQL 文件
├── public/                  # Web 入口目录
│   ├── assets/              # 静态资源(CSS/JS/图片)
│   └── upload/              # 上传文件目录
├── route/                   # 路由定义
└── runtime/                 # 运行时目录(日志/缓存)

路由说明

前台页面

路径 说明
/ 首页(内容流)
/home 主页
/user/<hash> 用户个人主页
/edit 发布新内容
/edit/<cid> 编辑已有内容
/view/<cid> 文章详情页
/setup 个人设置
/repass 密码找回
/sticky 置顶内容页

API 接口

路径 方法 说明
/api/login POST 用户登录
/api/register POST 用户注册
/api/repass POST 密码找回
/api/load-more POST 加载更多内容
/api/article/save POST 发布/编辑文章
/api/article/delete POST 删除文章
/api/article/privacy POST 切换文章隐私
/api/article/pin POST 管理员置顶
/api/comment/submit POST 提交评论
/api/comment/load POST 加载评论
/api/like/toggle POST 切换点赞
/api/user/update POST 更新用户信息
/api/user/avatar POST 上传头像
/api/upload/image POST 上传图片
/api/upload/video POST 上传视频
/api/music/random POST 随机背景音乐
/api/message/operate POST 消息操作

安全特性

  • 速率限制: 登录、注册、密码找回、评论等接口均有 IP/用户级频率限制
  • 密码安全: bcrypt 加密,旧 MD5 密码自动升级
  • 会话安全: HttpOnly Cookie + SameSite 保护,登录时重新生成 Session ID
  • CSRF 防护: 表单隐藏 Token 验证
  • XSS 防护: 内容 HTML 净化,非文章内容标签剥离
  • SQL 注入防护: 全程参数化查询,安装时标识符校验
  • SSRF 防护: IP 地理位置查询屏蔽内网地址,音乐代理域名白名单
  • 文件上传安全: MIME 类型验证、图片尺寸检查、图片净化处理
  • 后台 2FA: 支持 TOTP 和邮箱验证码两种二步验证方式
  • 敏感操作验证: 云存储、数据库恢复、配置回滚等操作需验证管理员密码
  • 配置版本控制: 设置变更前自动快照,支持一键回滚

更新机制

程序内置版本更新检查:

  • 启动时自动检查中心服务器是否有新版本
  • 检查结果缓存 1 小时,避免频繁请求
  • 后台首页显示更新提示横幅
  • 安装时自动上报域名、IP、版本等信息到中心服务器

常见问题

安装后无法访问

检查 Web 服务器配置是否正确指向 public/ 目录,确保 URL 重写规则已启用。

图片上传失败

检查 public/upload/ 目录是否有写入权限,以及 PHP upload_max_filesizepost_max_size 配置。

邮件发送失败

在后台邮件设置中配置 SMTP 或阿里云邮件服务,使用"发送测试邮件"功能验证配置。

忘记管理员密码

通过数据库直接修改 user 表中管理员用户的 password 字段,使用 PHP 的 password_hash() 生成 bcrypt 哈希值。

如何开启云存储

后台 > 云存储设置 > 选择存储类型 > 填写配置信息 > 输入管理员密码 > 保存。建议同时开启"保留本地副本"。


许可证

保留所有权利。未经许可不得用于商业用途。


💰 此内容需要支付 200 鱼丸才能查看

请先登录

醉里不知天在水 𢵗水捧月扰清波。

  • 贫穷使我只能看看:ac01:

所有版块