/symphony

🎶 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。

Primary LanguageJavaGNU Affero General Public License v3.0AGPL-3.0

Sym

下一代的社区系统,为未来而构建





        

💡 简介

Symphony([ˈsɪmfəni],n.交响乐)是一个现代化的社区平台,因为它:

  • 实现了面向内容讨论的论坛
  • 实现了面向知识问答的社区
  • 包含了面向用户分享、交友、游戏的社交网络
  • 100% 开源

欢迎到 Sym 官方讨论区了解更多。

⚡ 动机

很多社区论坛系统:

  • 界面风格老式,没有跟上时代发展的步伐
  • 缺少创新、好玩的特性,缺少现代化的交互元素和用户体验
  • 缺乏考虑实际运营需求,管理功能过于单一
  • 细节不够精致、缺乏长期维护

🗃 案例

社区版:

商业版:

✨ 特性

Sym功能点

🎨 界面

以下截图来自 Sym 商业版。

首页

index

列表

list

帖子

article

发帖

post

用户 - PC 端

pc home

多主题

theme

🛠️ 安装

先在 MySQL 中手动建库(库名 symphony,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci),然后按照如下方式之一启动服务。

war 包启动

下载最新的 Sym 包解压,进入解压目录执行:

  • Windows: java -cp "WEB-INF/lib/*;WEB-INF/classes" org.b3log.symphony.Starter
  • Unix-like: java -cp "WEB-INF/lib/*:WEB-INF/classes" org.b3log.symphony.Starter

如果要将 war 包部署到 Servlet 容器中启动请参考安装指南

Docker 部署

获取最新镜像:

docker pull b3log/symphony

启动容器:

docker run --detach --name sym --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
    --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/symphony?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
    b3log/symphony --listen_port=8080 --server_scheme=http --server_host=localhost 

为了简单,使用了主机网络模式来连接主机上的 MySQL。

启动参数说明:

  • --listen_port:进程监听端口
  • --server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https
  • --server_host:最终访问域名或公网 IP,不要带端口号

完整启动参数的说明可以使用 -h 来查看。

📜 文档

📄 授权

  • 社区版:使用 AGPLv3 开源,如果你选择使用社区版,则必须完全遵守 AGPLv3 的相关条款
  • 商业版:提供完整源码以便二开,报价 ¥20000
  • 云服务:提供开箱即用的云端服务,每年 ¥5000

关于商业版和社区版的对比请看这里,企业网站、经营性网站、以营利为目的或实现盈利的网站请购买商业版。

欢迎联系 QQ 845765 或邮箱 d@b3log.org 进行细节咨询。

🏘️ 社区

🙏 鸣谢

  • jQuery:前端 JavaScript 工具库
  • Vditor: 浏览器端的 Markdown 编辑器
  • Highlight.js:前端代码高亮库
  • pjax:pushState + ajax = pjax
  • MathJax:前端数学公式渲染引擎
  • Sass:前端 CSS 处理工具
  • jsoup:Java HTML 解析器
  • flexmark:Java Markdown 处理库
  • Apache Commons:Java 工具库集
  • Jodd:Java 工具库集
  • Latke:以 JSON 为主的 Java Web 框架

安全方面特别感谢:


👍 开源项目推荐

  • 如果你需要搭建一个个人博客系统,可以考虑使用 Solo
  • 如果你需要搭建一个多用户博客平台,可以考虑使用 Pipe
  • 欢迎加入我们的小众开源社区,详情请看这里