使用树莓派搭建私有云盘

  1. 通过内网穿透实现外网访问。

    frp内网穿透方案

  2. 部署NextCloud-Docker

内网穿透

请参考文章:frp内网穿透方案。

NextCloud-Docker

选择docker部署的主要原因还是相对来说方便部署,一行代码即可完成傻瓜式部署。

服务部署

前提条件:

  1. 你已经安装好了dockerdocker-compose

    Docker部署及Portainer可视化面板搭建

    Docker Compose部署

  2. 创建nextcloud文件夹,然后在文件夹中创建docker-compose.yml(相当于Docker镜像部署脚本)

    docker-compose.yml文件内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    version: '2'

    services:
    db:
    image: ibex/debian-mysql-server-5.7
    restart: always
    volumes:
    - ./cloud/db:/var/lib/mysql
    environment:
    - MYSQL_ROOT_PASSWORD=ROOT密码 # 根据需要替换
    - MYSQL_PASSWORD=数据库密码 # 根据需要替换
    - MYSQL_DATABASE=nextcloud # 根据需要替换
    - MYSQL_USER=nextcloud # 根据需要替换

    app:
    image: nextcloud
    ports:
    - 8888:80 # 端口映射,将Docker的80端口,映射成主机的8888端口。根据需要可以自行修改。
    links:
    - db
    volumes:
    - ./cloud/config:/var/www/html/config
    - /home/pi/disk/nextCloud:/var/www/html/data # 因为树莓派本身存储太小,这里是映射到一个外置2T硬盘
    - ./cloud/apps:/var/www/html/apps
    restart: always

执行脚本:

在当前目录下(nextcloud文件夹)执行下面命令,Docker会根据我们的配置,自动下载镜像并启动程序。

1
docker-compose up -d

初始配置

如果一切正常,这时候,访问IP:8888 就会出现 NextCloud界面。
第一次启动,需要配置数据库账户才可以正常使用。
配置完毕,网盘就可以正常使用了。

扩展资料:

关于外置硬盘问题:

树莓派空间实在太小,不适合做存储。
这里我使用了一个2T 的移动硬盘作为存储设备。
关于挂载硬盘,并且开机自动挂载,可以参考Linux移动硬盘挂载

添加不受信任的域名

Nextcloud初始化完毕后,会生成 /var/www/nextcloud/config/config.php 配置文件,里面的 trusted_domains 配置项为信任域名,初始化完毕后只有一项,为主机的IP地址。可以修改该配置项,添加绑定的域名。

1
2
3
4
5
'trusted_domains' => 
array (
0 => '127.0.0.1',
1 => 'xxx.yyyyy.com', # 将这个自定义域名添加到配置中
),

使用SqLite数据库

不想使用MySQL,或者个人使用时,可以使用Sqlite数据库,配置更简单。
docker-compose.yml 文件内容修改如下:

1
2
3
4
5
6
7
8
9
10
11
version: '2'

app:
image: nextcloud
ports:
- 8888:80
volumes:
- ./cloud/config:/var/www/html/config
- /home/pi/disk/nextCloud:/var/www/html/data
- ./cloud/apps:/var/www/html/apps
restart: always

使用树莓派搭建私有云盘
https://jason-xy.github.io/2020/07/raspi-nextcloud/
作者
Jason Hsu
发布于
2020年7月26日
许可协议