使用Netcloud创建个人网盘
Netcloud可支持自建私人网盘核心能力有文件存储、在线预览、生成公开分享链接、密码保护链接、过期链接、文件夹分享、多用户、同步客户端Windows/Mac/ 手机、离线下载、相册、Office 在线编辑。本文简要记录Netcloud部署流程。首先需要一台服务器用于搭建Netcloud这里我以一台8核16G内存500GB硬盘的Ubuntu 22.04虚拟机作为系统配置采用docker方式进行部署。后续具体步骤如下安装docker并更改镜像源具体安装步骤可参考Docker安装与镜像修改使用docker compose部署mkdir-p/opt/nextcloudcd/opt/nextcloudnanodocker-compose.ymlyaml文件内容如下services:db:image:mariadb:10.11restart:alwaysvolumes:-./db:/var/lib/mysqlenvironment:MYSQL_ROOT_PASSWORD:NCroot123456MYSQL_DATABASE:nextcloudMYSQL_USER:nextcloudMYSQL_PASSWORD:NCuser123456command:--transaction-isolationREAD-COMMITTED--binlog-formatROWredis:image:redis:alpinerestart:alwaysapp:image:nextcloud:apacherestart:alwaysports:-8080:80# 访问端口可改成80/其他volumes:-./html:/var/www/html-./data:/var/www/html/data# 文件存储目录你的网盘文件environment:MYSQL_HOST:dbMYSQL_DATABASE:nextcloudMYSQL_USER:nextcloudMYSQL_PASSWORD:NCuser123456REDIS_HOST:redisdepends_on:-db-redis运行并打开界面运行docker compose up -d, 完成后即可打开服务器IP:8080访问界面并使用打开界面后初次访问可以设置管理员账号密码设置完成即可进入网盘进行使用后续即可在网盘创建文件并进行共享配置ssl上述的方式只能访问http://服务器IP:8080如果想设置ssl证书可以通过以下方式在docker-compose.yml文件中添加如下内容nginx: image: nginx:alpine restart: always ports: - 80:80 - 443:443 volumes: - ./nginx/conf:/etc/nginx/conf.d - ./ssl:/etc/nginx/ssl depends_on: - app并将原docker-compose.yml中的app 端口映射注释掉#ports:#- 8080:80然后mkdir-p/opt/netcloud/nginx/confmkdir-p/opt/netcloud/sslcd/opt/netcloud/nginx/confnanonetcloud.conf输入以下内容server { listen 80; return 301 https://$host$request_uri; } server { listen 443 ssl; ssl_certificate /etc/nginx/ssl/client-server.crt; ssl_certificate_key /etc/nginx/ssl/client-server.key; location / { proxy_pass http://app:80; 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_set_header X-Forwarded-Proto $scheme; } }将申请好的证书放入/opt/netcloud/ssl分别为client-server.crtclient-server.key。重启容器dockercompose downdockercompose up-d重启后打开 https://服务器IP, 会出现提示“通过不被信任的域名访问“这是因为Nextcloud 有安全机制不在 trusted_domains 列表里的域名 / IP 会直接拦截访问需要将域名或IP将入信任列表。dockerexec-itnextcloud-app-1bashphp occ config:system:set trusted_domains0--value你的域名php occ config:system:set trusted_domains1--value你的服务器IP然后刷新页面即可访问。