Skip to content

Latest commit

 

History

History
178 lines (128 loc) · 8.73 KB

README_en_US.md

File metadata and controls

178 lines (128 loc) · 8.73 KB

Pipe

Small and beautiful blogging platform, built for the future





中文

💡 Introduction

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.

🗃 Showcases

✨ Features

  • 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

🎨 Screenshots

Start

start.png

Console

console.png

Post

post.png

Theme

theme.png

Theme Gina

gina.png

🛠️ Setup

Pipe only supports deployment via Docker. If you need to build from source, please refer to here.

Docker deploy

Get the latest image:

docker pull b3log/pipe
  • Use MySQL First create database schema manually (schema name pipe, character set use utf8mb4, sorting rule utf8mb4_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.

Docker upgrade

  1. Pull the latest image
  2. Restart the container

You can refer to here to write a restart script and run it through crontab every morning to achieve automatic update.

NGINX reverse proxy

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.

📜 Documentation

🏘️ Community

📄 License

Pipe uses the Mulan Permissive Software License, Version 2 open source license.

🙏 Acknowledgement

  • 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