Skip to content

Latest commit

 

History

History
executable file
·
144 lines (127 loc) · 4.48 KB

README_cn.md

File metadata and controls

executable file
·
144 lines (127 loc) · 4.48 KB

PLACE

PLACE LOGO

💥PLACE — 開源文件儲存和共享服務


PLACE 允許使用者在雲端儲存檔案、在裝置之間同步檔案以及共用檔案。
您可以自行設定或使用我們的協助。
相信 Place 將成為最容易擴展的儲存和媒體交付服務。
以及一個教授軟體、設計和程式設計技能的專案。
隨時提交拉取請求或建立問題!



如何開始

安裝 git
複製 這個儲存庫
轉到後端資料夾
cd server
创建“.env”和“docker.env”(如果您想使用 Place,还可以更改 s3 和 env 配置中的数据。)
docker.env 示例:

DATABASE_URL=postgresql://root@crdb:26257/defaultdb?sslmode=disable&schema=public
JWT_SECRET=secret-key
S3_PORT=9000
S3_ENDPOINT=nginx-minio
S3_ACCESS_KEY=ACCESS_KEY
S3_SECRET_KEY=SECRET_KEY

`npx prisma generate` 使用 Prisma 連接資料庫和 env 文件.

使用 Docker Compose

安裝 DockerDocker Compose

docker-compose build
docker-compose run 

本地

安裝 npm
在終端機中執行:

安裝 nestjs/cli:
npm i -g @nestjs/cli
下載所有依賴項:
npm i

安裝 CockroachDB
在新終端機中:
cockroach start-single-node --insecure

安裝 minio
在新終端機中:

minio server start

最後:
npm run start:dev

發展描述 Place

問題表述:

建構高負載、易於擴展的服務,用於在用戶之間簽訂媒體合約、儲存和傳輸文件。

包括自己的貨幣、認購

要求:

Front-end:
  • 快速、簡單、看起來不錯
  • 解決實際問題
Source:
  • 最佳化
  • 遵守物件導向的程式模式和範例。
  • 測試
Back-end:
  • 一次可承受約一百萬個請求
  • 最少的故障
  • 可擴展架構
  • 其中一台伺服器可能發生故障 - 工作將繼續
  • 所有使用者都必須收到合約

使用者路徑

使用者路徑

架構與技術技術棧(初步)

建築學

Front-end

Next.js, Typescript, Webpack

Back-end

  • Nest.js
  • S3 Minio
  • Cockroach DB
  • JWT auth, SwaggerAPI, Typescript, Prisma, Class-validator
  • Nginx, Docker, Minicube/K3s/KuberSpray

為什麼沒有快取?

  • 要快取的檔案很少
  • 需要熱身

為什麼沒有目標受眾研究?

這不是一家新創公司,所以沒有必要。

計畫:

  • ✅ 开始开发基础版本
  • ✅ 描述要求
  • ✅ 描述架構和技術堆疊
  • ✅ 介紹專案的伺服器部分
  • ✅ 描述行為準則
  • ✅ 設計自訂路徑
  • ✅ 开发 UI 套件
  • ✅ 开发设计系统
  • ✅ 介紹專案的客戶端部分
  • 獲得 MVP
  • ...
  • 开始开发企业版
  • 连接Prometheus+Graphana记录器
  • 划分为微服务

變化

拒絕 TarantoolDB

Tarantool DB 專為快速處理小數據而設計,Cockroach DB 則專為大數據而設計。
但文件可以儲存在 Cockroach DB 中的假設被駁斥了。 此外,Prisma ORM 不適用於 Tarantool DB。

因此,Cockroach DB 處理所有數據,Tarantool DB 暫時從專案中刪除。

所有想要改進專案的貢獻者都是免費的。

我認為有必要擁有維護開源專案的經驗,以及了解開發該專案的新方法。