"简介 [链接] 是一款小而美的开源博客系统,专为程序员设计。 Solo 有着非常活跃的[链接],可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。 这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单! 具体细节请浏览 [链接] 安装 本地试用 [链接]最新的 Solo 包解压,进入解压目录执行 .."

Solo 用户指南

简介

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

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

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

安装

本地试用

下载最新的 Solo 包解压,进入解压目录执行:

如果你有 Java 开发环境,可参考这里通过源码构建运行。

请注意:我们不建议通过 war 发布包或者源码构建部署,因为这样的部署方式在将来有新版本发布时升级会比较麻烦。
这两种方式请仅用于本地试用,线上生产环境建议通过 Docker 部署。

Docker 部署

获取最新镜像:

docker pull b3log/solo

启动参数说明:

完整启动参数的说明可以使用 -h 来查看。

Docker 升级

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

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

NGINX 反代

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 $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

初始化后

初始化成功后请务必查看自动发布的第一篇文章,里面有一些必要的操作,请务必完成。然后请到管理后台 -> 工具 -> 偏好设定中进行一下博客的细节配置。

信息配置

签名档

最多可以配置 3 个签名档,发布文章的时候选择一个使用,可以使用 HTML 和脚本进行配置。

参数设置

下面是一些比较有特色或重要的参数:

导入 Markdown

请参考 Solo 支持 Hexo/Jekyll 数据导入

备份

安全第一,血泪的教训 😢

其他一些特性

多用户

可以几个用户同时使用一个博客发布文章,主要用在团队博客这个场景。权限方面做了简单隔离,非管理员用户可以看到其他用户的博文 / 评论列表,但是不能进行操作。

RSS/Atom/Sitemap

提供两种订阅供稿:Atom 1.0、RSS 2.0:

不要用浏览器直接打开,请通过阅读器查看。另外,Solo 也能生成全站文章的 sitemap.xml。

前台皮肤切换

通过 URL 带参(比如 http://88250.b3log.org/?skin=Finding)来确定渲染使用的皮肤。

使用场景举例:

  1. 只有在首页(/)会取参数skin=xxx
  2. 如果带有就记录到 Cookie 里面,如果带有skin=default或皮肤不存在则清空 Cookie
  3. 如果要切换成后台默认的皮肤,在首页带参skin=default

站外相关文章

“站外相关文章”指的是其他人使用 Solo 发布的文章,该文章含有与你的文章相同的标签。该功能主要是为了加强各个 Solo 博客之间的互动性,让博客访问者可以更有效地访问到相关的内容。

这是 B3log 构思的一部分实现,请大家积极参与进来 🙏

自动同步 GitHub 仓库

自动同步仓库包含了两个功能:

  1. 每 24 小时定时拉取用户 GitHub 账号下的公有仓库,然后生成一篇文章并在加入到导航中,实际效果请参看这里
  2. 每 24 小时定时导出用户的公开文章到用户的 GitHub 仓库(solo-blog),实际效果请参考这里

FAQ

服务器内存太小?

可以考虑使用内嵌的 H2 数据库代替 MySQL。如果一台服务器上要部署多个 Solo,可以考虑通过 war 包方式将它们部署到同一个 Tomcat/Jetty 中运行。

但建议还是进行内存升级,然后使用 Docker 和 MySQL 部署,这样不仅可以通过更新镜像进行平滑升级,还能使用 MySQL 相关工具更方便地进行数据库运维。

如何引入自定义静态资源,比如 .mp3?

请通过 NGINX 反代静态资源实现。

如何获得更好的 Markdown 渲染效果?

Solo 默认是使用内建的 flexmark 进行 md 渲染,可能对有的场景下的渲染效果不是很好。如果你想要获得更好的 md 渲染效果请参考这里

为什么在线访问计数一直都是 1?

在线访问计数是通过访问者 IP 去重的,每 10 分钟定时刷新一次。如果用了反向代理,请在代理配置部分加入客户端地址标头。比如 NGINX 需要加入如下配置:

proxy_set_header  X-Real-IP  $remote_addr;

Solo 会一直维护下去么?

Solo 的第一个版本发布于 2010 年,永不断更 😼

Solo 从第一版开始就支持平滑升级,从 v3.0.0 开始支持跨版本升级。在程序升级、数据兼容迁移方面我们做了很多工作。另外,Solo 还支持将数据导出成多种格式,所有的这些努力为的就是让大家能够免去后顾之忧,将自己的精力放在记录和分享上。

当然,也欢迎大家一起来学习、折腾 Solo 程序本身,因为开源项目参与者越多,说明这个项目生命力越旺盛 ❤️

结语

如果你在使用 Solo 过程中碰到问题或者有需求要提,欢迎跟帖,我们会在第一时间回复。另外,如果你想对 Solo 进行定制开发,请参考 Solo 从设计到实现

  • Solo

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

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

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

    629 引用 • 4803 回帖 • 719 关注
  • 安装

    你若安好,便是晴天。

    52 引用 • 749 回帖
  • 文档
    51 引用 • 912 回帖 • 1 关注
233 回帖   
请输入回帖内容...
  • bingofang  

    服务器下项目启动失败(直接拷贝 war 包到 tomcat/webapps 下), 版本用的 2.5.0 用 2.7.0 也出现类似问题: 查看日志 solo.log:
    [ERROR]-[2018-04-11 16:48:32]-[org.b3log.solo.service.UpgradeService:149]: Attempt to skip more than one version to upgrade. Expected: 2.4.0, Actually: 2.7.0
    [ERROR]-[2018-04-11 16:54:16]-[org.b3log.solo.service.UpgradeService:149]: Attempt to skip more than one version to upgrade. Expected: 2.4.0, Actually: 2.7.0
    请问该怎样破?谢谢!

    1 回复
  • 88250    

    用 2.5 的包升级,不要部署 2.7 的包。

    1 回复
  • bingofang    

    你好!我用的就是 2.5.0 的 war 包,启动后 solo.log 日志内容如下,是不是需要 2.4 的 war 包,以前部署过一次,没出现类似问题
    [ERROR]-[2018-04-12 08:59:10]-[org.b3log.solo.service.UpgradeService:149]: Attempt to skip more than one version to upgrade. Expected: 2.4.0, Actually: 2.7.0

    1 回复
  • 88250    

    哦,对,用 2.4 的,你现在的版本应该是 2.3,要先升级 2.4

    1 回复
  • bingofang    

    你好!输入我的域名能够出来首页。但是静态资源没有被加载进来,页面没有样式!一下是我的相关配置,麻烦帮忙解决下谢谢!

    questionPNG

    tomcat 配置:
    项目配置:

    Browser visit protocol

    serverScheme=http

    Browser visit domain name

    serverHost=bingofang.top

    Browser visit port, 80 as usual, THIS IS NOT SERVER LISTEN PORT!

    serverPort=80
    nginx 配置:
    server {
    listen 80;
    server_name bingofang.top;

        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://localhost:8080/;
         }
    

    }

    1 回复
  • 88250    

    请看文档

  • xuwangcheng14  

    @88250 请问 1.9 升级 2.0 时报错,是不是 2.0 版本不支持 jdk1.7 了?

    1 回复
  • 88250    

    嗯,请使用 1.8

  • xuwangcheng14  

    @88250 2.3 升级 2.4 出错!!!!!

    1 回复
  • xuwangcheng14  

    蛋疼 2.6 升级 2.7 又出问题了 。tomcat7 闪退!!!!! @88250

    1 回复
  • 88250    

    用 Tomcat9

    1 回复
  • xuwangcheng14    

    可以了。
    刚才是数据库默认位置是 ~/solo_h2/db 导致的
    之前的版本也是这样但是不会导致 tomcat 秒退,2.7 的会秒退的、

    1 回复
  • 88250    

    好的,能用就行。

  • 792668478  

    各位,博客代码怎么不是高亮的呢?

    1 回复
  • 88250    

    用 Markdown 语法

    1 回复
  • 792668478    

    好的,谢谢

  • 792668478  

    博客的存档在哪里删除呢?好像不能删除

    1 回复
  • 88250    

    存单是根据文章日期自动计算的,没有删除这一说。

    1 回复
  • 792668478    

  • 792668478  

    发布文章时报错:b3_solo_archiveDate'doesn't exist,但是数据库中明明有这个表的

    1 回复
  • 88250    

    看下大小写

    1 回复
  • 792668478    

    噢噢,大小写是不对,其他表是不是也有这个问题呢

    1 回复
  • 88250    

    其他表没有

    1 回复
  • 792668478    

    ok,谢谢

    1 回复
  • 88250    

    这个坑当初设计表的时候没注意,现在木已成舟了.. 我再考虑下是否下个版本来个重命名,解决这个历史问题。

  • eviler  

    删不了文章,很烦😭 ,下图是出的错误截图(其他功能都可以)

    YPAVNZ_0S81WNH4OI5png

    7K0O5ADH96P5JG_6QFpng

    1 回复
  • 88250    

    自己改过代码?

    1 回复
  • eviler    

    没有,不过这个博客系统在我的主机上(win10)能够很好的使用删除文章功能,但放在阿里云上就出现这样的情况😭

    1 回复
  • 88250    

    是不是 JDK 版本问题,用 JDK 8 或者以上。

    1 回复
  • eviler    

    Y0XV_34RFMQXS99png
    这个是 1.9 吧😳

    1 回复
  • 88250    

    要不重新按个最新的 JDK8 试试。

    2 回复
  • eviler    

  • eviler    

    可以了,谢谢老师了(暂且这样叫吧,嘿嘿)❤️

    1 回复
  • eviler  

    然后我又发现一个问题,点击订阅订阅跳出来的页面是代码 / 一脸懵逼.jpg
    Q2NBFYZDTIDVJDF4B42Npng

    Z0XDPJIEMRKI8CQGWpng

  • 88250    

    叫我 D 就行 😅 订阅那个是正常的,要用阅读器打开。

    1 回复
  • eviler    

    嗯,谢谢

  • happychai  

    有没有 mysql 的脚本

    1 回复
  • 88250    

    手动建库,自动建表的。

  • BGod  

    imagepng

    imagepng
    tomcat 的 webxml 文件已经加上如上配置了,markdown 编辑器还是乱码,怎么解决

    1 回复
  • 88250    

    Tomcat9 么?

    1 回复
  • BGod    

    已经好了,谢谢。除了要重启 tomcat,还要清浏览器缓存。

    1 回复
  • 88250    

    好的,我加到 FAQ 里,谢谢!

  • Acc  

    发布到云服务器后,只能访问主页,点文章进去 404,但是远程连接服务器却可以查看,这是为啥

    1 回复
  • 88250    

    给个地址我看看

    2 回复
  • Acc    

    http://111.231.193.142:8080/solo-2.9.1

    又变了 突然加载不了样式了 0.0

    1 回复
  • Acc    

    在云服务器里能看到正确的

  • 88250    
    1 回复
  • mogiihu    

    谢谢!我也出现了这个问题

  • mogiihu  

    D 哥,你好。有个问题想请教下。我修改了 Latck 端口打包成 war 包,放入本地 tomcat 运行打开没问题。放到服务器上测试就出现 404。原样复制过去的都不行😂 这是什么情况。

    1 回复
请输入回帖内容...