Sharry 的文件共享方式与奶牛快传类似,已注册的用户可以上传文件到 Sharry 并生成下载链接

除此之外 Sharry 还可以给已注册用户生成链接,让其他人上传文件给已注册用户(感觉可用于交作业)

下文将展示 Debian 10 下 Sharry 的搭建方式

环境

  • Debian 10

参考

步骤

官方提供了三种安装方式:deb 包、zip 压缩包和 docker

使用 deb 包和压缩包时需要安装依赖,使用 docker 则需要 docker-compose,三种方式都需要 Web 服务器做反代

安装依赖

Sharry 依赖于 Java 环境,并且需要 Web 服务器做反向代理(这里我使用了 Nginx),执行指令

apt install openjdk-11-jre nginx unzip

Nginx 反向代理

  1. 删除默认配置文件
    rm /etc/nginx/sites-enabled/default
  2. 更改 nginx 设置
    • 编辑 /etc/nginx/nginx.conf,在 http 块内添加
      http {
          # ...
          map $http_upgrade $connection_upgrade {
              default upgrade;
              '' close;
          }
          # ...
      }

      Sharry - 自托管文件共享服务

  3. 新建 Sharry 配置文件
    • 在 /etc/nginx/sites-available 下新建配置文件 sharry,写入以下内容(这里只使用 IP 地址和 http 协议访问)
      server {
              listen 0.0.0.0:80 ;
              listen [::]:80 ;
              server_name _;
              location /.well-known/acme-challenge {
                  root /var/data/nginx/ACME-PUBLIC;
                  auth_basic off;
              }
              location / {
              proxy_pass http://127.0.0.1:9090;
                  proxy_http_version 1.1;
                  proxy_set_header Upgrade $http_upgrade;
                  proxy_set_header Connection $connection_upgrade;
                  proxy_buffering off;
                  client_max_body_size 105M;
                  proxy_send_timeout   300s;
                  proxy_read_timeout   300s;
                  send_timeout         300s;
              }
      }
      
    • 如果使用域名 + ssl,则添加官方配置文件
      server {
              listen 0.0.0.0:80 ;
              listen [::]:80 ;
              server_name subdomain.otherdomain.tld ;
              location /.well-known/acme-challenge {
                  root /var/data/nginx/ACME-PUBLIC;
                  auth_basic off;
              }
              location / {
                  return 301 https://$host$request_uri;
              }
      }
      
      server {
              listen 0.0.0.0:443 ssl http2 ;
              listen [::]:443 ssl http2 ;
              server_name sharry.example.com ;
              location /.well-known/acme-challenge {
                  root /var/data/nginx/ACME-PUBLIC;
                  auth_basic off;
              }
              ssl_certificate /var/lib/acme/sharry.example.com/fullchain.pem;
              ssl_certificate_key /var/lib/acme/sharry.example.com/key.pem;
              ssl_trusted_certificate /var/lib/acme/sharry.example.com/full.pem;
              location / {
                  proxy_pass http://192.168.1.11:9090;
                  proxy_http_version 1.1;
                  proxy_set_header Upgrade $http_upgrade;
                  proxy_set_header Connection $connection_upgrade;
                  proxy_buffering off;
                  client_max_body_size 105M;
                  proxy_send_timeout   300s;
                  proxy_read_timeout   300s;
                  send_timeout         300s;
              }
      }
  4. 启动 nginx
    ln -s /etc/nginx/sites-available/sharry /etc/nginx/sites-enabled
    nginx -t
    nginx -s reload

下载并启动 Sharry

Continue reading “Sharry – 自托管文件共享服务”