Solo 是一款一个命令就能搭建好的 Java 开源博客系统,并内置了 15+ 套精心制作的皮肤。除此之外,Solo 还有着非常活跃的社区,文章分享到社区后可以让很多人看到,产生丰富的交流互动。
Solo 的第一个版本发布于 2010 年,至今已经非常成熟稳定,请放心使用 😼
Solo 沉淀至今的每一个功能你应该都会用到。我们不会将只有“20%”用户使用的功能添加进来,只有这样才能保持博客系统本该有的纯净,足够轻量才能带来简约的使用体验。
- Markdown / Emoji
- 聚合分类 / 标签
- 自定义导航(页面、链接)
- 草稿夹
- 评论/回复邮件提醒
- 随机文章 / 相关文章 / 置顶 / 更新提醒
- 自定义文章永久链接
- 自定义站点 SEO 参数
- 自定义公告 / 页脚
- 多个签名档
- 代码高亮
- 多皮肤,多端适配 / 社区皮肤
- 多语言 / 国际化
- 上传本地 / 七牛云
- 友情链接管理
- 多用户写作,团队博客
- Hexo/Jekyll 导入
- SQL / JSON / Markdown 导出
- 插件系统
- Atom / RSS 订阅
- Sitemap
- MetaWeblog API
- CDN 静态资源分离
如果有新版可用,升级过程也是非常简单的,只需要重新部署新版本就可以,不用运行额外的任何脚本。
编辑文章
选择皮肤
前台界面
JDK 环境准备好之后下载最新的 Solo 包解压,进入解压目录执行:
- Windows:
java -cp "WEB-INF/lib/*;WEB-INF/classes" org.b3log.solo.Starter
- Unix-like:
java -cp "WEB-INF/lib/*:WEB-INF/classes" org.b3log.solo.Starter
用 Docker
运行?
docker volume create solo_datas && docker run --privileged --name solo --restart=unless-stopped -p 8080:8080 -v solo_datas:/opt/b3log/backup/ -d 88250/solo
更多细节请参考 Solo 用户指南。另外,如果你想用 Solo 但又不想自己维护服务器,可以购买我们搭建好的 Solo 直接使用。
- 后端框架:为了尽量降低服务器的内存占用,顺带尝试一些技术构想,我们开发了 Latke 框架,并在此基础上构建了 Solo、Sym、小薇等产品。这些产品反过来也会对框架提出需求,这是一个相互促进,共同演化的良性发展过程
- 前端框架:Solo 的前端部分为了降低复杂度, 只依赖于 jQuery、编辑器、代码高亮等组件。管理后台的 SPA 框架、皮肤响应式 UI 都是我们自己实现的
没有最好的轮子,只有最适合的轮子。 BTW,如果你想研究如何制造 Web 轮子,Solo 是一个不错的入口。
另外,为了保证 Solo 的质量,我们也做了很多努力,包括:
- 统一规范的编码风格
- 完善的 javadoc 注释
- 严格的分支、缺陷追踪管理
- 不断完善的测试用例、持续集成
大家可以通过以下方式进行项目讨论,帮助项目发展:
我们非常期待你加入到项目中,无论是使用反馈还是代码补丁,都是对 Solo 一份满满的爱 ❤️
Solo 使用 GNU Affero General Public License, Version 3 作为开源协议。
如有疑问,请电邮 [email protected]。
Solo 的诞生离不开以下开源项目:
- jQuery:使用最广泛的 JavaScript 工具库
- CodeMirror:Markdown 编辑器内核
- SyntaxHighlighter:一个代码高亮库
- Highlight.js:又一个代码高亮库
- emojify.js:前端 Emoji 处理库
- jsoup:Java HTML 解析器
- flexmark:Java Markdown 处理库
- marked:NodeJS Markdown 处理库
- Apache Commons:Java 工具库集
- emoji-java:Java Emoji 处理库
- FreeMarker:好用的 Java 模版引擎
- H2:Java SQL 数据库
- Jetty:轻量级的 Java Web 容器
- Latke:简洁高效的 Java Web 框架
- IntelliJ IDEA:全宇宙暂时排名第二的 IDE