Docker部署ShareList分享OneDrive,Google Drive和WebDAV教程

前言

目前网上有很多支持OneDrive的网盘工具,本站也曾介绍过,而ShareList最大的不同是部署更加简单,而且无需获取网盘API授权,使用网盘分享的公开链接来列出目录并提供直连下载链接,同时支持挂载多个网盘.最吸引我的是他支持WebDAV.

用过群晖NAS的用户大多都使用过WebDAV协议来分享和远程查看文件,但是会公开自己群晖的域名或者IP,有一定安全隐患,使用ShareList则可以避免此问题.

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

配置流程

环境需求

  • Docker
  • Nginx

运行容器

作者在GitHub上提供了Docker构建命令,你可以自行下载源码进项构建,也可以直接用我已构建的镜像一键安装.

docker run -d -v /etc/sharelist:/app/cache -p 33001:33001 --name="sharelist" stilleshan/sharelist

输入http://服务器IP:33001
创建后台管理密码完成安装
1.jpg

配置域名

为ShareList配置一个域名
编辑Nginx配置文件,使80/443端口指向Docker内ShareList的33001端口.
参考如下:

server
    {
        listen 80;
        #listen [::]:80;
        server_name sharelist.ioiox.com ;
        index index.html index.htm index.php default.html default.htm default.php;
        #root  /home/wwwroot/sharelist.ioiox.com;

         return 301 https://sharelist.ioiox.com$request_uri;

        include enable-php-pathinfo.conf;

        location / {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:33001;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        #location ~ .*\.(js|css)?$
        #{
        #    expires      12h;
        #}

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log off;
    }

server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name sharelist.ioiox.com ;
        index index.html index.htm index.php default.html default.htm default.php;
        #root  /home/wwwroot/sharelist.ioiox.com;

        ssl on;
        ssl_certificate /usr/local/nginx/conf/ssl/ioiox.com.crt;
        ssl_certificate_key /usr/local/nginx/conf/ssl/ioiox.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

          include enable-php-pathinfo.conf;

        location / {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:33001;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        #location ~ .*\.(js|css)?$
        #{
        #    expires      12h;
        #}

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log off;
    }

使用配置的域名访问
2.jpg

配置网盘

先配置群晖NAS的WebDAV服务.具体相关教程,请参考群晖NAS基础教程-配置WebDAV服务.

登录网盘后台
删掉演示目录
新增共享目录
选择WebDAV
设置目录显示名称
填写WebDAV地址

WebDAV的地址格式为http/https协议,加上用户名,密码,群晖公网IP或者配置的域名,WebDAV端口.再次提醒不要忘记路由器要配置WebDAV端口转发

Save保存
3.jpg

再次访问首页即可看群晖NAS里的文件

分享的文件依据你设置的WebDAV用户的访问权限而定,建议你单独创建一个用户,并给与希望共享的目录只读权限.

4.jpg
同时挂载多个网盘
例如在OneDrive中共享一个文件夹,设置为仅读取权限,复制共享链接到此.即可在首页看到NAS和OneDrive两个共享目录了.
5.jpg
6.jpg


结语

更多相关参考链接:

CentOS安装Docker教程
群晖NAS基础教程-配置WebDAV服务

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

本文链接 https://www.ioiox.com/archives/43.html

最后修改:2019 年 05 月 14 日 09 : 03 PM

4 条评论

  1. 如丶果

    博主,是这个程序好用还是pyone好用,如果是这个好用,那添加Onedrive的时候后面的那个地址是填的是啥格式?

    1. Stille
      @如丶果

      填写onedrive里分享生成的完全链接

  2. 奶爸de笔记

    onedrive都撸坏了

    1. Stille
      @奶爸de笔记

      截止今天,整整42天,总算把所有电视剧传到OneDrive上了...希望账号不会被封.

发表评论