欢迎光临散文网 会员登陆 & 注册

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

2022-12-24 15:52 作者:我是小俊呀  | 我要投稿

前言

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

视频教程

准备工作

  1. 【必需】一台服务器(推荐 腾讯云轻量应用服务器 HK 或境内,其他服务器(如 CloudCone 、 RackNerd 、家里云或者各家企业的私有云亦可,我们在腾讯云轻量应用服务器重装系统的时候,选择 应用镜像 ,然后选择 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:

      - 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配置文件

执行以下命令,新建 docker-compose.yaml 文件

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

3. 启动容器

输入执行以下命令后台启动容器

docker-compose up -d

如下图所示

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

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

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 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 - 简单使用教程.png

Sharry 在注册时需要邀请。你可以在 New Invites 创建 Invitation Key 并将其发送给朋友,以便他们可以注册。
每个邀请只能使用一次。你需要为要邀请的每个人创建一个密钥。
创建邀请需要提供密码即 sharry.conf 中的 invite-password

【实用的开源项目】使用云服务器部署Sharry - 简单使用教程 - 获取invite-key.png

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

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


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

分享到微博请遵守国家法律