我開源了一個私人云盤——藍眼雲盤

藍眼雲盤

在線Demo (體驗帳號: demo@tank.eyeblue.cn 密碼:123456)html

Github 後端tank地址前端

Github 前端tank-front地址vue

簡介

藍眼雲盤是 藍眼系列開源軟件 之一,也是藍眼系列其餘軟件的基礎服務軟件。藍眼博客具備如下幾大特點:mysql

1. 軟件體積小,跨平臺,運行簡單linux

  • 藍眼雲盤安裝包6M左右,在windows linux mac OS操做系統中都可安裝運行;git

  • 藍眼雲盤爲綠色軟件,將安裝包解壓縮,修改配置文件後便可一行命令當即運行。github

2. 使用方便,核心功能齊全golang

  • 藍眼雲盤主要支持pc web端,同時手機web也具備不錯的響應性支持。web

  • 藍眼雲盤實現了雲盤(如:百度雲盤微雲)的核心功能:文件夾管理,文件管理,上傳文件,下載文件,文件分享等。sql

  • 藍眼雲盤提供能帳號管理系統,超級管理員能夠管理用戶,查看用戶文件,普通用戶只能查看本身的文件,修改本身的資料。上面提供的體驗帳號就是一個普通用戶的帳號。

3. 支持接口編程

  • 藍眼雲盤提供了編程接口,實現了雲存儲(如:七牛雲阿里雲OSS)的核心功能,能夠使用編程接口上傳文件,做爲其餘網站、系統、app的資源存儲器。能夠在下載圖片時對圖片作縮放裁剪處理,能夠有效地節省客戶端流量。

  • 藍眼系列開源軟件之二的《藍眼博客》正是使用藍眼博客做爲第三方資源存儲器。藍眼博客中的全部圖片,附件均是存儲在藍眼雲盤中。

4. 先後端分離,文檔豐富

  • 項目後端使用golang開發,前端使用vue套件開發。

  • 藍眼雲盤有詳細的後臺api文檔,對於學習前端的童鞋而言能夠快速部署一個正式而又具備豐富接口的後端供學習使用。

  • 後端技術棧使用 golang,沒有使用任何web框架;初始化安裝,生命週期控制,路由管理,路由匹配,日誌管理,依賴注入,錯誤處理,panic攔截,打包,安裝腳本等功能全採用純手動打造,綠色環保,所以代碼更精煉,更具備探討學習的價值。

若是您以爲藍眼雲盤對您有幫助,請不要吝惜您的star

軟件截圖

安裝

** a) 準備工做 **

  1. 一臺windows/linux服務器,固然你能夠使用本身的電腦充當這臺服務器

  2. 安裝好Mysql數據庫

  3. 在這裏下載服務器對應的安裝包

  4. 在服務器上解壓縮,修改配置文件conf/tank.json,各項說明以下:

{
   //服務器運行的端口,默認6010。若是配置爲80,則可直接用http打開
  "ServerPort": 6010,
  //日誌是否須要打印到控制檯,默認false,主要用於調試
  "LogToConsole": false,
  //Mysql端口,默認3306
  "MysqlPort": 3306,
  //Mysql主機
  "MysqlHost": "127.0.0.1",
  //Mysql數據庫名稱
  "MysqlSchema": "tank",
  //Mysql用戶名,建議爲藍眼雲盤建立一個用戶,不建議使用root
  "MysqlUserName": "tank",
  //Mysql密碼
  "MysqlPassword": "tank123",
  //超級管理員用戶名,只能是字母和數字
  "AdminUsername": "admin",
  //超級管理員郵箱,做爲登陸的帳號
  "AdminEmail": "admin@tank.eyeblue.cn",
  //超級管理員密碼
  "AdminPassword": "123456"
}

複製代碼

** b) 運行 **

  • windows平臺直接雙擊應用目錄下的tank.exe

  • linux平臺執行

cd 應用目錄路徑
./tank
複製代碼

若是你但願關閉shell窗口後,應用依然運行,請使用如下腳本啓動和中止

# 啓動應用
cd 應用目錄路徑/service
./startup.sh
 # 中止應用
cd 應用目錄路徑/service
./shutdown.sh

複製代碼

** c) 驗證 **

瀏覽器中打開 http://127.0.0.1:6010 (127.0.0.1請使用服務器所在ip,6010請使用tank.json中配置的ServerPort) 能夠看到登陸頁面,而且使用配置文件中的郵箱和密碼登陸成功後能夠看到所有文件(見上文截圖)即表示安裝成功。

使用源代碼自行打包

前端項目打包

  1. clone tank-front

  2. 安裝依賴項

npm install
複製代碼
  1. 執行打包命令
npm run build
複製代碼
  1. 經過前面三步能夠在dist文件夾下獲得打包後的靜態文件,將dist目錄下的全部文件拷貝到後端項目的build/html文件夾下。(下文的工程目錄中也有說明)

後端項目打包

  1. clone tank

  2. 安裝Golang,環境變量GOPATH配置到工程目錄,建議工程目錄結構以下:

golang                       #環境變量GOPATH所在路徑
├── bin                      #編譯生成的可執行文件目錄
├── pkg                      #編譯生成第三方庫
├── src                      #golang工程源代碼
│   ├── github.com           #來自github的第三方庫
│   ├── golang.org           #來自golang.org的第三方庫
│   ├── tank                 #clone下來的tank根目錄
│   │   ├── build            #用來輔助打包的文件夾
│   │   │   ├── conf         #默認的配置文件
│   │   │   ├── doc          #文檔
│   │   │   ├── html         #前端靜態資源,從項目tank-front編譯得到
│   │   │   ├── pack         #打包的腳本
│   │   │   ├── service      #將tank看成服務啓動的腳本
│   │   ├── dist             #運行打包腳本後得到的安裝包目錄
│   │   ├── rest             #golang源代碼
      
複製代碼
  1. 準備項目依賴的第三方庫
  • golang.org/x
  • github.com/disintegration/imaging
  • github.com/json-iterator/go
  • github.com/go-sql-driver/mysql
  • github.com/jinzhu/gorm
  • github.com/nu7hatch/gouuid

其中golang.org/x國內沒法下載,請從這裏下載,並按上文推薦的目錄結構放置。其他依賴項都可經過安裝腳本自動下載。

  1. 打包
  • windows平臺雙擊運行 tank/build/pack/build.bat,成功以後可在tank/dist下看到tank-x.x.x文件夾,該文件夾即爲最終安裝包。

  • linux平臺運行以下命令:

cd tank/build/pack/
./build.sh
複製代碼

成功以後可在tank/dist下看到tank-x.x.x.linux-amd64.tar.gz

利用獲得的安裝包便可參考上文的安裝一節進行安裝。

相關文檔

藍眼雲盤後端api

藍眼雲盤編程接口

Contribution

感謝全部藍眼雲盤的貢獻者 @zicla@seaheart@yemuhe@hxsherry

若是您也想參與進來,請盡情的fork, star, post issue, pull requests

License

MIT

Copyright (c) 2017-present, eyeblue.cn

原文發佈於 blog.eyeblue.cn/home/articl…

相關文章
相關標籤/搜索