Small and beautiful blogging platform, built for the future
Pipe is a small and beautiful open source blog platform designed for programmers. Pipe has a very active community, which can push articles as posts to the community, and replies from the community will be linked as blog comments (for details, please visit B3log Ideas - Distributed Community Network).
This is a brand new online community experience, so that you who love recording and sharing no longer feel lonely!
Welcome to Pipe Official Discussion Forum to learn more.
- Multi-user blog platform
- Markdown editor supports three editing modes: WYSIWYG/Instant Rendering/Split View
- Tag aggregation classification
- Custom navigation links
- Multiple themes / multiple languages
- Atom / RSS / Sitemap
- Article search
- Hexo/Jekyll import / export
- CDN static resource separation
- Support SQLite / MySQL / PostgreSQL
Pipe only supports deployment via Docker. If you need to build from source, please refer to here.
Get the latest image:
docker pull b3log/pipe
-
Use MySQL First create database schema manually (schema name
pipe
, character set useutf8mb4
, sorting ruleutf8mb4_general_ci
), and then start the container: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
For simplicity, the host network mode is used to connect to MySQL on the host.
-
Use 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
NOTE:You should confirm the sqlite db file has existed. If the sqlite db file is not existed, the --volume option of docker run command will recognize the host path as a directory, and create it. That may cause pipe to fail to create the sqlite db file. Make sure the new sqlite db file existed, you can use the touch command simply, just like:
-
$ touch ~/pipe.db
Start command line arguments description:
--port
: process listen port--server
: the URL for the final visiting
The description of the complete startup arguments can be viewed using -h
.
- Pull the latest image
- Restart the container
You can refer to here to write a restart script and run it through crontab every morning to achieve automatic update.
upstream pipe {
server localhost:5897;
}
server {
listen 80;
server_name pipe.b3log.org; # blog domain
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;
}
}
In addition, you can refer to https://ld246.com/article/1517474627971 for configuration.
Pipe uses the Mulan Permissive Software License, Version 2 open source license.
- jQuery: A JavaScript tool library for theme pages
- Vue.js: A progressive, incrementally-adoptable JavaScript framework
- Nuxt.js: The Vue.js Framework
- Vuetify: Material Component Framework for Vue
- Vditor: An In-browser Markdown editor
- Gin: A HTTP web framework written in Go
- GORM: The fantastic ORM library for Golang
- SQLite: The most used database engine in the world
- GCache: Cache library for golang
- Gulu: Go commons utilities
- Lute: A structured Markdown engine that supports Go and JavaScript