Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动
总的来说,这款博客框架还不错,社区也在不断的完善。最重要的是使用Java写的。像流行的Hexo、Hugo等博客框架都是静态博客,没有后台啥的,主要发表的文章是Markdown转HTML格式的形式发表的,但solo是有后台管理的,与Jpress有些相似。
1. Docker 部署docker pull b3log/solo 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; 打开服务器上的mysql,一条一条执行即可 注意:上面的密码指mysql的root 用户密码 启动容器:

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=6000 --server_scheme=http --server_host=localhost --server_port= 启动参数说明: --listen_port:进程监听端口,可以自定义修改 --server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https --server_host:最终访问域名或公网 IP,不要带端口 --server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可 完整启动参数的说明可以使用 -h 来查看。 注意:JDBC_PASSWORD 也是指云服务器上mysql的root 用户密码 注意--listen_port ,我这边设置监听的端口号是6000 ,官方给的是8080 端口,因为我这边服务器上的8080 端口已经被Tomcat占用了,所以放行 6000 端口的防火墙,也可以自定义其他端口号(在不冲突的情况下,也就是确定没有其他进程在使用),开启防火墙端口号的命令如下:
firewall-cmd --zone=public --add-port=6000/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports docker ps -a docker logs solo 当看到这条日志时,表示solo正在创建表和初始化

2. 日志配置--volume ~/log4j2.xml:/opt/solo/log4j2.xml --volume ~/skins/:/opt/solo/skins/ 3. Nginx 反向代理upstream backend {
server localhost:6000; # Solo 监听端口
}
server {
listen 80;
server_name solo.xdr630.com; # 博客域名
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;
}
} nginx -s reload
|