道友(docker fellow)们,是时候展现真正的 bt 下载速度了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
imdjh
V2EX    分享创造

道友(docker fellow)们,是时候展现真正的 bt 下载速度了

  •  4
     
  •   imdjh 2015-10-09 10:28:40 +08:00 via Android 19204 次点击
    这是一个创建于 3657 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ## Keyword: docker, owncloud, bit torrent, remotedownload, owncloud-with-ocdownloader

    __TL;DR: __ 我做了个 docker 镜像( dockerfile 开源),基于 owncloud:stable, 拓展了离线下载 app 。用免费的共有 PaaS 资源,让我们 maximize 出真正的 BT 速度!
    镜像名(hub 中搜索): owncloud-with-ocdownloader
    第 1 条附言    2015-10-09 15:11:22 +08:00

    BT 下载大致就是参与的人越多越容易下载。

    但是天要刮风,人要睡觉, PC 不能 7x24 开着,怎么办?

    在这最好的云时代,是时候放下``胖''的东西, Keep it
    simple and containerized,在睡觉时关掉电源,拥抱无处不在的 PaaS 。

    对于这个项目就是用自己的 docker 容器代替 PC 下载,因为 docker 很轻,相对于笨重的 VPS 来说会有更多的服务商愿意做免费 PaaS (现在有,将来会有更多)。

    这个项目的营造的乌托邦:
    传统的 BT 下载的 peer 是 PC ,现在 BT 下载的 peer 主要是中央式服务器(! PT 党,不好意思),将来的 BT 下载 peer 是容器。让属于分布式的下载方案,回归分布式。

    这个项目提出的下载步骤是这样的:

    某度网盘 ->

         百度网盘 aria2 插件 -> 你的容器 -> 本地

         你的容器 -> 本地

    拥抱 docker ,拒绝吸血鬼(传统下载器):

    ocdownloader 默认在下载完后自动做种 1 周,这让 BT 下载生态更好。
    相比传统集中式吸血鬼服务器,用 docker 就算你真的不做种被判为吸血鬼, docker 更像是个轻量级的拳击手.你可以随时换 IP ,只要换一个 container 或是换一个 PaaS 服务商就是了(= =||)

    那就细细说下怎么整起:

    我是个 hardcore 道友,我在自己 VPS 上用 docker:

    $ docker pull imdjh/owncloud-with-ocdownloader $ docker run -p 0.0.0.0:80:80 -d imdjh/owncloud-with-ocdownloader $ exit # go localhost $ xdg-open http://www.some-where-pretty-rrrrandom-on.net 

    我是个 docker 热衷者, docker 让工作更轻松:

    让我们用 3 张图解释怎么使用免费 PaaS 整起自己的 BT 离线空间!这里用的是 daocloud 。如果你愿意的话,可以点击下图 1 ,用的是我的推荐链接。

    1. 注册, 登录

      register a account

    2. 在代码仓库中选择 imdjh/owncloud-with-ocdownloader 镜像
      select imdjh/owncloud-with-ocdownloader as image

    3. 随便添个名字,点击部署,狂点下一步

      contine for a long time

    4. 在部署容器的初始化过程中为何不关注下微信号呢?告诉你代码构建和 CI 的结果
      wechat binding

    我听说过 docker 啦,但是到底怎样很难说。。

    那就来看看这个演示站点吧! Powered by daocloud.io

    用户(privileged): goodaii

    密码: 321321a

    FYI: 要我证明 docker 如何的轻便快捷?如果任何人改动了演示站点的密码,重新跑一个容器简单到只剩 3 个单词,docker run !$

    第 2 条附言    2015-10-09 15:15:25 +08:00
    第 3 条附言    2015-10-09 17:15:40 +08:00

    请各位道友使用时留意当地服务商网络协议或是EULA,尊重公平使用原。=]

    第 4 条附言    2015-10-09 17:44:49 +08:00

    对于 ocdownloader 的附加信息:

    ocdownloader 是在 Creative Commons BY-SA 4.0 授权下发布的,
    1.5.1(最新)使用 aria2 作为后台,用以支持 HTTP(S)/FTP/BT 的下载需求,但是服务器尚不存在 aria2 服务器(aria2c)时,会用 curl 作为 fallback 。
    ocdownloader 项目代码库:https://github.com/DjazzLab/ocdownloader

    本镜像使用 ocdownloader-master 分支构建,配合安装上 PHP5.6 和编译对应依赖,并使用 apache2 作为 www 服务器(从 owncloud:stable 中偷来的),在启动 owncloud 前会由脚本启动 aria2c ,但没做守护进程(2015-10-09)。

    第 5 条附言    2015-10-10 11:55:57 +08:00

    docker 这种软件可以将网站应用部署在由 PaaS 服务商提供的容器内的。

    其中:
        容器这个东西是从一个系统镜像启动”(与虚拟机的启动不同,更类似*nix 下的文件系统挂载)起来的,
        而系统镜像可以由开发运维人员定制

    70 条回复    2016-12-15 11:09:05 +08:00
    imdjh
        1
    imdjh  
    OP
       2015-10-09 10:32:58 +08:00 via Android   1
    OP 手头有 demo ,但是目前没条件找到发出来。所以暂时各位请自行搜索,抱歉!
    TODO: EDIT THIS POST
    wph95
        2
    wph95  
       2015-10-09 14:41:23 +08:00   1
    然而并没有看懂你在说什么
    imdjh
        3
    imdjh  
    OP
       2015-10-09 15:12:39 +08:00   1
    @wph95 Hey, wph95. 之前环境受限没办法铺开写,现在好了,已附加内容。
    chinajik
        4
    chinajik  
       2015-10-09 15:23:16 +08:00   2
    看懂你要干嘛了, star 了, daocloud 我也使用过,神器。。。
    ScotGu
        5
    ScotGu  
       2015-10-09 15:25:00 +08:00   1
    件名 协议 信息 速度 状态
    ee4a154a2ced80d1998a6ce41aa13eb3?fid=146... HTTP
    448.00 KB / 5.86 GB (0.01%)
    7.72 KB/s 正在下载
    这感人的速度。。
    imdjh
        6
    imdjh  
    OP
       2015-10-09 15:28:00 +08:00
    @ScotGu 额额,往好的一方面看的话就是:至少不会像某网盘隔天``自动''取消(强制失败)没速度的下载。
    imdjh
        7
    imdjh  
    OP
       2015-10-09 15:28:43 +08:00
    @chinajik 谢谢,希望好用 =D
    cyr1l
        8
    cyr1l  
       2015-10-09 15:31:22 +08:00
    试了下 http 好慢, 一定是哪里不对。 百度盘资源。
    acrisliu
        9
    acrisliu  
       2015-10-09 15:35:14 +08:00   1
    cn_windows_server_2012_r2_x64_dvd_incl_v... HTTP
    8.59 MB / 4.30 GB (0.19%)
    295.58 KB/s
    支持一个
    acrisliu
        10
    acrisliu  
       2015-10-09 15:36:00 +08:00   1
    速度还在涨 上 1MB/S 了
    cyr1l
        11
    cyr1l  
       2015-10-09 15:36:42 +08:00
    @ScotGu 你看到的是我添加的资源。可能百度盘根据我的 IP 有“优化”?我新加坡 IP 。



    试了下 百度卫士的离线安装包挺快的。
    wph95
        12
    wph95  
       2015-10-09 15:38:12 +08:00   1
    Daocloud 免费账户是有限速的 !!!
    ScotGu
        13
    ScotGu  
       2015-10-09 15:42:32 +08:00
    这么玩 PT 党的福音啊。。 就是容易封号。
    WildCat
        14
    WildCat  
       2015-10-09 15:49:00 +08:00 via iPhone
    这是要把 Daocloud 玩坏的节奏吧
    daocloud
        15
    daocloud  
       2015-10-09 16:09:10 +08:00
    文档写的真漂亮~!
    sakeven
        16
    sakeven  
       2015-10-09 16:18:19 +08:00
    好顶赞
    jade88
        17
    jade88  
       2015-10-09 16:23:49 +08:00
    docker run !$ 命令的!$是啥意思
    jamiefang
        18
    jamiefang  
       2015-10-09 16:34:04 +08:00
    天哪!
    动图好炫酷的感觉。
    guozhi
        19
    guozhi  
       2015-10-09 16:54:34 +08:00
    WOW~ 很好用,但是怎么没有权限重命名下载的文件呢?
    jy02201949
        20
    jy02201949  
       2015-10-09 17:10:31 +08:00
    前两天那个动漫迷做的 modo.moe 差不多一个意思啊,只不过用 kodexplorer 可以直接在线看漫画视频感觉的
    imdjh
        21
    imdjh  
    OP
       2015-10-09 17:24:17 +08:00
    @jade88 是 bash 环境下的特殊引用,指的是上一条运行过的指令的最后一个参数
    -----
    $ echo "me" "go go"
    me go go
    $ echo !$
    echo "go go"
    go go
    --
    $ echo me go go
    me go go
    $ echo !$
    echo go
    go
    $
    ------
    imdjh
        22
    imdjh  
    OP
       2015-10-09 17:25:30 +08:00
    @jy02201949 哦!我去了解下, 谢谢!
    imdjh
        23
    imdjh  
    OP
       2015-10-09 17:27:08 +08:00
    @jamiefang 这个地方我踩了不少坑。过会儿写个教程,再 at 你。用的是 ffmpeg 外加 ImageMagick 中的 convert
    imdjh
        24
    imdjh  
    OP
       2015-10-09 17:28:30 +08:00   1
    @WildCat
    @daocloud 这个。。不好意思,我附加了信息 3 。请各位道友使用时留意当地服务商网络协议或是 EULA ,尊重公平使用原。=]
    run2
        25
    run2  
       2015-10-09 17:29:59 +08:00
    版权 2 个字-。-
    moxiaotiao
        26
    moxiaotiao  
       2015-10-09 17:30:04 +08:00
    不错不错,试用了下,还是蛮好用的
    imdjh
        27
    imdjh  
    OP
       2015-10-09 17:48:21 +08:00
    @ScotGu 我自认为了解过点 PT 的皮毛,各大下载站对于会员下载器种类的限制(特别是对于开源实现)和帐号 id 的导入都是比较困难的。 FYI :见附加信息 4
    humiaozuzu
        28
    humiaozuzu  
       2015-10-09 17:54:07 +08:00
    我家下载镜像的速度 =。=
    moxiaotiao
        29
    moxiaotiao  
       2015-10-09 17:57:25 +08:00
    下载的文件如何删除,老是提示没有权限
    wsy2220
        30
    wsy2220  
       2015-10-09 18:08:05 +08:00 via Android
    在 vps 上下载盗版内容会不会被干掉啊
    imdjh
        31
    imdjh  
    OP
       2015-10-09 18:49:23 +08:00
    @moxiaotiao 已确认是一个 bug , aria2 服务器下载的文件权限是 root 的,运行 owncloud 的是 www-data 用户组,着手修复中。
    PS :文档未提及,实操出问题 =P
    VmuTargh
        32
    VmuTargh  
       2015-10-09 18:50:21 +08:00 via Android
    pt 我都是毛子站下音乐,挂的是 openshift ,目前没有被停用……刚才贴吧看见一个 do 挂 bt 下美帝电影然后被发警告信的…… v 友们要注意咯
    imdjh
        33
    imdjh  
    OP
       2015-10-09 18:50:32 +08:00
    @wsy2220
    1 。看你有没有遵守服务商 EULA 之类的。 FYI :附加信息 3
    2 。没有第二。 FYI :在最坏情况下( owncloud 死了,起不来),只要有 CLI 就能
    `docker exec -ti 容器 id /bin/bash` /var/www/html/data 找数据
    imdjh
        34
    imdjh  
    OP
       2015-10-09 19:29:13 +08:00
    问题已被 hotfix , hub 上的镜像和演示网站均已更新,谢谢 @moxiaotiao
    imdjh
        35
    imdjh  
    OP
       2015-10-09 19:42:16 +08:00
    @imdjh @wsy2220
    我之前回复你的是错的!如果容器死了 start 不起来,需要先 commit 当前容器到一个“临时”镜像,然后从这个“临时”镜像启动 bash 。
    FYI : docker exec ,需要此容器正在运行

    拓展阅读: https://forums.docker.com/t/run-command-in-stopped-container/343/7
    crab
        36
    crab  
       2015-10-09 19:42:19 +08:00
    还是没看明白,这和百度网盘,迅雷离线啥区别啊。
    21grams
        37
    21grams  
       2015-10-09 19:56:28 +08:00
    然而并没有看懂你在说什么
    jade88
        38
    jade88  
       2015-10-09 20:51:38 +08:00
    @imdjh
    哦,明白了,谢谢你
    那 docker run !$实际上是执行的 docker run imdjh/owncloud-with-ocdownloader ,是这个意思吧
    imdjh
        39
    imdjh  
    OP
       2015-10-09 22:04:10 +08:00   1
    @crab 本质上都是离线 BT 下载,但是这个项目的“情怀”就是将 BT 下载的发起者,从“ PC ”换成“容器”。还附带个网盘功能。
    imdjh
        40
    imdjh  
    OP
       2015-10-09 22:04:43 +08:00
    @jade88 对的!这样输入快
    libo26
        42
    libo26  
       2015-10-09 23:10:37 +08:00
    不错哟 ,收藏
    d7101120120
        43
    d7101120120  
       2015-10-09 23:53:51 +08:00
    自己的一个闲置的 vps 没用,然后就用 transmission (也用过 qBittorrent )搭建了一个 seedbox ,专门用来给自己喜欢的一个字幕组的新种子做种。
    KenGe
        44
    KenGe  
       2015-10-10 00:00:45 +08:00
    @imdjh 这个 ocDownloader 是 own Cloud 自带的么?还是你自己弄的?
    imdjh
        45
    imdjh  
    OP
       2015-10-10 07:17:42 +08:00
    @KenGe ocdownloader 是 owncloud 的一个非官方 app (也就是我们熟悉的插件 /拓展)
    我这个镜像做的就是把 ocdownloader 的最新版集成到最新的 owncloud 稳定版中去,然后默认启用 ocdownloader 这个 app.
    imdjh
        46
    imdjh  
    OP
       2015-10-10 07:19:44 +08:00
    @d7101120120 BT 圈就需要这样``有种''的人,赞!
    21grams
        47
    21grams  
       2015-10-10 10:10:18 +08:00
    什么是 docker ? 我咋啥都看不懂。
    KenGe
        48
    KenGe  
       2015-10-10 11:28:55 +08:00 via Android
    @imdjh 我去移植看一看~
    imdjh
        49
    imdjh  
    OP
       2015-10-10 11:38:45 +08:00
    @KenGe 嗯!做成后和我的 dockerfile 做下比较( diff ),再发个 issue 的最好了。
    fengjianxinghun
        50
    fengjianxinghun  
       2015-10-10 11:40:19 +08:00
    赞!!!
    imdjh
        51
    imdjh  
    OP
       2015-10-10 11:58:03 +08:00
    @21grams 附加留言 5 简单的介绍了 docker 的概念,这个项目的思想在#39 楼。
    lj0014
        52
    lj0014  
       2015-10-10 14:31:34 +08:00
    docker 好火呀现在
    isCyan
        53
    isCyan  
       2015-10-11 12:30:55 +08:00
    为什么没有装 python 和 youtube-dl 导致无法下载 youtube 视频
    imdjh
        54
    imdjh  
    OP
       2015-10-11 13:19:12 +08:00
    @isCyan 对不起,项目实验的时候在本地,没想到用 u2b 这个功能。谢谢,我现在着手加入这个功能。
    isCyan
        55
    isCyan  
       2015-10-11 14:34:07 +08:00
    @imdjh 带有 youtube-dl 功能的镜像已经制作好。

    Docker Hub: bohan/owncloud-with-ocdownloader-and-yt-dl

    $ docker pull bohan/owncloud-with-ocdownloader-and-yt-dl
    $ docker run -p 80:80 -d bohan/owncloud-with-ocdownloader-and-yt-dl
    isCyan
        56
    isCyan  
       2015-10-11 14:36:43 +08:00
    在我的 DigitalOcean 服务器上下载 y2b 视频速度 50MB/s +!
    感谢你的镜像,还有 Docker (部署真心方便),还有 OCDownloader
    imdjh
        57
    imdjh  
    OP
       2015-10-11 14:59:13 +08:00
    @isCyan 谢谢你的火速贡献!我刚在 youtube-dl 上踩了不少坑,已更新 dockerfile , push 更新过的镜像。
    imdjh
        58
    imdjh  
    OP
       2015-10-11 15:05:22 +08:00
    @isCyan
    我说的坑: debian 软件库里的 youtube-dl 比较老,没有 ocdownloader 默认使用的 force-ipv4 选项。

    注意: youtube-dl 调用路径是 hardcoded 的,原作者对此问题的表态是“需要帮助”。如果有 PHP 开发者愿意帮忙解决的话,上游有你更精彩。
    而且 ocdownloader 现在

    但实际上是我不看 ocdownloader 部署文档的问题,他里面写的挺良心的。
    imdjh
        59
    imdjh  
    OP
       2015-10-11 15:56:23 +08:00
    @imdjh #58 楼的“而且 ocdownloader 现在 ”是错打的内容请忽视。
    imdjh
        60
    imdjh  
    OP
       2015-10-11 20:26:15 +08:00
    @isCyan hey ,我更新了项目代码,修复了 www-data 执行权限漏洞。注意改动。
    isCyan
        61
    isCyan  
       2015-10-17 19:33:21 +08:00
    如何在自己的 VPS 上放心地使用本镜像?

    Step 1 - 新建数据目录

    $ sudo mkdir /var/data
    $ sudo mkdir /var/data/mysql
    $ sudo mkdir /var/data/mysql/owncloud
    $ sudo mkdir /var/data/owncloud

    Step 2 - 拉取镜像

    $ docker pull imdjh/owncloud-with-ocdownloader
    $ docker pull mysql

    Step 3 - 配置并启动 MySQL 容器

    $ docker run --name mysql-owncloud \
    -v /var/data/mysql/owncloud:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=YOUR_MYSQL_ROOT_PASSWORD \
    -e MYSQL_DATABASE=owncloud \
    -e MYSQL_USER=owncloud \
    -e MYSQL_PASSWORD=YOUR_MYSQL_PASSWORD \
    -d mysql

    上面的命令通过 Docker Volume 将 MySQL 容器中的存储目录与刚才在宿主机中新建的 MySQL 数据目录连接。数据库名和数据库用户被设置为了 owncloud 。请把命令中的 YOUR_MYSQL_ROOT_PASSWORD 和 YOUR_MYSQL_PASSWORD 分别修改为你要设置的 root 密码和 owncloud 用户密码。

    Step 4 - 配置并启动 ownCloud 容器

    $ docker run --name=owncloud \
    --link=mysql-owncloud:mysql-owncloud \
    -p 5679:80 \
    -d imdjh/owncloud-with-ocdownloader \
    -v /var/data/owncloud:/var/www/html/data

    上面的命令通过 Docker Volume 将 ownCloud 容器中的存储目录与刚才在宿主机中新建的 ownCloud 数据目录连接。我们还通过 Docker Link 功能将刚才启动的 MySQL 容器(名为 mysql-owncloud )与 ownCloud 容器连接,别名也为 mysql-owncloud 。冒号前面的是 MySQL 容器名,后面的是在 ownCloud 容器中的别名,可以自己修改。我们发布容器的 80 端口为宿主机上的 5679 端口供我们访问。你可以将命令中的 5679 改为你想设置的发布端口,一般设置为 80 端口。

    这样,使用了独立 MySQL 容器和本地存储目录的 ownCloud 容器就部署完成并启动了。这意味着,程序将使用 MySQL 数据库而非 SQLite 数据库而提升性能,你的 MySQL 数据库数据和存储的文件将存在宿主机上,不会因容器重启而丢失。
    isCyan
        62
    isCyan  
       2015-10-17 19:41:00 +08:00
    请在程序安装向导中,选择 MySQL 数据库,数据库主机(默认写着 localhost 的位置)就是 MySQL 容器的别名,在本例中是 mysql-owncloud 。存储目录不需要修改。
    isCyan
        63
    isCyan  
       2015-10-17 20:27:30 +08:00   1
    完整指南 https://bohan.life/deploy-owncloud-with-docker/
    isCyan
        64
    isCyan  
       2015-10-17 20:56:51 +08:00
    @imdjh Downloads 目录:您没有权限上传或创建文件
    orcusfox
        65
    orcusfox  
       2015-10-18 13:01:09 +08:00
    历史数据永远都是加载中
    imdjh
        66
    imdjh  
    OP
       2015-10-21 14:55:41 +08:00
    @isCyan 谢谢你的回复和支持!
    @napsterwu 出现的问题,我明天再找找。可能是因为修复上一个漏洞时造成的。
    hero18688
        67
    hero18688  
       2015-11-29 16:55:29 +08:00
    想找一个免费大空间的 PaaS 挂 pt ,大硬盘的 vps 不便宜,再说 vps 装 aria2 加 webui 就行了,无需装 docker 。
    hero18688
        68
    hero18688  
       2015-11-29 18:38:34 +08:00
    daocloud 免费版有多大的存储空间呢 可否修改 aria2 的 conf
    kxabc
        69
    kxabc  
       2016-08-16 15:19:03 +08:00
    @isCyan 重启怎么不能用了
    c401651191
        70
    c401651191  
       2016-12-15 11:09:05 +08:00
    @jade88 上一条命令的最后一个参数
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6022 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 01:48 PVG 09:48 LAX 18:48 JFK 21:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86