• 荣耀V10发布会看点汇总:这些亮点不容错过! 2019-05-02
  • 沙特队所坐飞机引擎起火 降落后全体队员安全抵达酒店 2019-05-02
  • 世界杯带火巴西家居产业 2019-04-26
  • “中国网事·海航集团感动2017”年度网络人物评选启动 2019-04-26
  • 朝阳消防联合快递行业开展消防安全宣传培训系列活动 2019-04-05
  • 期待已久的桃花运 竟然可以穿出来?! ——凤凰网房产广州 2019-04-05
  • 中关村雍和航星科技园,北京中关村雍和航星科技园 2019-03-22
  • 潇湘玉竹版主辛苦了! 2019-02-13
  • 端午新经济体验无处不在 “指尖端午”玩出新花样 2019-02-13
  • 工信部:鼓励婴幼儿配方乳企质量安全追溯体系建设 2018-12-30
  • "简介 [链接] 是一款小而美的开源博客系统,专为程序员设计。 Solo 有着非?;钤镜腫链接],可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。 这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单! 具体细节请浏览 [链接] 安装 本地试用 [链接]最新的 Solo 包解压,进入解压目录执行 .."

    Solo 用户指南

    简介

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

    Solo 有着非?;钤镜?a href="//www.zpvv.net">社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 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 //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 带参(比如 //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 有着非?;钤镜?a href="//www.zpvv.net">社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

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

      612 引用 ? 4699 回帖 ? 720 关注
    • 安装

      你若安好,便是晴天。

      49 引用 ? 746 回帖 ? 1 关注
    • 文档
      51 引用 ? 907 回帖 ? 1 关注
    感谢    关注    收藏    赞同    反对    举报    分享
    233 回帖    
    请输入回帖内容...
    • alanfans ?      

      1l

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • meikaiyipian ?      

      2L

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • xjtushilei ?      

      3l

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • Vanessa ?      

      截图都没有一个,还指南呀?

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • someone ? API ?      

      来来来,指点一下我的博客。超屌的

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • moloee ?            

      请问下,这个支持从 github 上拉源码自己打包编译 war 包发布吗?另外,拉了源码之后,怎么本地启动 debug 模式呢?有这方面的文档吗?找了一段时间了,没看到相关的


      更新,找到了,//www.zpvv.net/settings ,虽然还有问题,移步对应的帖子下。

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • Vanessa ?            

      Solo 开发指南 开发在这里

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • liweiwei ?      

      Tomcat(版本要求至少 9) ??

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • Green ?    

      怎么实现全站 https ? ??

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      nginx 配置一下,七牛配置一下应该就行了

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • cier ?      

      我想把博客设置在一个路径下,比如 //域名/blog

      我在 starter 里改成 root.setContextPath("/blog") 了, 然后访问域名时通过 nginx 直接转发到 /blog 下 但静态资源不能访问,然后对 nginx 里面对一些静态资源重新做了配置,还是有些冲突,有什么简单的解决办法吗? nginx 如下:

       location ~ .*\.(png|html|htm|ico|jpg|jpeg|bmp|gif|js|css)$ {
         proxy_pass  //127.0.0.1:8088$request_uri;
       }
      
       location / {
         proxy_pass  //127.0.0.1:8088/blog$request_uri;
         proxy_set_header  Host $host;
         proxy_set_header  X-Real-IP  $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
         client_max_body_size 1000m;
       } 
      
      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      你用 /solo 试试。另外参考 Latke 配置剖析

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • cier ?            

      静态页面 nginx 转发没问题,但页面的链接有问题,看了下 ftl 文件,是 serverPath 的问题.
      独立容器启动的
      我是在 starter 类里面改 ContextPath 的:root.setContextPath(“/blog”); 然后 latke 配置文件没有设置 contextPath,设置的 servePath 为空,不知道怎么,没有起到作用。

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      不用改代码的,通过配置 latke.props 或者 starter 带参都可以设置 contextPath

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • cier ?            

      不知道是不是 bug,启动代码里改 root.setContextPath(“/”) 没有问题,
      local.properties 里改 contextPath 总是出现静态资源无法访问问题 (不用 nginx),我也试了设置 staticPath 或者不设置各种情况,都出现问题。
      对了,我是直接 eclipse 启动 Starter 的 main 函数启动的。

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      应该不是 bug,你再折腾看看

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • cier ?      

      话说楼主,能导出 sql 和 json,有导入功能吗?如果现在是 H2 数据库,想换成 mysql,sql 的应该不兼容吧?

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      两者的 SQL 不兼容,估计要自己处理一下。

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • iTanken ?      

      [INFO]-[2017-11-24 08:48:41]-[org.b3log.solo.util.Markdowns:127]: [marked] is not available caused by [Connection refused: connect], uses built-in [flexmark] for markdown processing. Reads FAQ section in user guide (//www.zpvv.net/article/1492881378588) for more details.

      这算不算 bug ??

      2 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      不是 bug,你看下链接地址

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • iTanken ?            

      哦哦,貌似是看懂了??

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • Changer0914 ?      

      订阅有问题呀 /blog-articles-rss.do

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      有啥问题?

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • Changer0914 ?            

      你访问一下,这里输出一些代码 //120.55.54.230/blog-articles-rss.do

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      v2.5.0 将改进,具体请看 https://github.com/b3log/solo/issues/12361

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • Changer0914 ?   1 感谢            

      哦,谢谢,你的博客很棒,打算长期用??

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      谢谢支持,有问题随时交流。

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • bingofang ?      

      请问小编,数据库可以切换到自己 mysql 吗?有相应的 sql 文件吗??? 求解

      2 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      可以使用 MySQL,你看下 local.props 就明白了。

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • WangRun ?            

      一样的情况求怎么解决

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • WangRun ?            

      INFO ]-[2018-01-14 00:20:18]-[org.b3log.solo.util.Markdowns:127]: [marked] is not available caused by [拒绝连接 (Connection refused)], uses built-in [flexmark] for markdown processing. Reads FAQ section in user guide (//www.zpvv.net/article/1492881378588) for more details.
      求如何解决

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      这个是正常的,细节可以看下日志里面的链接

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • someone ? API ?      

      node js/marked/http.js /root/luos/app/bk/pkg/apache-tomcat-9.0.2/webapps/solo-2.5.0/js/marked/http.js:35 return <li class="task-item">${text}</li>; ^ SyntaxError: Unexpected token ILLEGAL at Module._www.zpvv.netpile (module.js:439:25) at Object.Module._extensions…js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:902:3

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • yc ?      

      我想把数据库换成自己的 mysql,于是在后台把 sql 导出,然后在我自己的 mysql 里运行 报错运行不了 这是为什么?

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      H2 导出的 SQL 没法直接导入 MySQL ,不兼容的??赡苄枰约菏侄髡幌?,多尝试折腾下应该可以的。

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • yc ?            

      谢谢大佬 那我再试试看

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • yc ?      

      还是 mysql 的问题 大佬有好的解决方案吗

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      实在不行的话可以用 Markdown 导出

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • yc ?      

      嗯啊 。谢谢 我试试

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • yc ?            

      请问你现在解决了这个问题吗

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 22 ? API ?      

      ??

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • qianhj ?      

      Solo 这个项目为什么配置好本地的 mysql 其实并没有用来存储相关的数据信息,还是存储在云端呢

      2 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      云端??

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • qianhj ?      

      这个我能确定已经切换成功了,因为我修改为不正确的登录口令是无法正常登录的。

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      重启了么,如果切换到新库的话需要重新初始化的。

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • qianhj ?      

      嗯,好的!可能是因为最近内部服务器搬迁的原因,刷新有些延迟,现在正常了。谢谢?。?!?? ?? ??

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • yuanfei666 ?   1 感谢      

      nginx 按照上述方法,搭建失败,配置会出错 我的是部署在 tomcat 上,端口是 8080,解决方法

      CRPTM580F7RFM2XFNDpng 修改配置后保存退出,重启 nginx

      V933XQYR3184MCRIDNpng

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • yuanfei666 ?            

      mysql 应该是安装在云主机上,你的项目可以部署到云主机,也可以放在本地

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • kaijun ?      

      请问如何切换为 markdown 作为默认的编辑器呀?

      1 回复
         感谢    赞同    反对    举报    折叠    分享    评论    回复
    • 88250 ?            

      默认就是 Markdown 啊….

         感谢    赞同    反对    举报    折叠    分享    评论    回复
    请输入回帖内容...
  • 荣耀V10发布会看点汇总:这些亮点不容错过! 2019-05-02
  • 沙特队所坐飞机引擎起火 降落后全体队员安全抵达酒店 2019-05-02
  • 世界杯带火巴西家居产业 2019-04-26
  • “中国网事·海航集团感动2017”年度网络人物评选启动 2019-04-26
  • 朝阳消防联合快递行业开展消防安全宣传培训系列活动 2019-04-05
  • 期待已久的桃花运 竟然可以穿出来?! ——凤凰网房产广州 2019-04-05
  • 中关村雍和航星科技园,北京中关村雍和航星科技园 2019-03-22
  • 潇湘玉竹版主辛苦了! 2019-02-13
  • 端午新经济体验无处不在 “指尖端午”玩出新花样 2019-02-13
  • 工信部:鼓励婴幼儿配方乳企质量安全追溯体系建设 2018-12-30
  • 广州市花都区体育彩票中心 澳门五分彩计划软件 快乐时时彩开奖查询 内蒙古时时彩开奖视频下载 山东临沂87.cn彩票投注站 博彩论坛 久游在线娱乐平台 重庆时时彩破译 体彩p3今日开奖号码 山东群英会走势图下载安装 tt娱乐城 中彩网双色球 新疆时时彩官方开奖视频 福彩3d综合走势图表 快乐飞艇是官方彩票吗 qq分分彩官方app下载安装