Solo 是一款小而美的开源博客系统,专为程序员设计。
Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。
这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
具体细节请浏览 B3log 构思
- D 的个人博客
- Jiahao.Zhang's Blog
- 子兮子兮
- 铅笔的个人博客
- 洗澡狂魔的技术阵地
- liumapp 的个人博客
- 水星的随笔
- 1992 社区
- DevHyxo
- EchoCow
- 贼拉正经的技术博客
- 记录改变生活
- 程序员小吴
- Markdown / Emoji
- 标签聚合分类
- 自定义导航链接
- 随机文章 / 相关文章 / 置顶 / 更新提醒
- 自定义文章永久链接 / 签名档
- 配置站点 SEO 参数 / 公告 / 页脚
- 代码高亮 / 数学公式 / 流程图
- 多皮肤,多端适配 / 社区皮肤
- 多语言 / 国际化
- 友情链接管理
- 多用户写作,团队博客
- Hexo / Jekyll / Markdown 导入
- SQL / JSON / Markdown 导出
- Atom / RSS / Sitemap
- CDN 静态资源分离
- 自动同步 GitHub 仓库
- 内置 HTTPS+CDN 文件存储
目前内置的皮肤如下,可点击进行预览:
- Bubble
- Casper
- Pinghsu
- Jane
- nijigen
- Medium
- 9IPHP
- Andrea
- Bruce
- Community
- favourite
- Finding
- i-nove
- metro-hot
- NeoEase
- next
- owmx-3.0
- timeline
- tree-house
- yilia
欢迎在该 issue 下推荐好看的皮肤,我们会尽量进行制作。
下载最新的 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 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/
- 拉取最新镜像
- 重启容器
可参考这里编写一个重启脚本,并通过 crontab 每日凌晨运行来实现自动更新。
- 《提问的智慧》精读注解版
- 用户指南
- Solo 从设计到实现
- 皮肤开发指南
- 插件开发
Solo 使用 GNU Affero General Public License, Version 3 开源协议。
- jQuery:前端 JavaScript 工具库
- Vditor: 浏览器端的 Markdown 编辑器
- Highlight.js:前端代码高亮库
- pjax:pushState + ajax = pjax
- jsoup:Java HTML 解析器
- flexmark:Java Markdown 处理库
- Apache Commons:Java 工具库集
- Latke:以 JSON 为主的 Java Web 框架