我開源了一個短視頻應用(Go+React)|DouTok2.0 項目介紹
前言
大家好,這里是白澤,拖更了一段時間,抱歉。在 DouTok2.0 可以初步允許大家接入開發之后,這篇文章才得以出爐。
DouTok:一個開源的 web 端的短視頻應用,采用微服務架構,包含前后端(React & Go),DouTok 正處在開發初期,目前已經完成了 基礎的用戶注冊、登錄、用戶信息管理、視頻上傳、視頻列表展示、評論、點贊、收藏等功能。

為什么要有 V2 版本:
例如:DouTok 是字節跳動青訓營的參賽作品,但 DouTok1.0 版本的微服務劃分不夠合理,拆的過于零碎,也許看起來很“微服務”,但與實際工作生產環境上的服務劃分卻背道而馳,微服務的劃分不應過分追求“微”,而是適應項目發展,在完善基本設計的前提下進行拆分。
讓 DouTok 繼續擴張的另一個卡點是其本身沒有前端,只能依賴青訓營中提供的“抖聲”APP。為了讓 DouTok 順利擴張,所以我們決定開發一個全新的V2版本。在V2版本中,DouTok 減少了服務的劃分,增加了前端項目,雖然現階段依然不夠完整,但是已經具備了繼續擴張的土壤。
對參與過 DouTok1.0 維護的所有同學表示感謝!

后續規劃
-
前端:
- 功能:頁面布局協調,以及事件跳轉完善等
- 性能:React 組件優化與提煉等
-
后端:
- 功能:聊天系統(IM)、視頻推薦、消息推送、私信等功能
- 性能:可觀測性、壓力測試,緩存 or 消息隊列接入等
參與貢獻
無論你是前端開發者還是后端開發者,都可以參與到 DouTok 的開發中來,我們歡迎你的加入!
?? 倉庫地址:https://github.com/cloudzenith/DouTok
?? 如何參與貢獻:https://cloudzenith.github.io/DouTok/community
?? QQ群: 622383022
?? B站講解:白澤talk
?? 開源學習倉庫:go-learning
快速開始
本教程將帶領你從零開始,循序漸進搭建并啟動 DouTok 項目,若讀者已具備相關知識,可選擇性閱讀。
所有信息參考文檔站(非常詳細): https://cloudzenith.github.io/DouTok/docs/quickstart/
項目架構

主要目錄
這是一個巨倉項目,所有的服務都在這個倉庫中,目錄結構如下:
- backend: 后端服務
- frontend: 前端服務
- test: 測試
- deploy: 部署
- docs-site: 文檔站
- env: 依賴環境部署
- sql: 數據庫腳本
頁面展示
- 上傳視頻

- 視頻

- 評論 & 點贊 & 關注

環境準備
-
Golang 1.22+
-
Node 14.17+
-
React.js + Next.js
-
JetBrains GoLand/WebStorem
-
VSCode
-
Docker
必要組件配置及啟動
- Consul: 通過
backend/gopkgs/launcher提供能力,所有后端服務均自動注冊到Consul中 - Redis: 緩存
- MySQL: 持久化存儲
- MinIO: 對象存儲
- RocketMQ: 消息隊列(不是必須)
- 找到
env/basic.yml文件,通過命令docker-compose -f ./env/basic.yml up -d啟動Consul, Redis, MySQL, MinIO
(2、3步不是必須) - 找到
env/rocketmq/broker.conf文件,將brokerIP1修改為本地局域網IP - 找到
env/rocketmq.yml文件,通過命令docker-compose -f ./env/rocketmq.yml up -d啟動RocketMQ
MySQL庫表結構同步
- 進入
sql目錄 - 檢查
sql/Makefile文件,其中涉及的MySQL連接需注意應與本地環境一致 - 安裝 goose 工具,執行
go install github.com/pressly/goose/v3/cmd/goose@latest - 執行
make up命令,MySQL庫表結構會同步到本地
啟動后端服務
編譯運行
- 進入
backend目錄下除gopkgs外的所有服務目錄,依次go run cmd/main.go啟動服務
鏡像運行
- 進入
backend目錄下除gopkgs外的所有服務目錄,執行make build以編譯Docker鏡像 - 進入
env目錄,檢查configs下各個配置文件,應與本地環境保持一致,特別是./baseservice/config.yaml中,minio.default.host需要改成本機局域網IP - 進入
env目錄,執行docker-compose -f backend.yml up -d啟動所有后端服務
啟動前端服務
- 進入
frontend/doutok目錄,執行pnpm install安裝依賴 - 執行
pnpm dev啟動前端服務,通過 http://localhost:23000 訪問
小結
持續更新中,歡迎關注。
浙公網安備 33010602011771號