網(wǎng)站備案主體撤銷2023年6月疫情情況
簡(jiǎn)介
什么是 bewCloud ?
bewCloud
是一個(gè)簡(jiǎn)化版的自托管云存儲(chǔ)解決方案,作為Nextcloud
和ownCloud
的替代品,使用TypeScript
和Deno
構(gòu)建,基于Fresh
框架。該平臺(tái)旨在為用戶提供簡(jiǎn)單易用的文件存儲(chǔ)和共享功能。
主要特點(diǎn)
- 自托管:用戶可以在自己的服務(wù)器上安裝和運(yùn)行
bewCloud
,確保數(shù)據(jù)隱私和安全。 - 簡(jiǎn)化的用戶界面:提供直觀的文件管理和共享界面,易于使用。
- Docker 支持:通過
Docker
和Docker Compose
進(jìn)行快速部署,簡(jiǎn)化設(shè)置過程。 - 靈活的文件共享:支持通過符號(hào)鏈接實(shí)現(xiàn)文件共享,靈活性高。
- 開源:遵循
AGPL-3.0
許可證,允許用戶自由使用和修改代碼。
應(yīng)用場(chǎng)景
- 個(gè)人云存儲(chǔ):用戶可以建立自己的云存儲(chǔ)服務(wù),管理和備份個(gè)人文件。
- 小型團(tuán)隊(duì)協(xié)作:適合小型企業(yè)或團(tuán)隊(duì)使用,便于文件共享和協(xié)作。
- 開發(fā)者使用:開發(fā)者可以在本地環(huán)境中使用
bewCloud
進(jìn)行測(cè)試和開發(fā)。
bewCloud
提供了一種輕量級(jí)的方式來實(shí)現(xiàn)云存儲(chǔ)功能,非常適合希望自托管解決方案的用戶和小型團(tuán)隊(duì)。
安裝
在群暉上以 Docker 方式安裝。
本文寫作時(shí),
latest
版本對(duì)應(yīng)為v1.5.6
;
采用 docker-compose
安裝,
env.txt
將下面的內(nèi)容保存為 env.txt
,
PORT=8000
BASE_URL="http://192.168.0.197:8562"POSTGRESQL_HOST="postgresql" # docker container name or external hostname/IP
POSTGRESQL_USER="postgres"
POSTGRESQL_PASSWORD="fake"
POSTGRESQL_DBNAME="bewcloud"
POSTGRESQL_PORT=5432
POSTGRESQL_CAFILE=""JWT_SECRET="fake"
PASSWORD_SALT="fake"BREVO_API_KEY="fake"CONFIG_ALLOW_SIGNUPS="false"
CONFIG_ENABLED_APPS="news,notes,photos,expenses" # dashboard and files cannot be disabled
CONFIG_FILES_ROOT_PATH="data-files"
CONFIG_ENABLE_EMAILS="false" # if true, email verification will be required for signups (using Brevo)
CONFIG_ENABLE_FOREVER_SIGNUP="true" # if true, all signups become active for 100 years
# CONFIG_ALLOWED_COOKIE_DOMAINS="example.com,example.net" # can be set to allow more than the BASE_URL's domain for session cookies
# CONFIG_SKIP_COOKIE_DOMAIN_SECURITY="true" # if true, the cookie domain will not be strictly set and checked against. This skipping slightly reduces security, but is usually necessary for reverse proxies like Cloudflare Tunnel.# CUSTOM_TITLE=""
# CUSTOM_DESCRIPTION=""
HELP_EMAIL="help@bewcloud.com" # if empty, "need help" sections will be disabled
變量名 (Variable Name) | 示例值 (Example Value) | 描述 (Description) |
---|---|---|
網(wǎng)絡(luò)與基礎(chǔ) URL (Network & Base URL) | ||
PORT | 8000 | 應(yīng)用程序(后端服務(wù))監(jiān)聽的容器端口號(hào)。 |
BASE_URL | "http://192.168.0.197:8562" | 應(yīng)用程序可公開訪問的基礎(chǔ) URL。用于生成絕對(duì)鏈接、API 端點(diǎn)、重定向等。請(qǐng)確保這是用戶和前端訪問后端的正確地址。 |
數(shù)據(jù)庫(kù) (PostgreSQL) | ||
POSTGRESQL_HOST | "postgresql" | PostgreSQL 數(shù)據(jù)庫(kù)服務(wù)器的主機(jī)名或 IP 地址。在 Docker 環(huán)境中,這通常是 PostgreSQL 服務(wù)(容器)的名稱。 |
POSTGRESQL_USER | "postgres" | 用于連接 PostgreSQL 數(shù)據(jù)庫(kù)的用戶名。 |
POSTGRESQL_PASSWORD | "fake" | 用于連接 PostgreSQL 數(shù)據(jù)庫(kù)的密碼。 極其重要:請(qǐng)使用強(qiáng)密碼替換 "fake" ,并確保安全。 |
POSTGRESQL_DBNAME | "bewcloud" | 要連接的 PostgreSQL 數(shù)據(jù)庫(kù)的名稱。 |
POSTGRESQL_PORT | 5432 | PostgreSQL 數(shù)據(jù)庫(kù)服務(wù)器監(jiān)聽的端口號(hào)。5432 是 PostgreSQL 的默認(rèn)端口。 |
POSTGRESQL_CAFILE | "" (空字符串) | (可選) 指向 CA 證書文件的路徑,用于驗(yàn)證數(shù)據(jù)庫(kù)服務(wù)器的 SSL 證書。如果為空或未設(shè)置,可能不進(jìn)行 SSL 驗(yàn)證或使用系統(tǒng)默認(rèn)設(shè)置。 |
安全與認(rèn)證 (Security & Auth) | ||
JWT_SECRET | "fake" | 用于簽發(fā)和驗(yàn)證 JSON Web Tokens (JWT) 的密鑰。JWT 通常用于用戶會(huì)話管理和 API 認(rèn)證。極其重要:必須是一個(gè)長(zhǎng)而隨機(jī)的、保密的字符串。請(qǐng)?zhí)鎿Q "fake" 。 |
PASSWORD_SALT | "fake" | 用于密碼哈希的鹽值 (Salt)。在哈希用戶密碼前添加此鹽值,以增加安全性,防止彩虹表攻擊。極其重要:必須是一個(gè)保密的字符串。請(qǐng)?zhí)鎿Q "fake" 。 |
郵件服務(wù) (Email Service) | ||
BREVO_API_KEY | "fake" | Brevo (原 Sendinblue) 服務(wù)的 API 密鑰。如果 CONFIG_ENABLE_EMAILS 設(shè)置為 true ,則需要此密鑰來發(fā)送郵件(如注冊(cè)驗(yàn)證郵件)。請(qǐng)保密。請(qǐng)?zhí)鎿Q "fake" 。 |
應(yīng)用配置 (Application Configuration) | ||
CONFIG_ALLOW_SIGNUPS | "false" | 是否允許新用戶注冊(cè)賬戶。"true" 允許注冊(cè),"false" 禁止注冊(cè)。 |
CONFIG_ENABLED_APPS | "news,notes,photos,expenses" | 以逗號(hào)分隔的、要啟用的可選應(yīng)用程序模塊列表。根據(jù)注釋,dashboard 和 files 模塊是核心功能,不能被禁用。這里啟用了新聞、筆記、照片和費(fèi)用模塊。 |
CONFIG_FILES_ROOT_PATH | "data-files" | 用戶上傳文件存儲(chǔ)的根目錄路徑。這通常是相對(duì)于應(yīng)用程序工作目錄或存儲(chǔ)卷的路徑。 |
CONFIG_ENABLE_EMAILS | "false" | 是否啟用郵件功能。如果設(shè)置為 "true" ,通常會(huì)啟用如注冊(cè)時(shí)的郵箱驗(yàn)證等功能,并且需要配置郵件服務(wù)(如此處的 BREVO_API_KEY )。 |
CONFIG_ENABLE_FOREVER_SIGNUP | "true" | 如果設(shè)置為 "true" ,新注冊(cè)的用戶賬戶將被設(shè)置為一個(gè)非常長(zhǎng)的有效期(示例中提到的是 100 年),實(shí)際上等同于永久有效。 |
CONFIG_ALLOWED_COOKIE_DOMAINS | (可選) 以逗號(hào)分隔的域名列表。除了 BASE_URL 的域名外,還允許在這些域名下設(shè)置和讀取會(huì)話 Cookie。用于多域名訪問同一個(gè)應(yīng)用實(shí)例的場(chǎng)景。 | |
CONFIG_SKIP_COOKIE_DOMAIN_SECURITY | (可選) 如果設(shè)置為 "true" ,則放寬對(duì) Cookie 域名的嚴(yán)格檢查。這可能在某些反向代理設(shè)置(如 Cloudflare Tunnel)下是必需的,但會(huì)略微降低安全性。 | |
自定義與幫助 (Customization & Help) | ||
CUSTOM_TITLE | (可選) 自定義應(yīng)用程序的標(biāo)題,會(huì)顯示在瀏覽器標(biāo)簽頁(yè)或 UI 界面中。如果未設(shè)置,將使用默認(rèn)標(biāo)題。 | |
CUSTOM_DESCRIPTION | (可選) 自定義應(yīng)用程序的描述信息,可能用于 HTML meta 標(biāo)簽等。 | |
HELP_EMAIL | "help@bewcloud.com" | 顯示在應(yīng)用程序“需要幫助”或支持相關(guān)區(qū)域的聯(lián)系郵箱地址。如果留空,這些幫助部分可能會(huì)被禁用或隱藏。 |
特別需要說明的是:
-
理論上只要修改
BASE_URL
即可,其中IP
為群暉主機(jī)的IP
,端口為容器對(duì)外暴露的本地端口; -
即使禁用了注冊(cè) (
CONFIG_ALLOW_SIGNUPS=“false”
),第一個(gè)注冊(cè)的用戶,也會(huì)正常工作,并成為管理員;
docker-compose.yml
將下面的內(nèi)容保存為 docker-compose.yml
services:website:image: ghcr.io/bewcloud/bewcloud:latestcontainer_name: bewcloud-webrestart: alwaysmem_limit: '256m'ports:- 8562:8000volumes:- ./files:/app/data-filesenv_file: env.txtdepends_on:- postgresqlpostgresql:image: postgres:15container_name: bewcloud-dbrestart: on-failureulimits:memlock:soft: -1hard: -1mem_limit: '256m'volumes:- ./data:/var/lib/postgresql/data# ports:# - 5432:5432environment:- POSTGRES_USER=${POSTGRESQL_USER}- POSTGRES_PASSWORD=${POSTGRESQL_PASSWORD}- POSTGRES_DB=${POSTGRESQL_DBNAME}
然后依次執(zhí)行下面的命令,千萬不要遺漏了
# 新建文件夾 bewcloud 和 子目錄
mkdir -p /volume1/docker/bewcloud/{data,files}# 進(jìn)入 bewcloud 目錄
cd /volume1/docker/bewcloud# 解決容器中上傳文件時(shí)的權(quán)限相關(guān)問題
chown -R 1993:1993 files# 將 docker-compose.yml 和 env.txt 放入當(dāng)前目錄# 一鍵啟動(dòng)
docker-compose --env-file env.txt up -d# 初始化/更新數(shù)據(jù)庫(kù)(僅在第一次和任何更新時(shí)執(zhí)行)
docker-compose --env-file env.txt run --rm website bash -c "cd /app && make migrate-db"
關(guān)鍵說明
這里有兩個(gè)關(guān)鍵步驟,需要單獨(dú)說明一下
目錄權(quán)限
如果沒有執(zhí)行下面這個(gè)命令
# 解決容器中上傳文件時(shí)的權(quán)限相關(guān)問題
chown -R 1993:1993 files
在打開 Files
時(shí)會(huì)報(bào)錯(cuò),因?yàn)?1993
是 Deno
的 Docker
鏡像的默認(rèn)用戶 ID
而正常應(yīng)該是這樣的
數(shù)據(jù)庫(kù)初始化
別忘了第一次運(yùn)行需要初始化數(shù)據(jù)庫(kù)
# 初始化/更新數(shù)據(jù)庫(kù)(僅在第一次和任何更新時(shí)執(zhí)行)
docker-compose --env-file env.txt run --rm website bash -c "cd /app && make migrate-db"
否則注冊(cè)用戶時(shí)會(huì)報(bào)錯(cuò)
PostgresError: relation "bewcloud_users" does not exist
而初始化之后就不會(huì)有問題了
運(yùn)行
在瀏覽器中輸入 http://群暉IP:8562
就能看到注冊(cè)界面
第一次,需要點(diǎn)
signup
先注冊(cè)賬號(hào)
登錄成功之后的主界面
News
支持 feeds
訂閱
還是以老蘇的博客為例,https://laosu.tech/atom.xml
添加成功后
點(diǎn) View articles
查看文章
Files
bewCloud
不止有網(wǎng)頁(yè)版,還支持 WebDAV
不過 WebDAV
用 RaiDrive
測(cè)試并沒有成功,從 issues#32
看,作者似乎并未實(shí)現(xiàn)完整的 WebDAV
協(xié)議,因此可能有些客戶端可以,有些則不行
客戶端
bewCloud
官方提供桌面和移動(dòng)客戶端
- 桌面同步客戶端:使用
Tauri
通過Rust
構(gòu)建,支持Windows
、macOS
、Linux
平臺(tái)
- 移動(dòng)版客戶端:使用
Flutter
通過Dart
構(gòu)建,支持iOS
和Android
其他
bewCloud
除了前面介紹的新聞(News
),和文件(Files
)外,還支持照片(Photos
)和 筆記(Notes
)
甚至還包括了預(yù)算和費(fèi)用 (Budgets & Expenses
)
只是現(xiàn)在的貨幣還不支持 RMB
參考文檔
bewcloud/bewcloud: A simpler alternative to Nextcloud and ownCloud, built with TypeScript and Deno using Fresh. 🦕 🍋
地址:https://github.com/bewcloud/bewcloud
bewcloud/bewcloud-desktop: Desktop Sync client for bewCloud built with Rust using Tauri. 😎 ??
地址:https://github.com/bewcloud/bewcloud-desktop
bewcloud/bewcloud-mobile: Mobile client for bewCloud built with Dart using Flutter. 🏎?💨
地址:https://github.com/bewcloud/bewcloud-mobile
bewCloud is a modern and simpler alternative to Nextcloud and ownCloud written in TypeScript
地址:https://bewcloud.com/