一、准备工作
1.1. 准备一台云服务器
我选择的是阿里云ECS,配置:2核2G,SSD40G,3M固定带宽(今年销冠)。
服务器的操作系统选用ubuntu 22.04。
1.2. 准备一台家用服务器
宝子们有淘汰下来的笔记本就可以拿来当家庭服务器来用,我用的是10年前的小黑,跑起linux同样丝滑不减当年。
二、安装docker容器化工具
2.1. docker容器安装
2.2. docker-compose工具安装
2.2.1. 通过docker-compose部署的优势
- 应用环境自定义灵活
需要依赖容器环境的应用,可以一次性配置,应用服务、数据库、web服务器等均可以通过参数自定义配置。
- 运维便捷
运维的应用服务只要通过yml文件拉去最新镜像就可以完成更新。
通过这次项目实操配置yml文件完成应用部署,宝子们一定会爱上它。
2.2.2. github拉取资源
sudo curl -L "https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
到这一步,我相信所有的宝子们已经被github喜感的下载速度给惊呆了,并且下载中途发现报错一定会让你们无比抓狂,直接FC爆粗有没有?现在大可不必了,解决方案送给你们!
免费的福利送大家,送我免费的赞也让我知道大家都顺利避坑了。
#拉取过程出现报错curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1) # HTTP/2 调整为 HTTP/1.1sudo git config --system http.version HTTP/1.1
2.2.3. 验证docker-compose拉取是否成功
docker-compose --version
2.2.4. 修改docker-compose执行权限
docker-compose拉取下来并修改操作权限。
sudo chmod +x /usr/local/bin/docker-compose
三、部署Nextcloud
3.1. 配置yml文件
#创建yml文件vim ./docker-compose.yml #配置容器环境参数 version: "3"services: nextcloud: container_name: app-nextcloud image: nextcloud:latest restart: unless-stopped ports: - xxx:80 environment: - MYSQL_HOST=mysql - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=xxx volumes: - /home/forrest/Data/docker_data/nextcloud/data:/var/www/html mysql: container_name: db-nextcloud image: mysql:latest environment: - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=xxx - MYSQL_ROOT_PASSWORD=nextcloud volumes: - /home/forrest/Data/docker_data/nextcloud/db:/var/lib/mysql
敲黑板,两个重要的避坑点,请当心!!!
- port端口配置
9100(本地主机端口号):80 (容器端口号,默认80)
本地主机端口号是后面配置frp穿透工具时还会配置使用的参数,请牢记!!!
- volumes卷的配置
/path/to/data(本地文件夹):/var/www(lib)/html(mysql)(容器内对应文件夹),本地文件夹就看宝子们自己的喜欢命名来,容器对应文件夹是nextcloud默认的。
3.2. 启动容器
#启动nextcloud容器,mysql容器docker-compose up -d
四、配置frp内网穿透模式
4.1. 内网穿透工具frp下载
有篇专门写frp工具的使用,可以参考这一篇:《自建家用服务器》
4.2. 云主机端下载frp工具并配置frps服务器参数
#通过vim对配置文件进行修改 $ vim ./frps.toml #绑定端口号bindport=9200
4.3. 本地主机下载frp工具并配置frpc客户端参数
# 通过vim进行配置文件修改 $ vim frpc.toml # frpc.toml配置文件内容serverAddress = "云服务器公网ip"serverPort = 9200 [[proxies]]name = "nextcloud"type = "tcp"localIP = "127.0.0.1"localPort = 9100remotePort = 9020
4.4. 启动frps以及frpc
4.4.1. 安全组配置
frps和frpc的配置文件中,serverPort:9200,remotePort:9020,这两个端口号需要在云主机上放通才可以正常通讯,路径:阿里云账号进入控制台->安全组
4.4.2. 启动内网穿透模式
#云主机启动frps进程nohup ./frps -c ./frps.toml >/dev/null 2>&1 & #本地启动frpc进程nohup ./frpc -c ./frpc.toml >/dev/null 2>&1 & #通过ps查看进程ps -ef | grep frps(frpc)
宝子们看到截图是不是被整迷糊了,nextcloud_nohup.out是什么鬼,其实,这是我的运行日志,不需要的可以直接丢进黑洞(/dev/null)。
五、 登录Nextcloud
5.1. 通过公网ip登录nextcloud网盘
通过阿里云公网ip:9020,宝子们可以看到nextcloud的登录界面,第一次登录会让你创建管理员并配置密码。
到这里,后面的操作就是大家再熟悉不过的了,我也就不再啰嗦了!
5.2. 测试网盘
从我的工作电脑上传了照片到网盘,上传的速度非常满意。接下来,我准备把某度盘的资料通通迁移过来,有需要我出一期迁移资料篇给大家,有需要的宝子们可以留言。