Loading repository data…
Loading repository data…
88250 / repository
🎸 B3log 分布式社区的 Java 博客端节点系统,欢迎加入下一代社区网络。B3log distributed community blog-end node based on Java, welcome to join the next generation community network.
Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。
这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
欢迎到 Solo 官方讨论区了解更多。同时也欢迎关注 B3log 开源社区微信公众号 B3log开源:











目前内置的皮肤如下,可点击进行预览:
欢迎在这里推荐好看的皮肤,我们会尽量进行制作。
Solo 支持“动静两用”:
更多视频教程陆续制作中,欢迎到 B 站关注我:报废程序员D。
本地运行主要用于试用或者生成静态站点,生成静态站点的用法请参考这里。
(视频演示教程请看这里)
下载最新的 Solo 包解压,进入解压目录执行:
java -cp "lib/*;." org.b3log.solo.Serverjava -cp "lib/*:." org.b3log.solo.Server如果你有 Java 开发环境,可参考这里通过源码构建运行(视频演示教程请看这里)。
Docker 方式部署是动态博客用法,主要用于在服务器上部署动态博客。
(视频演示教程请看这里)
docker pull b3log/solo
注意:对于如下命令,如果你不确定如何使用 \ 来进行换行,就不要换行了,一行内写完整条命令。
使用 MySQL
手动建库(库名 solo ,字符集使用 utf8mb4 ,排序规则 utf8mb4_general_ci ):
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
create user 'root'@'127.0.0.1' identified by '123456';
grant all privileges on *.* to 'root'@'127.0.0.1';
flush privileges;
启动容器:
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&allowPublicKeyRetrieval=true" \
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 来查看。
默认通过 log4j2 将日志打印到标准输出流,可以通过 docker logs solo 进行查看。如果需要覆盖 log4j 配置,可通过挂载文件实现:
--volume ~/log4j2.xml:/opt/solo/log4j2.xml
如果需要使用第三方皮肤,可以挂载目录 skins,目录结构请参考原版 skins:
--volume ~/skins/:/opt/solo/skins/
可参考这里编写一个重启脚本,并通过 crontab 每日凌晨运行来实现自动更新。
upstream backend {
server localhost:8080; # Solo 监听端口
}
server {
listen 80;
server_name 88250.b3log.org; # 博客域名
access_log off;
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
}
}
请务必配置:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
否则访问页面可能会出现“Latke 配置错误”或者样式异常;统计在线访客功能会不正常。
Solo 使用 木兰宽松许可证, 第2版 开源协议。
初始化成功后请务必查看自动发布的第一篇文章,里面有一些必要的操作,请务必完成。然后请到管理后台 -> 工具 -> 偏好设定中进行一下博客的细节配置。
最多可以配置 3 个签名档,发布文章的时候选择一个使用,可以使用 HTML 和脚本进行配置。
下面是一些比较有特色或重要的参数:
安全第一,血泪的教训 😢
可在工具 - 偏好设定 - 参数设置中勾选