飞牛NAS(fnOS)自带的文件管理功能已经非常强大,但如果你需要跨设备同步、在线文档编辑、日历联系人同步,或者想彻底摆脱某度网盘的限速,那么部署一个私有云盘是终极解决方案。今天,我们就用飞牛NAS的Docker功能,一步步搭建Nextcloud,把数据牢牢握在自己手里。
为什么选择Nextcloud
Nextcloud是市面上最成熟的开源私有云盘方案,它不仅仅是一个网盘,更是一个协作平台。它支持文件同步、共享链接、在线Office编辑、移动端App、桌面客户端,还能通过应用商店安装日历、通讯录、笔记等插件。最重要的是,它完全开源,数据自主可控。
在飞牛NAS上部署Nextcloud,推荐使用Docker方式,因为飞牛的应用中心虽然提供了一键安装,但Docker版更新更及时,且方便自定义配置。我们直接采用 docker compose 方式部署,结构清晰,便于管理。
部署前的准备
在开始之前,请确保你的飞牛NAS满足以下条件:
- 系统版本为最新版(至少0.8.x以上)。
- 已开启SSH功能(飞牛设置 -> 终端/SSH -> 开启)。
- 有足够的存储空间,建议至少分配20GB给Nextcloud数据目录。
- 准备好一个用于访问的端口号,例如8080。
第一步:创建项目目录
首先通过SSH连接到你的飞牛NAS。打开终端工具(如MobaXterm或Windows Terminal),输入:
ssh admin@你的飞牛IP地址
登录后,我们创建一个专门存放Nextcloud配置的目录:
sudo mkdir -p /vol1/docker/nextcloud
cd /vol1/docker/nextcloud
注意,飞牛NAS的存储卷通常挂载在 /vol1 下,如果你的存储卷名称不同,请相应调整路径。
第二步:编写docker-compose.yml
在 nextcloud 目录下创建 docker-compose.yml 文件:
sudo nano docker-compose.yml
将以下内容粘贴进去:
version: '3.8'
services:
nextcloud:
image: nextcloud:stable
container_name: nextcloud
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./data:/var/www/html
- ./apps:/var/www/html/custom_apps
- ./config:/var/www/html/config
- ./data_files:/var/www/html/data
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=yourpassword
- REDIS_HOST=redis
depends_on:
- mysql
- redis
networks:
- nextcloud_net
mysql:
image: mariadb:10.11
container_name: nextcloud_mysql
restart: unless-stopped
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=yourpassword
networks:
- nextcloud_net
redis:
image: redis:alpine
container_name: nextcloud_redis
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- nextcloud_net
networks:
nextcloud_net:
driver: bridge
这里我使用了MariaDB作为数据库,Redis作为缓存,这是生产环境推荐的组合,比默认的SQLite稳定得多。请务必修改 MYSQL_PASSWORD 和 MYSQL_ROOT_PASSWORD 为强密码。
第三步:启动容器
保存文件后(nano中按 Ctrl+X,然后按 Y,再按 Enter),执行启动命令:
sudo docker compose up -d
首次启动需要拉取镜像,根据网络情况可能需要几分钟。等待命令执行完毕后,查看容器运行状态:
sudo docker ps
你应该能看到 nextcloud、nextcloud_mysql、nextcloud_redis 三个容器都在运行。
第四步:完成Nextcloud网页安装
打开浏览器,访问 http://你的飞牛IP:8080。你会看到Nextcloud的初始化安装界面。
- 创建一个管理员账号(例如 admin,密码设置复杂一些)。
- 点击“存储与数据库”下拉菜单,选择“MySQL/MariaDB”。
- 填写数据库信息:
- 数据库用户:
nextcloud
- 数据库密码:
yourpassword(与compose文件中一致)
- 数据库名:
nextcloud
- 数据库主机:
mysql(注意,这是容器内部网络的主机名,不是IP)
- 点击“安装完成”。
等待安装进度条走完,你就可以看到Nextcloud的主界面了。此时,私有云盘已经跑起来了。
第五步:配置外部访问与优化
配置可信域名
如果你希望通过域名或局域网IP访问,需要在 config/config.php 中修改。编辑配置文件:
sudo nano /vol1/docker/nextcloud/config/config.php
找到 'trusted_domains' 数组,添加你的IP或域名:
'trusted_domains' =>
array (
0 => 'localhost',
1 => '192.168.1.100',
2 => 'cloud.yourdomain.com',
),
保存后重启容器:
sudo docker restart nextcloud
开启HTTPS(可选)
如果你有域名并申请了SSL证书,可以在飞牛NAS的“反向代理”功能中配置,将443端口转发到容器的80端口。飞牛自带的反向代理配置非常简单,这里就不再赘述。
性能优化
Nextcloud的定时任务默认是AJAX模式,建议改为Cron。进入Nextcloud后台 -> 设置 -> 基本设置,将“后台任务”改为“Cron”。然后在宿主机上添加一条cron任务:
crontab -e
添加以下行(每5分钟执行一次):
*/5 * * * * sudo docker exec -u www-data nextcloud php cron.php
客户端同步
Nextcloud支持全平台客户端。在电脑上安装Nextcloud客户端,输入服务器地址 http://你的飞牛IP:8080,输入你的账号密码,选择要同步的文件夹即可。手机端在应用商店搜索“Nextcloud”安装,同样配置。
数据备份须知
数据安全是私有云的核心。建议定期备份以下目录:
/vol1/docker/nextcloud/data_files(用户文件)
/vol1/docker/nextcloud/mysql(数据库)
/vol1/docker/nextcloud/config(配置文件)
你可以使用飞牛自带的“Hyper Backup”功能将这些目录备份到另一块硬盘或外部存储。
总结
至此,你已经成功在飞牛NAS上部署了属于自己的Nextcloud私有云盘。整个过程只需几步,但换来的是完全可控的数据存储、不限速的文件同步以及丰富的扩展生态。现在,你可以把手机相册自动备份、办公文档在线协作都交给它。值得一提的是,飞牛NAS的Docker功能非常稳定,这套Nextcloud方案可以长期稳定运行。如果在使用中遇到权限问题,多检查一下宿主机目录的属主和权限(可用 chown -R www-data:www-data 修正)。享受你的私有云吧!