【实用的开源项目】使用服务器部署Sharry:真的很好用的文件分享程序!

本文阅读 9 分钟
首页 实用的开源项目 正文

前言

【实用的开源项目】系列出到第五期了鸭。小俊因为上学以及其他事务的原因已经快三个月没有更新了,那今天为大家介绍一下 Sharry 这一款文件分享程序吧,这篇文章是详细的文字版,若希望查看教程视频,请向下滑动,查看视频,或者直接到 BiliBili 搜索 我是小俊呀 ,查找视频哦!

视频教程

1. 哔哩哔哩

[BiliVideo]

[/BiliVideo]

2. YouTube

[BiliVideo]

[/BiliVideo]

准备工作

  1. 【必需】一台服务器(推荐 腾讯云轻量应用服务器 HK 或境内,其他服务器(如 CloudConeRackNerd 、家里云或者各家企业的私有云亦可,我们在腾讯云轻量应用服务器重装系统的时候,选择 应用镜像 ,然后选择 Docker CE 19.03.9 ,然后我们就可以使用 Docker 部署搭建了我们需要的程序啦!本文就从安装完 Docker 后开始教程啦!当然啦,不使用腾讯云轻量应用服务器的朋友们,可以自己手动安装 Docker ,然后进入我们的部署哦!本文就从安装完 Docker 后开始教程啦!
  2. 【建议且必需】域名一枚,并解析到服务器上
  3. 【必需反向代理本教程选用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.png
Sharry - home.png

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

如下图所示
【实用的开源项目】服务器部署Sharry - 新建目录.png

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 #一般不用修改,可自定义

如下图所示
【实用的开源项目】使用云服务器部署Sharry - 新建docker-compose.yaml文件.png

注意: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

如下图所示
【实用的开源项目】使用云服务器部署Sharry - 启动容器.png

输入执行以下命令确认所有容器都是 runningup 状态

docker-compose ps

如下图所示
【实用的开源项目】使用云服务器部署Sharry - 检查运行状态.png

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` )

如下图所示
【实用的开源项目】使用云服务器部署Sharry - 配置反向代理.png

先不要着急着点 Save ,不过如果你点了也没关系,没点 Save 的朋友点击 SSL ,然后点击 Request a new SSL Certificate ,然后把 Force SSLHTTP/2 Support 打开,修改一下 Email Address for Let's Encrypt 的邮箱,然后 Save 即可;点击了 Save 的朋友,点击右边的三点,点击 Edit ,重复上述步骤即可!

至此,我们已经安装完成 Sharry 文件分享程序啦!大家记得去 DNS 提供商解析域名哦!
浏览器访问您刚刚设置的域名即可访问!
Ps:需要在腾讯云轻量应用服务器的后台防火墙开放相应端口!默认需要开放 80 tcp443 tcp81 tcp 哦。

简单使用教程

点击 Create a Share 就可以创建分享了,在这里可以设置描述/过期时间/最大浏览次数/密码保护等等
【实用的开源项目】使用云服务器部署Sharry - 简单使用教程.png

Sharry 在注册时需要邀请。你可以在 New Invites 创建 Invitation Key 并将其发送给朋友,以便他们可以注册。
每个邀请只能使用一次。你需要为要邀请的每个人创建一个密钥。
创建邀请需要提供密码即 sharry.conf 中的 invite-password
【实用的开源项目】使用云服务器部署Sharry - 简单使用教程 - 获取invite-key.png

即可获得一个 Invitation Key ,以便你的朋友进行注册!

至此,你已经可以开开心心地使用 Sharry 文件分享程序啦!可以当作给朋友分享文件的网站还真不错!

原创文章,作者:小俊,如若转载,请注明出处:https://www.smalljun.com/archives/3310.html
【活动】腾讯云「轻云之上,无尽想象」系列活动盛大来袭
« 上一篇 12-03
【工作室项目】云梦泽深林工作室自建的Gravatar全球代理分发恢复正常服务
下一篇 » 12-22

发表评论

发表评论

热门文章

标签TAG

热评文章