【實用的開源項目】使用服務(wù)器部署Sharry:真的很好用的文件分享程序!

前言
【實用的開源項目】系列出到第五期了鴨。小俊因為上學(xué)以及其他事務(wù)的原因已經(jīng)快三個月沒有更新了,那今天為大家介紹一下?Sharry
?這一款文件分享程序吧,這篇文章是詳細(xì)的文字版,若希望查看教程視頻,請向下滑動,查看視頻,或者直接到?BiliBili
?搜索?我是小俊呀
?,查找視頻哦!
視頻教程
準(zhǔn)備工作
【必需】一臺服務(wù)器(推薦?騰訊云輕量應(yīng)用服務(wù)器?
HK
?或境內(nèi),其他服務(wù)器(如?CloudCone?、?RackNerd?、家里云或者各家企業(yè)的私有云亦可,我們在騰訊云輕量應(yīng)用服務(wù)器重裝系統(tǒng)的時候,選擇?應(yīng)用鏡像
?,然后選擇?Docker CE 19.03.9
?,然后我們就可以使用?Docker
?部署搭建了我們需要的程序啦!本文就從安裝完?Docker
?后開始教程啦!當(dāng)然啦,不使用騰訊云輕量應(yīng)用服務(wù)器的朋友們,可以自己手動安裝?Docker
?,然后進(jìn)入我們的部署哦!本文就從安裝完?Docker
?后開始教程啦!【建議且必需】域名一枚,并解析到服務(wù)器上
【必需反向代理本教程選用NPM】安裝好Nginx Proxy Manager(?相關(guān)教程?)
注意
本文軟件基于騰訊云輕量應(yīng)用服務(wù)器安裝,無建議配置,教程使用的騰訊云輕量應(yīng)用服務(wù)器系統(tǒng)為?CentOS 7.6 64位
?!理論上騰訊云輕量應(yīng)用服務(wù)器為?Docker CE 19.03.9
?的服務(wù)器操作應(yīng)與本文基本一致(包括過程與報錯),其他系統(tǒng)為?CentOS 7
?的服務(wù)器應(yīng)與本文大同小異!
騰訊云輕量應(yīng)用服務(wù)器快到兩周年了,活動力度很大喔!大家可以關(guān)注一下!
騰訊云輕量應(yīng)用服務(wù)器購買地址:?https://curl.qcloud.com/XqKjWCYA
騰訊云精選爆品 特惠搶購:?https://curl.qcloud.com/UEBvnJfH
騰訊云云產(chǎn)品特惠專區(qū):?https://curl.qcloud.com/TPJfrddE
界面演示


Sharry 簡介
Sharry allows to share files with others in a simple way. It is a self-hosted web application. The basic concept is: upload files and get a url back that can then be shared.
Sharry允許以簡單的方式與他人共享文件。它是一個自托管的web應(yīng)用程序?;靖拍钍牵荷蟼魑募@取一個url,然后可以共享。
官方網(wǎng)站
官方網(wǎng)站:?https://eikek.github.io/sharry/
官方Github:?https://github.com/eikek/sharry
部署 Sharry
1. 環(huán)境準(zhǔn)備
1. 安裝 Docker(使用騰訊云輕量應(yīng)用服務(wù)器可跳過這一部分)
安裝?Docker
?的詳細(xì)教程小俊之前也寫過哦,也配有詳細(xì)的視頻版本,需要學(xué)習(xí)的朋友可以點擊鏈接:【教程】CentOS系統(tǒng)Docker的詳細(xì)安裝教程https://www.smalljun.com/archives/3174.html
2. 安裝 Nginx Proxy Manager(必需反向代理本教程選用NPM)
安裝?Nginx Proxy Manager
?的詳細(xì)教程小俊之前也寫過哦,也配有詳細(xì)的視頻版本,需要學(xué)習(xí)的朋友可以點擊鏈接:【教程】使用騰訊云輕量應(yīng)用服務(wù)器搭建Nginx Proxy Manager,優(yōu)美簡單地解決反向代理!https://www.smalljun.com/archives/3113.html?,當(dāng)然想要使用反向代理的小伙伴要是熟悉?Nginx
?,也可以自己安裝?Nginx
?進(jìn)行反向代理哦!
3. 安裝 Docker-compose
安裝?Docker-compose
?的詳細(xì)教程可以參考小俊之前寫過的【教程】CentOS系統(tǒng)Docker的詳細(xì)安裝教程https://www.smalljun.com/archives/3174.html?,安裝?Docker-compose
?的詳細(xì)教程在該文章的最后哦
2. 部署 Sharry
1. 新建目錄
執(zhí)行以下命令,新建目錄
mkdir -p /opt/docker/sharry && cd /opt/docker/sharry
mkdir -p /opt/docker/docker_data/postgresql/data
如下圖所示

2. 新建docker-compose.yaml文件
執(zhí)行以下命令,新建?docker-compose.yaml
?文件
vi docker-compose.yaml
然后輸入以下配置內(nèi)容,然后?Esc + :wq
?退出并保存即可。
---
version: "3.7"
services:
? sharry:
? ? image: eikek0/sharry:latest
? ? container_name: sharry
? ? command: /opt/sharry.conf
? ? ports:
? ? ? - "9090:9090"
? ? volumes:
? ? ? - ./sharry.conf:/opt/sharry.conf
? ? depends_on:
? ? ? - db
? sharry-db:
? ? image: postgres:15.1
? ? container_name: sharry-db
? ? volumes:
? ? ? - /opt/docker/docker_data/postgresql/data:/var/lib/postgresql/data/
? ? environment:
? ? ? - POSTGRES_USER=smalljun #設(shè)置一個自定義的數(shù)據(jù)庫用戶名以替換smalljun
? ? ? - POSTGRES_PASSWORD=xjpassword #設(shè)置一個自定義的數(shù)據(jù)庫密碼以替換xjpassword
? ? ? - POSTGRES_DB=sharry #一般不用修改,可自定義
如下圖所示

注意:docker-compose.yaml
?文件中?9090
?為暴露端口,如被占用,請自行更改替換,需要在云服務(wù)器的控制臺防火墻開放相應(yīng)端口!
3. 新建Sharry配置文件
執(zhí)行以下命令,新建?docker-compose.yaml
?文件
vi sharry.conf
然后輸入以下配置內(nèi)容,然后?Esc + :wq
?退出并保存即可。
sharry.restserver {
? base-url = "https://sharry.ymzsl.com" # 修改成你的域名
? bind {
? ? address = "0.0.0.0"
? ? port = 9090
? }
? webapp {
? ? app-name = "smalljun"
? ? app-icon = ""
? ? app-logo = ""
? ? app-footer = "smalljun"
? ? app-footer-visible = true
? ? chunk-size = "100M"
? ? welcome-message = ""
? }
? backend {
? ? auth {
? ? ? fixed {
? ? ? ? enabled = true
? ? ? ? user = "smalljun" #設(shè)置一個自定義的管理員用戶名以替換smalljun
? ? ? ? password = "xjpassword" #設(shè)置一個自定義的管理員密碼以替換xjpassword
? ? ? }
? ? }
? ? jdbc {
? ? ? url = "jdbc:postgresql://sharry-db:5432/sharry" #一般不用修改,與docker-compose.yaml中的POSTGRES_DB環(huán)境變量要一致
? ? ? user = "smalljun" #數(shù)據(jù)庫用戶名,與docker-compose.yaml中的POSTGRES_USER環(huán)境變量要一致
? ? ? password = "xjpassword" #數(shù)據(jù)庫密碼,與docker-compose.yaml中的POSTGRES_PASSWORD環(huán)境變量要一致
? ? }
? ? signup {
? ? ? mode = "invite"
? ? ? invite-time = "14 days"
? ? ? invite-password = "smalljun" #設(shè)置一個自定義的邀請鏈接生成密碼以替換smalljun
? ? }
? ? share {
? ? ? chunk-size = "512K"
? ? ? max-size = "1024G"
? ? ? max-validity = 365 days
? ? }
? ? cleanup {
? ? ? enabled = true
? ? ? interval = 14 days
? ? ? invalid-age = 7 days
? ? }
? }
}
注意:上面的配置是比較簡單的配置,還有一些其他的配置項,你可以參考官方的文檔來更改!
Sharry的官方文檔:?https://eikek.github.io/sharry/doc/configure
3. 啟動容器
輸入執(zhí)行以下命令后臺啟動容器
docker-compose up -d
如下圖所示

輸入執(zhí)行以下命令確認(rèn)所有容器都是?running
?或?up
?狀態(tài)
docker-compose ps
如下圖所示

3. 配置反向代理
先把域名解析到服務(wù)器(如果有小白不會解析可以進(jìn)入?小俊的QQ群:199175766?詢問,群主就是小俊,一般周末在線,后面考慮寫一篇域名解析教程!進(jìn)入?Nginx Proxy Manager
?,點擊?Hosts
?,然后點擊?Add Proxy Host
,按下圖進(jìn)行配置,下圖中的?172.17.0.1
?可能有所不一,請執(zhí)行?ip addr
?自行查找?docker0
?網(wǎng)卡的內(nèi)網(wǎng)IP!
Domain Names:填寫你想用在該程序的域名,與 `sharry.conf` 中 `base-url` 的域名要一致
Scheme:默認(rèn)http #一般不用改Forward Hostname / IP:172.17.0.1 #一般為 `172.17.0.1` ,可能有所不一,請執(zhí)行 `ip addr` 自行查找 `docker0` 網(wǎng)卡的內(nèi)網(wǎng)IP!Forward Port:9090 #暴露端口(若跟著本文未修改 `yaml` 文件中的暴露端口。應(yīng)為 `9090` )
如下圖所示

先不要著急著點?Save
?,不過如果你點了也沒關(guān)系,沒點?Save
?的朋友點擊?SSL
?,然后點擊?Request a new SSL Certificate
?,然后把?Force SSL
?和?HTTP/2 Support
?打開,修改一下?Email Address for Let's Encrypt
?的郵箱,然后?Save
?即可;點擊了?Save
?的朋友,點擊右邊的三點,點擊?Edit
?,重復(fù)上述步驟即可!
至此,我們已經(jīng)安裝完成?Sharry
?文件分享程序啦!大家記得去?DNS
?提供商解析域名哦!
瀏覽器訪問您剛剛設(shè)置的域名即可訪問!
Ps:需要在騰訊云輕量應(yīng)用服務(wù)器的后臺防火墻開放相應(yīng)端口!默認(rèn)需要開放?80 tcp
?、?443 tcp
?與?81 tcp
?哦。
簡單使用教程
點擊?Create a Share
?就可以創(chuàng)建分享了,在這里可以設(shè)置描述/過期時間/最大瀏覽次數(shù)/密碼保護(hù)等等

Sharry
?在注冊時需要邀請。你可以在?New Invites
?創(chuàng)建?Invitation Key
?并將其發(fā)送給朋友,以便他們可以注冊。
每個邀請只能使用一次。你需要為要邀請的每個人創(chuàng)建一個密鑰。
創(chuàng)建邀請需要提供密碼即?sharry.conf
?中的?invite-password

即可獲得一個?Invitation Key
?,以便你的朋友進(jìn)行注冊!
至此,你已經(jīng)可以開開心心地使用?Sharry
?文件分享程序啦!可以當(dāng)作給朋友分享文件的網(wǎng)站還真不錯!