简介
Solo 是一款小而美的开源博客系统,专为程序员设计。
Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。
Solo 基于AGPL-3.0 开源协议 ,Github 官网地址如下:
功能列表
- Markdown / Emoji
- 标签聚合分类
- 自定义导航链接
- 随机文章 / 相关文章 / 置顶 / 更新提醒
- 自定义文章永久链接 / 签名档
- 配置站点 SEO 参数 / 公告 / 页脚
- 代码高亮 / 数学公式 / 流程图 / 五线谱
- 多皮肤,多端适配 / 社区皮肤
- 多语言 / 国际化
- 友情链接管理
- 多用户写作,团队博客
- Hexo / Jekyll / Markdown 导入
- SQL / JSON / Markdown 导出
- Atom / RSS / Sitemap
- CDN 静态资源分离
- 自动同步 GitHub 仓库
- 内置 HTTPS+CDN 文件存储
界面截图
开始使用
后台首页
编辑文章
选择皮肤
前台界面
快速开始
本地试用
下载最新的 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
如果你有 Java 开发环境,可参考这里通过源码构建运行。
请注意:我们不建议通过 war 发布包或者源码构建部署,因为这样的部署方式在将来有新版本发布时升级会比较麻烦。 这两种方式请仅用于本地试用,线上生产环境建议通过 Docker 部署。
Docker 部署(推荐方案)
获取最新镜像
docker pull b3log/solo
启动容器
- 使用 MySQL
- 先手动建库(库名 solo,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci),然后启动容器:
docker run --detach --name solo --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/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
- 为了简单,使用了主机网络模式来连接主机上的 MySQL。
- 使用 H2 Database
docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 --env RUNTIME_DB="H2" --env JDBC_USERNAME="root" --env JDBC_PASSWORD="123456" --env JDBC_DRIVER="org.h2.Driver" --env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL" b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
启动参数说明:
- –listen_port:进程监听端口
- –server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https
- –server_host:最终访问域名或公网 IP,不要带端口
- –server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可
完整启动参数的说明可以使用 -h 来查看。
日志配置
默认通过 log4j 将日志打印到标准输出流,可以通过 docker logs solo 进行查看。如果需要覆盖 log4j 配置,可通过挂载文件实现:
--volume ~/log4j.properties:/opt/solo/WEB-INF/classes/log4j.properties
皮肤配置
如果要使用其他皮肤,可以挂载目录 skins(里面需要包含所需使用的所有皮肤,官方所有皮肤可从这里下载):
--volume ~/skins/:/opt/solo/skins/
版本升级
- 拉取最新镜像
- 重启容器
总结
Solo 作为java语言开源的博客系统,功能强大,方便部署,文档丰富,github star 10K+(可以说非常流行), 喜欢的朋友可以去官网做更详细的了解。