• Stars
    star
    407
  • Rank 106,183 (Top 3 %)
  • Language
    Go
  • License
    Other
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🎷 B3log 分布式社区的 Go 博客端节点系统,欢迎加入下一代社区网络。B3log distributed community blog-end node based on Go, welcome to join the next generation community network.

Pipe

小而美的博客平台,为未来而构建





English

💡 简介

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

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

欢迎到 Pipe 官方讨论区了解更多。同时也欢迎关注 B3log 开源社区微信公众号 B3log开源

b3logos.jpg

🗃 案例

功能

  • 多用户博客平台
  • Markdown 编辑器支持三种编辑模式:所见即所得 / 即时渲染 / 分屏预览
  • 聚合分类 / 标签
  • 自定义导航
  • 多主题 / 多语言
  • Atom / RSS / Sitemap
  • 文章搜索
  • Hexo/Jekyll 导入 / 导出
  • 可配置动静分离
  • 支持 SQLite / MySQL / PostgreSQL

🎨 界面

开始使用

start.png

管理后台

console.png

编辑文章

post.png

主题选择

theme.png

主题 Gina

gina.png

🛠️ 安装

Pipe 仅支持通过 Docker 进行部署,如果你需要从源码构建可参考这里

Docker 部署

获取最新镜像:

docker pull b3log/pipe
  • 使用 MySQL 先手动建库(库名 pipe ,字符集使用 utf8mb4 ,排序规则 utf8mb4_general_ci ),然后启动容器:

    docker run --detach --name pipe --network=host \
        b3log/pipe --mysql="root:123456@(127.0.0.1:3306)/pipe?charset=utf8mb4&parseTime=True&loc=Local&timeout=1s" --runtime_mode=prod --port=5897 --server=http://localhost:5897

    为了简单,使用了主机网络模式来连接主机上的 MySQL。

  • 使用 SQLite

    docker run --detach --name pipe --volume ~/pipe.db:/opt/pipe/pipe.db --publish 5897:5897 \
        b3log/pipe --sqlite="/opt/pipe/pipe.db" --runtime_mode=prod --port=5897 --server=http://localhost:5897

    注意:需先确保 SQLite 数据库文件已存在。如果数据库文件不存在时,docker run --volume 参数默认将宿主路径识别为目录,并自动创建这个目录,这可能导致 pipe 创建 sqlite 数据库文件失败。新建数据库文件可以简单用 touch 命令,如:

  • $ touch ~/pipe.db

启动参数说明:

  • --port:进程监听端口
  • --server:访问时的链接

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

Docker 升级

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

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

NGINX 反代

upstream pipe {
    server localhost:5897;
}

server {
    listen 80;
    server_name pipe.b3log.org; # 配置为你自己的域名

    location / {
        proxy_pass http://pipe$request_uri;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

另外,可以参考 https://ld246.com/article/1517474627971 进行配置。

📜 文档

🏘️ 社区

📄 授权

Pipe 使用 木兰宽松许可证, 第2版 开源协议。

🙏 鸣谢

  • jQuery:JavaScript 工具库,用于主题页面
  • Vue.js:渐进式 JavaScript 框架
  • Nuxt.js:Vue.js 框架
  • Vuetify:Vue.js 的 Material 组件框架
  • Vditor: 浏览器端的 Markdown 编辑器
  • Gin:又快又好用的 golang HTTP Web 框架
  • GORM:极好的 golang ORM 库
  • SQLite:使用广泛的嵌入式 SQL 引擎
  • GCache:golang 缓存库
  • Gulu:Go 语言常用工具库,这个轱辘还算圆
  • Lute:一款结构化的 Markdown 引擎,支持 Go 和 JavaScript

特性说明

发布文章

Pipe 的文章编辑器支持 Markdown,并支持复制/粘贴图片、粘贴 HTML 自动转换 Markdown、流程图、数学公式等。

另外,可以为文章启用自动配图,会自动在文章最前面插入所选择的配图。

聚合分类

Pipe 使用“自底向上”的分类方式:

  1. 定义分类,并配置该分类包含的标签
  2. 查询某个分类文章列表时通过分类-> 标签集-> 标签关联的文章进行聚合

也就是说一篇文章在编辑时只需要打标签,访问分类时会根据该分类包含的标签将文章关联出来。这是一个自底向上的信息架构,在使用时更灵活一些,可以随时调整分类而不必重新更新文章。

域名绑定

在 Pipe 平台上的每个博客都可以配置域名,需要博主和服务器运维者分别操作:

  1. 博主在设置 -> 基础配置 -> 博客地址一栏填写域名
  2. 运维者通过配置 NGINX 实现域名到 /blogs/{username} 的反向代理
server {
    listen 80;
    server_name vanessa.b3log.org;

    location / {
        proxy_pass http://pipe/blogs/Vanessa/;
    }
}

导入 / 导出

Pipe 支持导入 Hexo/Jekyll 的 Markdown 文件,将需要导入的 Markdown 文件使用 zip 压缩上传即可。导入时会按标题去重,并自动按原文章的创建时间生成存档。

同样地,Pipe 也支持 Markdown 导出,格式为 Hexo。

链滴

在 Pipe 上发布文章时可选择是否自动推送到链滴上,这样能让更多人看到你创作的内容,更容易引起大家的关注和互动。

运维

数据库

Pipe 使用 SQLite3 数据库引擎,数据文件默认情况下存放在 ~/pipe.db,可以通过修改 pipe.json 的 DataFilePath 指定新的存放路径。

建议定期备份数据文件,避免意外情况导致数据丢失。

版本升级

在管理后台的关于中可以检查版本更新,如果提示有更新请尽快升级,一般来说升级只需要下载新的发布包然后部署重启,实际升级方式以每次版本发布公告为准。

FAQ

如何做友链页面?

Pipe 没有单独的友链管理功能。可以通过发一篇文章,然后在导航管理中新建一个友链导航跳转过去。

结语

More Repositories

1

symphony

🎶 一款用 Java 实现的现代化社区(论坛/问答/BBS/社交网络/博客)系统平台。A modern community (forum/Q&A/BBS/SNS/blog) system platform implemented in Java. https://ld246.com
Java
2,588
star
2

solo

🎸 B3log 分布式社区的 Java 博客端节点系统,欢迎加入下一代社区网络。B3log distributed community blog-end node based on Java, welcome to join the next generation community network.
Java
1,582
star
3

lute

🎼 一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。A structured Markdown engine that supports Go and JavaScript.
Go
1,087
star
4

baidu-netdisk-downloaderx

⚡️ 一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac。已于 2020 年 4 月 15 日正式停用,源码仅用于程序员交流学习,细节请查看:关于停用 BND 的说明 https://ld246.com/article/1586956316578
JavaScript
487
star
5

liandi

📕 一款桌面端的 Markdown 块级引用和双向链接笔记应用,支持 Windows、Mac 和 Linux。A desktop Markdown Block-Reference and Bidirectional-Link note-taking application, supports Windows, Mac and Linux.
333
star
6

city-geo

🌄 中国城市经纬度数据。
Go
287
star
7

gulu

⭕ Go 语言常用工具库,这个轱辘还算圆!
Go
152
star
8

wide

🌈 一款基于 Web 的 Go 语言 IDE,随时随地玩 golang。
JavaScript
112
star
9

latke

🌀 一款以 JSON 为主的 Java Web 框架。A Java Web framework based on JSON.
Java
107
star
10

awesome-seeds

🌱 发现新鲜有趣的小型开源项目,欢迎投稿!
99
star
11

lute-pdf

📝一款将 Markdown 文本转换为 PDF 的小工具。
Go
36
star
12

lute-docx

📝一款将 Markdown 文本转换为 Word 文档 (.docx) 的小工具。
Go
31
star
13

88250

海阔天空
Go
25
star
14

routinepanic.com

🌐 协慌网 - 专注编程问答汉化。
JavaScript
20
star
15

protyle

思源笔记数据解析器和渲染器。SiYuan data (.sy) parser and renderer.
15
star
16

lute-http

Ⓜ️ 包装 Lute 引擎以 HTTP 服务发布。
Go
14
star
17

solo-blog

✍️ D 的个人博客 - 但行好事莫问前程
11
star
18

awesome-solo

🎸 展示大家漂亮的 Solo 博客!最新统计数据已经移到社区 https://hacpai.com/top/solo
10
star
19

starfire

🌟 一个分布式的内容分享讨论社区,星星之火可以燎原。
TypeScript
10
star
20

latke-demo

Latke demo.
Java
10
star
21

we-are-under-attack

😱 你的服务器、电脑、电视、电冰箱、空调、洗衣机、摄像头等一切可联网设备是否已经沦为肉鸡?
7
star
22

forward-proxy

一款简单的 HTTP 正向代理服务。
Go
5
star
23

bing

🍱 Bing 壁纸上传七牛云。
Go
4
star
24

chainbook

📚 区块链上的纸质书交易平台,为未来而构建!
4
star
25

hits

:octocat:🔢 GitHub 仓库浏览计数。
Go
3
star
26

header

📄 A utility to add source code file header/license written in golang.
Go
3
star
27

go-markdown-benchmark

Golang markdown engine benchmark.
HTML
3
star
28

iGitHub

:octocat: Exports GitHub issues to Markdown.
Java
2
star
29

.github

:octocat: Community health files.
1
star
30

solo-skins

该仓库已废弃,最新的官方皮肤已经在 Solo 项目中自带。
FreeMarker
1
star
31

xiaov

👰 一个 QQ 聊天机器人,她的名字叫做小薇~
Java
1
star
32

starfire-moderator

星火管理节点。
Go
1
star
33

88250.github.io

Solo 导出的静态站点。
HTML
1
star