前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AX9000 Docker - Cloudreve 搭建并打洞

AX9000 Docker - Cloudreve 搭建并打洞

作者头像
FloatSheep
发布2022-12-13 18:17:36
1.2K0
发布2022-12-13 18:17:36
举报
文章被收录于专栏:yetonwooyetonwoo

接上次,我们在 AX9000 中安装了 Docker,我们可以用它搭建一个网盘,并且打洞映射到外网(Cloudflare Argo Tunnel)

打洞使用 Cloudflare Argo Tunnel / 和 Cloudflare 零信任使用同一个程序

Cloudreve 的配置

进入 快速开始 - Cloudreve

找到 Docker Compose 安装方式

为什么不使用传统安装方式? AX9000 虽然开启了 Docker,但是不提供 SSH 所以我们无法通过命令行的方式安装 Cloudreve

复制 Compose 文件

代码语言:javascript
复制
version: "3.8"
services:
  cloudreve:
    container_name: cloudreve
    image: cloudreve/cloudreve:latest
    restart: unless-stopped
    ports:
      - "5212:5212"
    volumes:
      - temp_data:/data
      - ./cloudreve/uploads:/cloudreve/uploads
      - ./cloudreve/conf.ini:/cloudreve/conf.ini
      - ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
      - ./cloudreve/avatar:/cloudreve/avatar
    depends_on:
      - aria2
  aria2:
    container_name: aria2
    image: p3terx/aria2-pro
    restart: unless-stopped
    environment:
      - RPC_SECRET=your_aria_rpc_token
      - RPC_PORT=6800
    volumes:
      - ./aria2/config:/config
      - temp_data:/data
volumes:
  temp_data:
    driver: local
    driver_opts:
      type: none
      device: $PWD/data
      o: bind

在桌面新建一个 yml 文件并用 VSCode 打开

image-20221210124732395
image-20221210124732395

看到 Cloudreve 的文件映射,我们要将 ./cloudreve 前面全部加上 /mnt/docker_disk/mi_docker/

代码语言:javascript
复制
version: "3.8"
services:
  cloudreve:
    container_name: cloudreve
    image: cloudreve/cloudreve:latest
    restart: unless-stopped
    ports:
      - "5212:5212"
    volumes:
      - temp_data:/data
      - /mnt/docker_disk/mi_docker/cloudreve/uploads:/cloudreve/uploads
      - /mnt/docker_disk/mi_docker/cloudreve/conf.ini:/cloudreve/conf.ini
      - /mnt/docker_disk/mi_docker/cloudreve/cloudreve.db:/cloudreve/cloudreve.db
      - /mnt/docker_disk/mi_docker/cloudreve/avatar:/cloudreve/avatar
    depends_on:
      - aria2
  aria2:
    container_name: aria2
    image: p3terx/aria2-pro
    restart: unless-stopped
    environment:
      - RPC_SECRET=your_aria_rpc_token
      - RPC_PORT=6800
    volumes:
      - /mnt/docker_disk/mi_docker/aria2/config:/config
      - temp_data:/data
volumes:
  temp_data:
    driver: local
    driver_opts:
      type: none
      device: $PWD/data
      o: bind

然后在 Windows 资源管理器 中进入路由器的 SMB

请对你的设备在米家中开启全盘访问

image-20221210125139723
image-20221210125139723

新建一个 cloudreve 文件夹

在其中新建 aria2 | avatar | uploads 三个文件夹

并创建 cloudreve.db | conf.ini 两个空文件

然后返回到 mi_docker 文件夹

新建 aria2 文件夹

并在其中新建 config 文件夹

这样就完成了文件映射~

部署 Cloudreve

进入 Portainer 中的 Stacks

image-20221210125505668
image-20221210125505668

新建一个 Stacks

image-20221210125533188
image-20221210125533188

将本地修改好的 yml 直接粘贴到输入框中

然后点击 Deploy the stack

image-20221210125711406
image-20221210125711406

稍等片刻,你就能在 Stacks 中看见你部署的容器了

image-20221210125804271
image-20221210125804271

容器后面的 IP Address 就是你的容器内网地址

image-20221210125834528
image-20221210125834528

aria2 没有映射端口,我们只要复制 cloudreve 的地址加上 5212 端口就行

接下来我们去 cloudreve 的日志中获取管理员密码

image-20221210130214629
image-20221210130214629
image-20221210130038220
image-20221210130038220

(这里是我配置好的网盘)

打洞映射

此处我们需要创建一个 Ubuntu 容器用来映射

进入 App Templates 界面

image-20221210130407269
image-20221210130407269

找到 Ubuntu 并部署

部署完成之后进入容器详情

找到 Connected networks

image-20221210130500276
image-20221210130500276

在这里加入 Cloudreve Stack 的网络

然后找到 Console

image-20221210130540644
image-20221210130540644

连接到容器

配置 Cloudflared

此处假设你拥有 Cloudflare 账号,并添加好了域名

首先换源

因为这个系统太迷你了

先升级 ca-certificates

代码语言:javascript
复制
$ apt-get update
$ apt-get install ca-certificates

然后安装必要工具

代码语言:javascript
复制
$ apt-get install vim
$ apt-get install systemctl

网络差用户

对于网络环境差的用户,请先用 sed 替换源,在进行操作

现在我们下载 Cloudflared

代码语言:javascript
复制
$ wget https://github.com/cloudflare/cloudflared/releases/download/2022.11.1/cloudflared-linux-arm64.deb cloudflared.deb

网络不好可以上传到你刚才搭建的 Cloudreve 中,然后 wget 下载下来

安装 Cloudflared

代码语言:javascript
复制
$ dpkg -i ./cloudflared.deb

然后我们需要设置隧道

代码语言:javascript
复制
$ cloudflared tunnel login

这时候终端里面会出现一串 URL,复制在浏览器里访问并授权就好了

创建一个隧道

代码语言:javascript
复制
$ cloudflared tunnel create <隧道名>

记录下隧道 ID

创建路由

代码语言:javascript
复制
$ cloudflared tunnel route dns <隧道名> <主机名>

然后我们需要创建配置文件

代码语言:javascript
复制
$ touch ~/.cloudflared/config.yml

内容大概如下

代码语言:javascript
复制
url: http://localhost:8080
tunnel: xxxxxxx-5b0e-xxxx-8034-xxxxxxx
credentials-file: ~/.cloudflared/xxxxxxx-5b0e-xxxx-8034-xxxxxxx.json

url 替换成你要映射的 cloudreve 地址

tunnelcredentials-file 中的 xxxxxxx-5b0e-xxxx-8034-xxxxxxx 替换成你的隧道 ID

作为服务运行

不知道为什么, screen 在容器上面是用不了的,所以我们只能用 systemctl 作为服务运行

两步走起

代码语言:javascript
复制
$ cloudflared service install
$ systemctl start cloudflared

Cloudflared 连接到了 HKG 节点之后,你的 Cloudreve 就被映射出去辣~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Cloudreve 的配置
  • 部署 Cloudreve
  • 打洞映射
    • 配置 Cloudflared
      • 网络差用户
      • 作为服务运行
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档