一、准备工作
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.1
sudo
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
=
9100
remotePort
=
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. 测试网盘
从我的工作电脑上传了照片到网盘,上传的速度非常满意。接下来,我准备把某度盘的资料通通迁移过来,有需要我出一期迁移资料篇给大家,有需要的宝子们可以留言。