Skip to content
🎸 一款小而美的博客系统,专为程序员设计。
Java HTML JavaScript FreeMarker CSS Shell
Branch: master
Clone or download
Latest commit a684dc2 Aug 20, 2019

README.md

Solo

小而美的博客系统,专为程序员设计





        

💡 简介

Solo 是一款小而美的开源博客系统,专为程序员设计。

Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
具体细节请浏览 B3log 构思

🗃 案例

✨ 功能

🎨 界面

开始使用

start

后台首页

console

编辑文章

post

选择皮肤

skins

前台界面

Bubble

Casper

pinghsu

Jane

nijigen

timeline

🍱 皮肤

目前内置的皮肤如下,可点击进行预览:

欢迎在该 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 部署(推荐方案)

获取最新镜像

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/

版本升级

  1. 拉取最新镜像
  2. 重启容器

可参考这里编写一个重启脚本,并通过 crontab 每日凌晨运行来实现自动更新。

Docker Compose

请参考这里,感谢 @liumapp 提供。

ARM/树莓派镜像

docker pull clinan/solo

感谢 @Clinan 提供。

📜 文档

🏘️ 社区

📄 授权

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 框架

👍 开源项目推荐

  • 如果你需要搭建一个多用户博客平台,可以考虑使用 Pipe
  • 如果你需要搭建一个社区平台,可以考虑使用 Sym
  • 欢迎加入我们的小众开源社区,详情请看这里
You can’t perform that action at this time.