Sym 是一个用 Java 写的实时论坛,欢迎来**体验**!(如果你需要搭建一个企业内网论坛,请使用 SymX)
- 非常详细的 Sym 功能点脑图
- 如果你在搭建或者二次开发时碰到问题,欢迎加 Q 群 17370164 进行讨论
Sym 的主要作者是 Daniel 与 Vanessa,所有贡献者可以在这里看到。
Sym 的诞生是有如下几点原因:
- 已有的用 Java 写的论坛很少也很丑,并且大多数已经不再维护
- 我们想实现一种新的网络社区体验,独立博客+论坛互动
在浏览帖子时,传统论坛都是需要刷新页面来查看回帖的,而 Sym 则是基于 WebSocket 技术进行回帖推送,看帖时不需要刷新页面也可以看到其他人回帖。
Sym 提供了 API 进行帖子、回帖的同步(B3log 构思),目前 Solo、Typecho、Z-BlogPHP、WordPress 均已经提供插件来进行内容同步,欢迎大家进行接入!
Sym 使用了很多 HTML5 提供的技术特性,比如
- 通过使用本地存储防止编辑帖子/回帖时内容丢失
- 使用了音频特性来进行帖子/回帖音频录制、播放
- 复制/粘贴上传图片
- CSS3 动画
通过使用这些技术,Sym 可以让用户在分享、交流时更加便捷、舒服
需求:Maven3+、MySQL5.5+、Jetty9+/Tomcat9+
- 下载源码
- 解压后修改
src/main/resources/local.properties
中的数据库配置,并创建数据库 - _可能需要_修改
latke.properties
中的端口为容器端口 - _可能需要_修改
init.properties
中的管理员账号 - 使用
mvn install
进行构建 - 将构建好的 war 包部署到容器中,数据库表会在第一次启动时自动建立
注意:
- 没有数据库建表 SQL 脚本,手动建库后,表会在第一次启动时自动生成
- 生产环境建议使用反向代理,并需要配置好 WebSocket 代理
- Tomcat 用 9 以上版本,最好是使用最新版本
- 图片上传默认是上传服务器本地,要使用七牛可配置
symphony.properties
中的qiniu.*
属性 - 将 WEB-INF/cron.xml 中注释掉的部分打开
- 邮件发送使用的是 SendCloud,需要配置
symphony.properties
中的sendcloud.*
属性 - 用户注册时需要验证邮箱的,所以必须先配置好 SendCloud
如果遇到问题,可以参考一下这篇帖子。
如果你也搭建好了,欢迎通过 Pull Request 将你的站点加到这个列表中 :-p
如果需要将 Sym 用于商用(比如公司搭建对外社区),则必须付费,报价 ¥4000,请联系我(Q845765)进行细节咨询。
请仔细查看并遵循使用条款,尊重我们的劳动成果。
商用授权和开源授权在功能上没有任何区别,但商用授权后可以去除页脚版权部分。如果在未获得商用授权前私自去除版权部分,必将追究法律责任。
在实现 B3log 构思的这几年:
- 我们见证了 xAE(GAE/BAE/SAE/etc)的兴起与没落。2009 年选择了 GAE 作为服务器,并开始实现 Latke 框架来解决跨云平台,直到告别 GAE,不得不感叹技术更迭之快
- 感受到了自造轮子的优缺点,并且可以肯定一点:对于一个想要长久的产品来说,自制技术框架优势远大于劣势
- 一个好玩的产品或说是细节特性然并卵,需要做的是一个能够持续提供用户价值的产品/特性
- 虽然直到目前 B3log 系产品用户不多,但我们已经初步证明了:Java 用来实现博客、论坛没有什么不好的
- 使用开源软件,了解开源**,融入开源
- This software is open sourced under the Apache License 2.0
- You can not get rid of the "Powered by B3log 开源 • Sym" from any page, even which you made
- If you want to use this software for commercial purpose, please mail to support@liuyun.io for a commercial license request
- Copyright © b3log.org, all rights reserved
首页
帖子
个人设置
发布编辑
- Markdown 编辑器,支持 GFM 语法
- LaTeX 数学公式
- 复制粘贴时自动转换为 Markdown
- Chrome 下可以直接粘贴图片,其他浏览器支持拖拽
- 除了使用文字,也可以在帖子内进行录音
- 支持 Emoji
- 使用本地存储保障数据在未提交时不丢
移动端使用单独的模版进行渲染,解决通过一套模版自适应不能达成的效果和体验。