Solo v3.4.0 发布,自动同步 GitHub 仓库

本贴最后更新于 1856 天前,其中的信息可能已经物是人非

v3.4.0 简介

Solo v3.4.0 主要增加了两个新特性,博文定时同步 GitHub 仓库(线上效果请看这里,实现细节请看这里)以及展示站点连接(在社区设置站点连接后博客端也将进行展示)。另外,从 v3.4.0 起我们以 Docker 镜像作为主要的交付方式,这样可以方便地进行自动升级,细节请看 Solo 使用指南

下个版本 v3.5.0 我们将上线一款新皮肤 Casper,如果你看到中意的皮肤需要移植,请到此提议

下线 CDN

从该版本开始,我们提供的 Solo 静态资源 CDN 已经下线,请大家不要使用。

升级须知

可从 v3.0.0 起的任何版本直接升级,升级前请备份数据库,以备发生不可预期的问题时进行回滚。

v3.4.0 变更记录

  • 12676 博文定时同步 GitHub 仓库 feature
  • 12719 展示站点连接 feature
  • 12720 皮肤细节改进 skin
  • 12713 后台评论渲染和前端显示保持一致 enhancement
  • 12714 评论异步刷新时,甘特图等没有被渲染 enhancement
  • 12715 Docker 镜像地址更新 enhancement
  • 12716 更新博客域名提示 enhancement
  • 12717 修复升级程序问题 enhancement
  • 12718 以 Docker 作为主要的交付方式 enhancement
  • 12721 目录插件调整 enhancement
  • 12725 支持手动清理存档 enhancement
  • 12729 “我的开源”在当前页面打开 enhancement
  • 12730 Markdown 超链接 a 标签不加 id enhancement
  • 12734 用户名可包含横线 - enhancement
  • 12731 自定义页面评论 Markdown bug

历史版本变更请浏览这里

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1425 引用 • 10043 回帖 • 469 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    396 引用 • 3416 回帖
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Hanseltu

    感谢 D 大,不过每次更新一版都会对前一版有影响吗?比如这个标签栏,没有小框框有点难受 😵

    fenlei12.png

    2 回复
  • 88250
  • 这个 CDN 没有版本号,影响非常大。我们决定关闭了。你可以改为使用自己本地的。

    1 回复
  • lizhongyue248 1

    刚刚看自己的博客 banner 变了,就知道 肯定更新 了。

    感觉自己写的自动更新还是有些不足,自定义 banner 的图片后,每次更新还要上服务器上面去修改背景图片 banner 的 url。。。
    不敢完全用以前版本的 css 移动过来覆盖,因为担心会覆盖掉新版本修改的 css。

    弱弱问句,banner 可以不可以也自定义啊 🙏

    不过突然想到有些皮肤好像没有 banner -0-

    1 回复
  • 88250

    是个好建议,我和 @Vanessa 也在想能不能支持针对特定皮肤做配置,这样每个皮肤就可以用不同的配置变量来实现更好的自定义效果。不过还在构思阶段,等我们找到好的实现方案就开干 😄

    1 回复
  • 针对特定皮肤进行自定义配置是很大胆的构思啊 😅 对我们就方便太多了 ~ 不过皮肤的可变性很大,难度不小啦。

    刚刚突然想到可以用自动覆盖文件的方式覆盖 banner ,不用去改 css。。。前两个版本都是去修改 css banner 的 url 的 😇 好傻=-=

  • lai-bluejay

    原有的 CDN 设置,直接取消掉吗?

  • samye

    渐行渐远,不需要 github 的主,没更新动力了。😄

  • Eddie

    什么是 enhancement??????????
    @Vanessa

    1 回复
  • 功能相关改进

  • lai-bluejay

    solo 用 docker 配置后,网页内容加载出错。java cp 启动方式不会报错。
    Mixed Content: The page at 'https://www.jithub.cn/' was loaded over HTTPS, but requested an insecure stylesheet 'http://www.jithub.cn/skins/Pinghsu/css/base.css?1553584947395'. This request has been blocked; the content must be served over HTTPS.

    nginx 配置:

    # cat jithub.conf
    # ssl_session_cache   shared:SSL:10m;
    # ssl_session_timeout 10m;
    
    upstream backend {
            server localhost:8080; # Tomcat/Jetty
    }
    server {
            listen       443;
            server_name  www.jithub.cn;
            charset utf8;
            ssl on;
    
            keepalive_timeout   70;
            ssl_certificate /root/cert/Nginx/1_jithub.cn_bundle.crt;
            ssl_certificate_key /root/cert/Nginx/2_jithub.cn.key;
            ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers         HIGH:!aNULL:!MD5;
    
            if ($scheme != 'https') {
            rewrite ^(.*)$  https://$server_name$1 permanent;
        }
    
            location / {
                    proxy_pass http://backend$request_uri;
                    proxy_redirect https:// http://;
                    proxy_set_header  Host $host:$server_port;
                    proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header  X-Forwarded-Proto https;
                proxy_set_header  SSL_PROTOCOL $ssl_protocol;
                    client_max_body_size  10m;
            }
    }
    
    server {
            listen       80;
            server_name  jithub.cn www.jithub.cn;
    
            access_log off;
    
            if ($host = "jithub.cn"){
                    return 301 https://www.jithub.cn$request_uri;
                    }
            return 301 https://$server_name$request_uri;
            }
    
    server {
            listen 443;
            server_name jithub.cn;
            return 301 https://www.jithub.cn$request_uri;
    
    
    }
    
    2 回复
  • 88250

    docker run 时加下启动参数 server_scheme=https

    2 回复
  • lai-bluejay

    启动参数如下

    docker run --detach --name solo --network=host \
        --env RUNTIME_DB="MYSQL" \
        --env JDBC_USERNAME="sololhc" \
        --env JDBC_PASSWORD="xxxxxxx" \
        --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
        --env JDBC_URL="jdbc:mysql://localhost:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
        b3log/solo --listen_port=8080 --server_scheme=https --server_host=www.jithub.cn
    
  • lai-bluejay

    需要复现一下吗,我可以用 docker 再起一下服务

    1 回复
  • 88250

    如果方便的话请帮忙再启一下,谢谢。

    2 回复
  • MikeoPerfect

    DI 大神,版本 V3.2.0 最近博客里面有人注册了用户,我进用户管理里点击改变角色,发现该用户从访问用户 变成 一般用户 请问是不是,我再点击一下改变角色,他就会从一般用户 变成管理员了呢,求解答

    1 回复
  • CodingOX

    这个版本是比较稳定的版本吗?

    1 回复
  • 再点又是访问用户了,一般用户可以发帖

  • 88250

    相对稳定 😂

  • guobingwei

    从 v3.0.0 升级到 v3.4.0 失败了....

    能进首页,但是我看后台日志报错了:

    Caused by: org.h2.jdbc.JdbcSQLException: Table "B3_SOLO_CATEGORY_TAG" not found; SQL statement:
    SELECT  *  FROM b3_solo_category_tag WHERE tag_oId = ? LIMIT 0,1 [42102-197]
    	at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    

    需要我手动创建这个表吗

    1 回复
  • 88250

    这个表在 v2 时代就应该创建好的,估计是之前某个老版本升级有问题导致没有创建成功。现在你手动创建吧..

    1 回复
  • guobingwei

    嗯,创建完就好了...

  • guobingwei

    image.png

    进入管理后台提示 401 是怎么回事

    1 回复
  • 88250

    用户名要保持和 GitHub、社区一致,社区这边我可以帮你改,博客端你改 user 表。

    1 回复
  • guobingwei

    那帮我改成这个吧,感谢。guobingwei

    1 回复
  • 88250

    改好了。

  • guobingwei

    ok,可以了。进入管理后台后,工具选项卡下没有内容了,设置不了信息了,这正常吗
    image.png

    1 回复
  • 88250

    肯定不正常 😂 F12 看下是不是有什么报错。

    1 回复
  • guobingwei
    admin.min.js?1553608134392:15 Uncaught TypeError: Util.parseMarkdown is not a function
        at Object.success (admin.min.js?1553608134392:15)
        at f (admin-lib.min.js:1)
        at Object.fireWith [as resolveWith] (admin-lib.min.js:1)
        at r (admin-lib.min.js:3)
        at XMLHttpRequest.r (admin-lib.min.js:3)
    success @ admin.min.js?1553608134392:15
    f @ admin-lib.min.js:1
    fireWith @ admin-lib.min.js:1
    r @ admin-lib.min.js:3
    r @ admin-lib.min.js:3
    XMLHttpRequest.send (async)
    send @ admin-lib.min.js:3
    ajax @ admin-lib.min.js:3
    getList @ admin.min.js?1553608134392:15
    init @ admin.min.js?1553608134392:15
    (anonymous) @ admin.min.js?1553608134392:1
    each @ admin-lib.min.js:1
    each @ admin-lib.min.js:1
    complete @ admin-lib.min.js:3
    f @ admin-lib.min.js:1
    fireWith @ admin-lib.min.js:1
    r @ admin-lib.min.js:3
    r @ admin-lib.min.js:3
    XMLHttpRequest.send (async)
    send @ admin-lib.min.js:3
    ajax @ admin-lib.min.js:3
    load @ admin-lib.min.js:3
    setCurByHash @ admin.min.js?1553608134392:1
    inited @ admin.min.js?1553608134392:1
    (anonymous) @ admin-index.do:237
    1_u010943460.jpg:1 GET https://avatar.csdn.net/7/3/5/1_u010943460.jpg 403
    

    报这个错

    1 回复
  • 88250

    强制刷新一下看看?

  • zjhch123

    会不会有一天就放弃 war 包了,担心

    1 回复
  • 88250

    暂时不会,毕竟目前还是基于 Servlet 容器的。

  • lai-bluejay

    抱歉,才回复信息。已经用 docker 启动了,麻烦帮忙看一下~~
    https://www.jithub.cn/

    # cat jithub.conf  # ssl_session_cache shared:SSL:10m;  # ssl_session_timeout 10m;  upstream backend { server localhost:8080; # Tomcat/Jetty } server { listen  443; server_name www.jithub.cn; charset utf8; ssl  on; keepalive_timeout  70; ssl_certificate /root/cert/Nginx/1_jithub.cn_bundle.crt; ssl_certificate_key /root/cert/Nginx/2_jithub.cn.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; if ($scheme != 'https') { rewrite ^(.*)$ https://$server_name$1  permanent; } location / { proxy_pass http://backend$request_uri; proxy_redirect https:// http://; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header SSL_PROTOCOL $ssl_protocol; client_max_body_size  10m; } } server { listen  80; server_name jithub.cn www.jithub.cn; access_log  off; if ($host = "jithub.cn"){ return  301 https://www.jithub.cn$request_uri; } return  301 https://$server_name$request_uri; } server { listen  443; server_name jithub.cn; return  301 https://www.jithub.cn$request_uri; }
    

    启动命令

    docker run --detach --name solo --network=host \
        --env RUNTIME_DB="MYSQL" \
        --env JDBC_USERNAME="sololhc" \
        --env JDBC_PASSWORD="E]---------------#=" \
        --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
        --env JDBC_URL="jdbc:mysql://localhost:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
        b3log/solo --listen_port=8080 --server_scheme=https --server_host=www.jithub.cn
    
    1 回复
  • lai-bluejay

    docker 的话,可以修改 latke 之类的配置项吗~~

  • 88250

    现在在外面,晚上才能回去

    1 回复
  • lai-bluejay

    明白,那晚上再联系您

  • JsonPaii

    15536771101.png
    这个怎么设置。。我还是刚接触 solo 是个小白 😳

    1 回复
  • 88250
    1. 保持 GitHub、博客、社区三个地方用户名一致
    2. 博客和社区的 B3 Key 一致
    2 回复
  • lai-bluejay

    对了,能帮忙再后台直接修改我的用户名吗?
    现在:

    B3:lai7bluejay
    solo: lai7bluejay
    github: lai-bluejay
    

    之前注册的时候提示用户名不能有 dash:'-',就改了一下,和 github 不一致了。

    现在 solo v3.4 的 github repo 也不自动更新了~~可能跟这个有关系~~~

    然后,每次更新 solo,首要手动 update 库里的用户名变为跟 github 一致:lai-bluejay 才能登录。

    之后提示图床不一致,又要改成 lai7bluejay。

    能帮忙修改吗,现在个人积分不够呢~~

    1 回复
  • 88250

    社区已经改名完毕,带来不便请多包涵啊!

  • Wit13

    D 大,可以帮我改下社区名吗?改成 Wit13

    1 回复
  • 88250

    改好了 😄

    1 回复
  • Wit13

    谢谢 D 大 😂

  • Eddie

    那个 $host="jothub.cn" 是不是错了????

  • zachnaran

    回帖测试

    该回帖因偏离主题而被折叠
    1 操作
    88250 在 2019-06-04 01:11:24 折叠了该回帖
  • PeterChu

    线上效果请看这里

    链接 404 了

    1 回复
  • 88250

    这个功能现在已经下线,以后可能会重制。

请输入回帖内容 ...