Go Markdown 部落格系統

Convee 發表於 2021-12-03
Go Markdown

Go Markdown 部落格系統

基於 Go 語言實現的 Markdown 部落格系統

技術棧

目錄結構

├── Makefile                     # 專案管理檔案
├── conf                         # 配置檔案統一存放目錄
├── internal                     # 業務目錄
│   ├── handler                  # http 介面
│   ├── pkg                      # 內部應用程式程式碼
│   └── routers                  # 業務路由
├── logs                         # 存放日誌的目錄
├── static                       # 存放靜態檔案的目錄
├── tpl                          # 存放模板的目錄
├── main.go                      # 專案入口檔案
├── pkg                          # 公共的 package
├── tests                        # 單元測試
└── startup.sh                   # 啟動指令碼

功能模組

後臺

  • 文章管理:文章增刪改查
  • 頁面管理:頁面增刪改查,可自定義 markdown 頁面
  • 分類管理:分類增刪改查
  • 標籤管理:標籤列表

前臺

  • 文章列表:倒序展示文章、可置頂
  • 內容頁面:markdown 內容展示
  • 標籤頁面:按標籤文章數量排序
  • 關於頁面:個人說明
  • 閱讀清單:個人閱讀書籍
  • 站內搜尋:支援文章標題、描述、內容、分類、標籤模糊搜尋

開發規範

遵循: Uber Go 語言編碼規範

常用命令

  • make help 檢視幫助
  • make dep 下載 Go 依賴包
  • make build 編譯專案
  • make tar 打包檔案

部署流程

  • 依賴環境:

    mysql、redis、elasticsearch

    elasticsearch 可通過配置開啟關閉,redis主要考慮到後續加快取

  • 安裝部署

# 下載安裝,可以不用是 GOPATH
git clone https://github.com/convee/goblog.git

# 進入到下載目錄
cd goblog

# 生成環境配置檔案
cd conf

# 修改 mysql、redis、elasticsearch 配置

# 匯入初始化 sql 結構
mysql -u root -p
> create database blog;
> set names utf8mb4;
> use blog;
> source blog.sql;


# 下載依賴
make dep

# 編譯
make build

# 執行
./goblog dev.yml

# 後臺執行
nohup ./goblog dev.yml &
  • supervisord 部署
[program:goblog]
directory = /data/modules/blog
command = /data/modules/blog/goblog -c conf/prod.yml
autostart = true
autorestart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /data/modules/blog/supervisor.log
  • 訪問首頁

localhost:9091

  • 訪問後臺

localhost:9091/admin

使用者名稱:[email protected]

密碼:123456

本作品採用《CC 協議》,轉載必須註明作者和本文連結