Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,文章自动推送到社区后可以让很多人看到,产生丰富的交流互动。
- D 的个人博客
- Jiahao.Zhang's Blog
- 子兮子兮
- 铅笔的个人博客
- 洗澡狂魔的技术阵地
- liumapp 的个人博客
- 水星的随笔
- 1992 社区
- 何遇
- Relyn
- 思干豆
- DevHyxo
- EchoCow
- 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 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
为了简单,使用了主机网络模式来连接主机上的 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
启动参数说明:
--listen_port
:进程监听端口--server_scheme
:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为https
--server_host
:最终访问域名或公网 IP,不要带端口号
完整启动参数的说明可以使用 -h
来查看。
- 拉取最新镜像
- 重启容器
可参考这里编写一个重启脚本,并通过 crontab 每日凌晨运行来实现自动更新。
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 框架