腾讯云上购买了一个新的轻量级服务器,于是乎需要重新搭建一下环境,特此记录
安装git
执行命令:yum install git
设置secret_token
原因:在Github的Webhook机制中设置secret_token来提高安全系数
- 将如下内容写到
~/.bash_profile
中:(注意修改SECRET_TOKEN为自己的token)1
echo "export SECRET_TOKEN=自己在Github设置的Token" >> ~/.bash_profile
- 然后执行命令:
source ~/.bash_profile
设置接收webhook的程序
我们需要有一个程序作为后台进程一直在监听Github发生过来的事件
直接编译代码为可执行程序后,直接放置到
~/workspace
目录下在
~/workspace
目录下创建conf目录并编写配置文件config.ini
,内容如下:1
2
3
4
5
6[server]
host='0.0.0.0'
port=8999
[script]
auto_update_script_path='./auto_update_script.sh'
- 在
~/workspace
下编写脚本auto_update_script.sh
,内容如下: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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72!/bin/bash
本次部署的类型
deploy_type=$1
功能:杀死现在跑的容器并移除对应镜像
function removeContainerAndImage() {
# 0. 获取当前运行的容器id
container_id=`docker ps -a | grep $1 | awk '{print $1}'`
# 1. 获取容器的镜像名
image_name=`docker images | grep $1 | awk '{print $3}'`
# 2. 如果容器不为空
if [[ ${container_id} != "" ]]; then
echo "$1 container_id is" ${container_id} >> log.log
# 2.1 停止当前运行的docker容器
docker kill ${container_id}
echo "succeed to stop container" >> log.log
# 2.2 移除停止的docker容器
docker rm ${container_id}
echo "succeed to remove container" >> log.log
fi
# 3. 如果镜像不为空
if [[ ${container_id} != "" ]]; then
# 3.1 移除构建出的docker镜像
docker rmi ${image_name}
echo "succeed to remove images: ${image_name}" >> log.log
fi
}
重新构建镜像并部署对应容器
function buildImageAndDeployToContainer() {
# 停止容器并移除镜像
removeContainerAndImage $1
# 删除之前部署的网站对应的目录
rm -rf ./website/$1
if [[ $1 = "blog" ]]; then
# 部署博客
echo "blog" >> log.log
cd ~/nginx-proxy-manager/data
rm -rf yirufeng.top
git clone https://github.com/sivanWu0222/sivanWu0222.github.io.git -b master yirufeng.top
elif [[ $1 = "basic" ]]; then
# 部署计算机基础知识的docsify
echo "basic" >> log.log
# 克隆仓库, 将会把项目所有内容克隆到当前目录的repo目录下(如果repo目录不存在会创建)
git clone https://github.com/sivanWu0222/BasicCompu.git ./website/$1/repo
# 构建docker镜像
docker build -f ./website/$1/repo/docs/Dockerfile -t docsify/$1 .
# 运行docker镜像,通过-p来修改默认的3000端口避免端口冲突
# -v表示将:前面的目录(宿主机的目录)映射到容器的/docs目录
docker run -dp 9002:9002 --name=docsify-$1 -v $(pwd)/website/$1/repo/docs:/docs docsify/$1
elif [[ $1 = "resume" ]]; then
# 部署简历对应的网站
echo "resume" >> log.log
elif [[ $1 = "algo" ]]; then
# 部署计算机基础知识的docsify
echo "algo" >> log.log
# 克隆仓库, 将会把项目所有内容克隆到当前目录的repo目录下(如果repo目录不存在会创建)
git clone https://github.com/sivanWu0222/AlgoBook.git ./website/$1/repo
# 构建docker镜像
docker build -f ./website/$1/repo/docs/Dockerfile -t docsify/$1 .
# 运行docker镜像,通过-p来修改默认的3000端口避免端口冲突
# -v表示将:前面的目录(宿主机的目录)映射到容器的/docs目录
docker run -dp 9001:9001 --name=docsify-$1 -v $(pwd)/website/$1/repo/docs:/docs docsify/$1
else
echo $1
fi
}
$1只能为blog、resume、basic、algo四种
buildImageAndDeployToContainer $1 - 编写如下命令启动后台进程:
1
2chmod +x ~/workspace/main
nohup ~/workspace/main > ~/workspace/main.log &
修改github对应仓库的webhook地址
安装docker-compose
- 执行命令即可:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
安装nginx-proxy-manager并进行相关设置
执行如下命令用于创建并初始化目录:
1
cd ~ && mkdir nginx-proxy-manager && cd nginx-proxy-manager
编写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
26
27version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
network_mode: "host"
restart: always
ports:
# Public HTTP Port:
- '80:80'
# Public HTTPS Port:
- '443:443'
# Admin Web Port:
- '81:81'
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
DISABLE_IPV6: 'true'
# These are the settings to access your db
# If you would rather use Sqlite uncomment this
# and remove all DB_MYSQL_* lines above
DB_SQLITE_FILE: "/data/database.sqlite"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
# - ./Users/brittanysalas/.config/production.json
- ./data:/data
- ./letsencrypt:/etc/letsencrypt执行命令进行部署:
docker-compose up -d
防火墙打开端口:80、81、443、8099、9000、9001、9002、5230
进入到页面:
ip:81
,- 填写如下用户名和密码:
- 用户名:
admin@example.com
- 密码:
changeme
- 用户名:
- 成功登入之后需要重新设置用户名、邮箱、密码:
- Full Name:
yirufeng
- Nick name:
yirufeng
- Email:
yirufeng@foxmail.com
- 设置密码:
$Pqe%gvG4yk5bz82WJZ6nxkS@R5eX@
- Full Name:
- 填写如下用户名和密码:
建立并部署memos:
- 在
~
目录进行操作,递归创建website/wiki并进入,编写docker-compose.yml,内容如下:1
2
3
4
5
6
7
8
9version: "3.0"
services:
memos:
image: neosmemo/memos:latest
container_name: memos
volumes:
- ~/.memos/:/var/opt/memos
ports:
- 5230:5230 - 执行
docker-compose up -d
进行部署, - 进入页面:
ip:5230
进行访问- 输入用户名
yirufeng
以及密码skhXBqRa5VvyShFKP8Gxy9zy4ShXQ7Fr
进行注册 - 在设置中可以修改语言以及其他的设置
- 输入用户名
建立博客站点
登录nginx proxy manager管理页面:
ip:81
建立一个新Proxy Hosts,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24Domain names: yirufeng.top
Scheme: http
Forward Hostname / IP: 0.0.0.0
Forward Port: 80
SSL选项卡:
请求一个新的SSL证书
勾选Force SSL
勾选HTTP/2 Support
填入自己的邮箱
勾选 I agree to.....
Advanced选项卡,编辑如下内容并填写
location / {
root /data/yirufeng.top;
}
然后点击save进行请求
等待一段时间就好
其他都是默认同时再建立一个新的ProxyHosts,内容如下:
1
2
3
4
5
6
7
8
9Domain names: www.yirufeng.top
Scheme: http
Forward Hostname / IP: 0.0.0.0
Forward Port: 80
勾选Cache Assets
SSL中选择yirufeng.top,且勾选Force SSL和HTTP/2 Support
其他都是默认
注意事项:
- 域名一定要解析到该服务器的IP地址
- 防火墙记得放行对应端口
建立wiki站点
- 登录nginx proxy manager管理页面:
ip:81
- 建立一个新Proxy Hosts,内容如下:
1
2
3
4
5
6
7Domain names: wiki.yirufeng.top
Scheme: http
Forward Hostname / IP: 0.0.0.0
Forward Port: 5230
其他都是默认
建立basic站点
- 登录nginx proxy manager管理页面:
ip:81
- 建立一个新Proxy Hosts,内容如下:
1
2
3
4
5
6
7Domain names: basic.yirufeng.top
Scheme: http
Forward Hostname / IP: 0.0.0.0
Forward Port: 9092
其他都是默认
建立algo站点
- 登录nginx proxy manager管理页面:
ip:81
- 建立一个新Proxy Hosts,内容如下:
1
2
3
4
5
6
7Domain names: algo.yirufeng.top
Scheme: http
Forward Hostname / IP: 0.0.0.0
Forward Port: 9091
其他都是默认
建立log站点
- 登录nginx proxy manager管理页面:
ip:81
- 建立一个新Proxy Hosts,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25Domain names: log.yirufeng.top
Scheme: http
Forward Hostname / IP: 0.0.0.0
Forward Port: 27199
勾选Websockets Support
Custom Locations选项卡添加:
路径是:/vv/
Scheme: http
Forward Hostname / IP: 0.0.0.0
Forward Port: 27199
SSL选项卡:
请求一个新的SSL证书
勾选HTTP/2 Support
填入自己的邮箱
勾选 I agree to.....
等待一段时间就好
其他都是默认
建立resume站点
总结
到这里我们就已经搭建完成了博客、简历、计算机基础知识、算法、以及wiki和log站点的搭建