前言
【实用的开源项目】系列出到第五期了鸭。小俊因为上学以及其他事务的原因已经快三个月没有更新了,那今天为大家介绍一下 Sharry
这一款文件分享程序吧,这篇文章是详细的文字版,若希望查看教程视频,请向下滑动,查看视频,或者直接到 BiliBili
搜索 我是小俊呀
,查找视频哦!
视频教程
1. 哔哩哔哩
[BiliVideo]
[/BiliVideo]
2. YouTube
[BiliVideo]
[/BiliVideo]
准备工作
- 【必需】一台服务器(推荐 腾讯云轻量应用服务器
HK
或境内,其他服务器(如 CloudCone 、 RackNerd 、家里云或者各家企业的私有云亦可,我们在腾讯云轻量应用服务器重装系统的时候,选择应用镜像
,然后选择Docker CE 19.03.9
,然后我们就可以使用Docker
部署搭建了我们需要的程序啦!本文就从安装完Docker
后开始教程啦!当然啦,不使用腾讯云轻量应用服务器的朋友们,可以自己手动安装Docker
,然后进入我们的部署哦!本文就从安装完Docker
后开始教程啦! - 【建议且必需】域名一枚,并解析到服务器上
- 【必需反向代理本教程选用NPM】安装好Nginx Proxy Manager( 相关教程 )
注意
本文软件基于腾讯云轻量应用服务器安装,无建议配置,教程使用的腾讯云轻量应用服务器系统为 CentOS 7.6 64位
!理论上腾讯云轻量应用服务器为 Docker CE 19.03.9
的服务器操作应与本文基本一致(包括过程与报错),其他系统为 CentOS 7
的服务器应与本文大同小异!
腾讯云轻量应用服务器快到两周年了,活动力度很大喔!大家可以关注一下!
腾讯云轻量应用服务器购买地址: https://curl.qcloud.com/XqKjWCYA
腾讯云精选爆品 特惠抢购: https://curl.qcloud.com/UEBvnJfH
腾讯云云产品特惠专区: 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应用程序。基本概念是:上传文件并获取一个url,然后可以共享。
官方网站
官方网站: https://eikek.github.io/sharry/
官方Github: https://github.com/eikek/sharry
部署 Sharry
1. 环境准备
1. 安装 Docker(使用腾讯云轻量应用服务器可跳过这一部分)
安装 Docker
的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击链接:【教程】CentOS系统Docker的详细安装教程https://www.smalljun.com/archives/3174.html
2. 安装 Nginx Proxy Manager(必需反向代理本教程选用NPM)
安装 Nginx Proxy Manager
的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击链接:【教程】使用腾讯云轻量应用服务器搭建Nginx Proxy Manager,优美简单地解决反向代理!https://www.smalljun.com/archives/3113.html ,当然想要使用反向代理的小伙伴要是熟悉 Nginx
,也可以自己安装 Nginx
进行反向代理哦!
3. 安装 Docker-compose
安装 Docker-compose
的详细教程可以参考小俊之前写过的【教程】CentOS系统Docker的详细安装教程https://www.smalljun.com/archives/3174.html ,安装 Docker-compose
的详细教程在该文章的最后哦
2. 部署 Sharry
1. 新建目录
执行以下命令,新建目录
mkdir -p /opt/docker/sharry && cd /opt/docker/sharry
mkdir -p /opt/docker/docker_data/postgresql/data
如下图所示
2. 新建docker-compose.yaml文件
执行以下命令,新建 docker-compose.yaml
文件
vi docker-compose.yaml
然后输入以下配置内容,然后 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:
- sharry-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 #设置一个自定义的数据库用户名以替换smalljun
- POSTGRES_PASSWORD=xjpassword #设置一个自定义的数据库密码以替换xjpassword
- POSTGRES_DB=sharry #一般不用修改,可自定义
如下图所示
注意:docker-compose.yaml
文件中 9090
为暴露端口,如被占用,请自行更改替换,需要在云服务器的控制台防火墙开放相应端口!
3. 新建Sharry配置文件
执行以下命令,新建 sharry.conf
文件
vi sharry.conf
然后输入以下配置内容,然后 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" #设置一个自定义的管理员用户名以替换smalljun
password = "xjpassword" #设置一个自定义的管理员密码以替换xjpassword
}
}
jdbc {
url = "jdbc:postgresql://sharry-db:5432/sharry" #一般不用修改,与docker-compose.yaml中的POSTGRES_DB环境变量要一致
user = "smalljun" #数据库用户名,与docker-compose.yaml中的POSTGRES_USER环境变量要一致
password = "xjpassword" #数据库密码,与docker-compose.yaml中的POSTGRES_PASSWORD环境变量要一致
}
signup {
mode = "invite"
invite-time = "14 days"
invite-password = "smalljun" #设置一个自定义的邀请链接生成密码以替换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
4. 启动容器
输入执行以下命令后台启动容器
docker-compose up -d
如下图所示
输入执行以下命令确认所有容器都是 running
或 up
状态
docker-compose ps
如下图所示
3. 配置反向代理
先把域名解析到服务器(如果有小白不会解析可以进入 小俊的QQ群:199175766 询问,群主就是小俊,一般周末在线,后面考虑写一篇域名解析教程!进入 Nginx Proxy Manager
,点击 Hosts
,然后点击 Add Proxy Host
,按下图进行配置,下图中的 172.17.0.1
可能有所不一,请执行 ip addr
自行查找 docker0
网卡的内网IP!
Domain Names:填写你想用在该程序的域名,与 `sharry.conf` 中 `base-url` 的域名要一致
Scheme:默认http #一般不用改
Forward Hostname / IP:172.17.0.1 #一般为 `172.17.0.1` ,可能有所不一,请执行 `ip addr` 自行查找 `docker0` 网卡的内网IP!
Forward Port:9090 #暴露端口(若跟着本文未修改 `yaml` 文件中的暴露端口。应为 `9090` )
如下图所示
先不要着急着点 Save
,不过如果你点了也没关系,没点 Save
的朋友点击 SSL
,然后点击 Request a new SSL Certificate
,然后把 Force SSL
和 HTTP/2 Support
打开,修改一下 Email Address for Let's Encrypt
的邮箱,然后 Save
即可;点击了 Save
的朋友,点击右边的三点,点击 Edit
,重复上述步骤即可!
至此,我们已经安装完成 Sharry
文件分享程序啦!大家记得去 DNS
提供商解析域名哦!
浏览器访问您刚刚设置的域名即可访问!
Ps:需要在腾讯云轻量应用服务器的后台防火墙开放相应端口!默认需要开放 80 tcp
、 443 tcp
与 81 tcp
哦。
简单使用教程
点击 Create a Share
就可以创建分享了,在这里可以设置描述/过期时间/最大浏览次数/密码保护等等
Sharry
在注册时需要邀请。你可以在 New Invites
创建 Invitation Key
并将其发送给朋友,以便他们可以注册。
每个邀请只能使用一次。你需要为要邀请的每个人创建一个密钥。
创建邀请需要提供密码即 sharry.conf
中的 invite-password
即可获得一个 Invitation Key
,以便你的朋友进行注册!
至此,你已经可以开开心心地使用 Sharry
文件分享程序啦!可以当作给朋友分享文件的网站还真不错!