Diagrams是一个云系统架构原型图制作库,它的诞生是为了在没有任何设计工具的情况下对新的系统架构进行原型设计。您还可以描述或可视化现有系统架构,Diagram as Code允许您跟踪任何版本控制系统中的架构图更改。相比于在 UI 上面对各种图标进行拖拽和调整,这种方式更符合我们程序员的使用习惯。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Aaron Liu a58e3b19ec
Revert "chore(build): add go-task support (#1608)"
2 years ago
.github Revert "chore(build): add go-task support (#1608)" 2 years ago
assets@09a5168b23 Revert "chore(build): add go-task support (#1608)" 2 years ago
bootstrap feat(wopi): change doc preview config based on WOPI discovery results 2 years ago
middleware test(wopi): add tests for wopi client 2 years ago
models refactor(db): move dialects to a standalone pkg 2 years ago
pkg refactor(db): change SQLite driver from github.com/jinzhu/gorm/dialects/sqlite to github.com/glebarez/go-sqlite (#1626) 2 years ago
routers feat(webdav): add read-only option (#1629) 2 years ago
service feat(explorer): advance delete options for users 2 years ago
.gitignore fix: zip assets folder path error 3 years ago
.gitmodules Modify: use public URL for asserts module 5 years ago
.travis.yml feat(static): release static files into memory while startup (#1471) 2 years ago
Dockerfile Revert "chore(build): add go-task support (#1608)" 2 years ago
LICENSE Add: README & License 5 years ago
README.md Revert "chore(build): add go-task support (#1608)" 2 years ago
README_zh-CN.md Revert "chore(build): add go-task support (#1608)" 2 years ago
assets.zip fix(static): add placeholder empty zip file for go embed 2 years ago
build.sh fix: timeout while fetching yarn pkgs in building docker image action 2 years ago
docker-compose.yml feat: docker/docker-compose support (#1203) 3 years ago
go.mod refactor(db): change SQLite driver from github.com/jinzhu/gorm/dialects/sqlite to github.com/glebarez/go-sqlite (#1626) 2 years ago
go.sum refactor(db): change SQLite driver from github.com/jinzhu/gorm/dialects/sqlite to github.com/glebarez/go-sqlite (#1626) 2 years ago
main.go enhance: escalate `ProxyHeader` as a global config 2 years ago

README.md

中文版本



Cloudreve

Self-hosted file management system with muilt-cloud support.

GitHub Test Workflow

HomepageDemoDiscussionDocumentsDownloadTelegram GroupLicense

Screenshot

Features

  • ☁️ Support storing files into Local storage, Remote storage, Qiniu, Aliyun OSS, Tencent COS, Upyun, OneDrive, S3 compatible API.
  • 📤 Upload/Download in directly transmission with speed limiting support.
  • 💾 Integrate with Aria2 to download files offline, use multiple download nodes to share the load.
  • 📚 Compress/Extract files, download files in batch.
  • 💻 WebDAV support covering all storage providers.
  • Drag&Drop to upload files or folders, with streaming upload processing.
  • 🗃️ Drag & Drop to manage your files.
  • 👩‍👧‍👦 Multi-users with multi-groups.
  • 🔗 Create share links for files and folders with expiration date.
  • 👁️‍🗨️ Preview videos, images, audios, texts, Office documents, ePub files online.
  • 🎨 Customize theme colors, dark mode, PWA application, SPA, i18n.
  • 🚀 All-In-One packing, with all features out-of-the-box.
  • 🌈 ... ...

🛠️ Deploy

Download the main binary for your target machine OS, CPU architecture and run it directly.

# Extract Cloudreve binary
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz

# Grant execute permission
chmod +x ./cloudreve

# Start Cloudreve
./cloudreve

The above is a minimum deploy example, you can refer to Getting started for a completed deployment.

⚙️ Build

You need to have Go >= 1.18, node.js, yarn, zip and other necessary dependencies before you can build it yourself.

Clone the code

git clone --recurse-submodules https://github.com/cloudreve/Cloudreve.git

Build static resources

# Enter frontend sub-module
cd assets
# Install dependencies
yarn install
# Start building
yarn run build
# Delete unused map files
cd build
find . -name "*.map" -type f -delete
# Return to main folder to pack static files
cd ../../
zip -r - assets/build >assets.zip

Compile

# Obtain version number, commit SHA
export COMMIT_SHA=$(git rev-parse --short HEAD)
export VERSION=$(git describe --tags)

# Compile
go build -a -o cloudreve -ldflags "-s -w -X 'github.com/cloudreve/Cloudreve/v3/pkg/conf.BackendVersion=$VERSION' -X 'github.com/cloudreve/Cloudreve/v3/pkg/conf.LastCommit=$COMMIT_SHA'"

You can also start a quick build using build.sh in the project root directory:

./build.sh  [-a] [-c] [-b] [-r]
	a - Build assets
	c - Build binary backend
	b - Build both assets and backend
	r - Cross-compilation for final release

⚗️ Stacks

📜 License

GPL V3