go>> puti>> 返回
项目作者: puti-projects

项目描述 :
:black_nib: Puti is a blog system written in Go. It is be expected to be a high performance full-featured writing system. :rocket: Go语言实现的博客系统。
高级语言: Go
项目地址: git://github.com/puti-projects/puti.git
创建时间: 2018-05-05T08:24:42Z
项目社区:https://github.com/puti-projects/puti

开源协议:GNU General Public License v3.0

关键词:
"blog-platform" "golang" "puti" "writing-application"

下载



Puti Logo


Puti



:black_nib: Puti is a full-featured writing system written in Golang.



Github Actions





Go Report Card


Release


license



中文
| Engilsh

状态

Puti 项目现在仍在开发中,目标是面向极客的下一代写作系统。

目前在探究如何在后台管理中引入 Wasm,提高性能和开发效率(统一技术栈)。

环境依赖

  • Golang 1.13+ (Build using modules)
  • MySQL

本项目使用了 Go Modules,所以需使用 Go 1.13 以上版本。

项目不依赖 Nginx 之类的 Web Server,默认启用自动HTTPS获取Let’s Encrypt证书,但是你可以配置并且使用 Nginx。

功能与计划

项目计划实现以及已经实现的功能如下:

  • 功能
    • 用户
    • 登录注册
      • 登录
      • 注册
      • 第三方接入(github等)
    • 博文系统
      • 文章
      • 页面
      • 分类
      • 标签
      • 专题
    • 知识库系统
      • 笔记本
      • 文档集
    • 媒体
    • 链接
    • 评论
    • 设置
      • 普通设置
      • 第三方设置(接入GItHub,WeChat等)
    • 主题
      • [X] 主题支持
      • [X] 默认主题(Emma)
      • [X] 自由切换
      • 管理界面直接修改主题模板文件
    • 邮件
      • 邮件配置
      • 邮件发送
  • 技术支持
    • 完善的 i18n
    • 邮件服务配置
    • TOC (目前在前端主题实现)
    • 配置图片裁切
    • [X] HTTPS(支持自动 HTTPS)
    • WebServer 转发
    • 头像接入
    • OAuth
    • 媒体文件云存储
  • 生态
    • Docker 镜像支持
    • 配置化的自动部署脚本
    • 简单的统计系统

截图

screenshot_1
screenshot_2
screenshot_3

快速开始

配置

Puti 的配置文件位于 configs 下的 config.yaml,初次使用可以从 config.yaml.example 初始化配置文件。
需要注意的配置:

配置 说明
server.http_port HTTP 端口
server.https_open 是否开启 HTTPS
server.auto_cert 是否开启自动 HTTPS
server.https_port HTTPS 端口
server.tls_cert 如果不是自动 HTTPS,配置 SSL 证书路径
server.tls_key 如果不是自动 HTTPS,配置 SSL 私钥路径
puti_domain 应用绑定的域名,如开启自动 HTTPS,将自动获取域名Let’s Encrypt证书;例如:www.example.com
safety.jwt_secret Json web token 秘钥
db.name 数据库名称
db.addr 数据库 HOST:PORT
db.username 数据库登录名
db.password 数据库密码

安装

源码安装

项目使用了 Go Module,所以要求 Go 1.13 及以上的版本。目前移除了 Vendor 目录,因为现在 go proxy 已经能够很好地解决某些问题了。

  1. # 下载
  2. $ go get -u github.com/puti-projects/puti
  3. # 使用Makefile来构建程序
  4. $ cd $GOPATH/src/github.com/puti-projects/puti
  5. $ make

使用 Docker

使用现成的镜像

我们已经提供了现成的镜像,可以直接拉取使用:

  1. # 从 Docker Hub 拉取镜像
  2. $ docker pull puti/puti
  3. # 创建需要挂载的目录,例如:`/data/puti`为应用文件存放目录,`/data/logs/puti`为日志存放目录
  4. $ mkdir -p /data/puti /data/logs/puti
  5. # 第一次通过`docker run`来创建一个容器
  6. $ docker run --name=puti -p 80:8000 -p 443:8080 -v /data/puti:/data/puti -v /data/logs/puti:/data/logs/puti puti/puti
  7. # 使用 `docker stop``docker start`来停止,关闭容器。
  8. $ docker stop puti
  9. $ docker start puti

更多内容查看:Docker use

使用可配置的部署脚本

我们提供了简单方便地一键部署 Docker-compose 脚本文件,懒人必备。具体使用查看:puti-projects/puti-environment

使用

初始化失败,可能是数据库配置的问题(目前没有安装引导)。默认初始化一个账号 admin 密码 admin 的默认账号,请创建自己的账号后移除默认账号。功能完善后会考虑安装引导。

主题

更多主题制作中。目前提供默认主题 Emma 和 Lin,为两种不同风格的主题。

文档

TODO

更新日志

Detailed changes for each release are documented in the changelog file).

依赖

依赖 关于
gin-gonic/gin HTTP web framework written in Go.
go-gorm/gorm The ORM library for Golang.
allegro/bigcache Efficient cache for gigabytes of data written in Go.
spf13/viper Complete configuration solution.
go.uber.org/zap Fast, structured, leveled logging.
vuejs/vue JavaScript framework for building UI on the web.
ElemeFE/element A Vue.js 2.0 UI Toolkit for Web.
PanJiaChen/vue-element-admin A front-end management background integration solution.
hinesboy/mavonEditor (will be removed) A markdown editor.
Vanessa219/vditor An in-browser markdown editor.
88250/lute A structured Markdown engine that supports Go and JavaScript.

说明

部署

可以不使用 Nginx 之类的 WebServer,且支持自动 HTTPS;目前不做重定向判断,如根域名到 www 域名,HTTP 到 HTTPS;较好的实践是再加一层 WebServer。

贡献


goozp

💻📚🎨

感谢

Thanks to JetBrains for providing free Goland IDE based on JetBrains OS licenses.

goland

License

Puti is under the GPL-3.0 license. See the LICENSE file for details.