单机部署方式在大陆服务器安装 HOJ
本日志为重新搭建评测系统时记录过程所写。
由于本文是记录性日志,许多内容简略写过,如有疑惑之处,欢迎邮件联系。
服务器配置:2 Cores CPU & 4GB RAM & 60G SSD
System: Ubuntu LTS 18.04
由于是大陆服务器(腾讯轻量云服务器),因此下述安装过程包含一些技巧。
安装方式这里采用快速部署方式。
本地机器为 Windows 11
用密钥方式在本地电脑登入服务器
一、服务器绑定密钥
在控制台处,选择 SSH密钥 界面,创建密钥
这里我们创建了一个名为 hoj2024 的SSH密钥。
此处创建成功之后,浏览器会下载一个名为 hoj2024.pem
的私钥,待会我们将用到。
创建成功之后,我们回到服务器界面,选择 SSH密钥 选项,绑定密钥。
界面如下,按提示操作即可。
二、本地电脑配置密钥
这里我们创建一个文件夹,命名为
hoj-build
,作为我们接下来的工作目录,放置接下来所需的文件和执行相关所需的操作。该文件夹绝对位置:
E:\hoj-build\
将先前自动下载的私钥文件 hoj2024.pem
放置于该位置。
接下来,在终端输入如下操作:(显然是在工作目录下执行命令)
1 | $ icacls hoj2024.pem /grant <Users Name>:F |
将 <Users Name>
替换为当前我们电脑的用户名即可。
如何查找自己的用户名?打开文件夹,地址栏输入
C:\Users\
,如果是自己的电脑,除了Default
和公用
,剩下的就是你的用户名。
三、使用 ssh 和 scp 登录传输文件
接下来登录和传输文件只需要如下命令:
1 | ssh -i hoj2024.pem ubuntu@<Server IP> |
这里不再赘述,给出一篇相关使用文章,同时你也可以使用相关的一些图形界面软件如 Putty
和 Winscp
。
配置 root 密码
以 ubuntu
用户登入服务器后,执行下述指令:
1 | $ sudo passwd root # 按提示输入两次密码即可 |
部署 HOJ 前的环境配置
一、安装 docker
以 ubuntu
用户登入服务器后,执行下述指令:
更新软件列表
1
$ sudo apt-get update # 更新软件列表
安装相关依赖
1
2
3
4
5
6$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common添加 GPG 密钥,这里注意,由于国内网络环境,修改为阿里云镜像
1
$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加 阿里云镜像源并更新软件列表
1
2
3$ sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update安装 Docker-CE
1
2$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io修改 Docker Hub 源,加速镜像下载。
6.1 打开配置文件
1
$ vim /etc/docker/daemon.json
6.2 按
i
或insert
切换至编辑模式,添加如下内容1
2
3
4
5{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}随后按
esc
退出编辑模式,输入:wq
保存并退出。6.3 重启 docker
1
$ sudo systemctl restart docker
6.4 检查当前 Docker 的配置
1
$ sudo docker info
若返回下述部分,则成功。
验证是否成功
1
$ sudo docker run hello-world
二、安装 docker-compose
下载
1
$ sudo wget "https://pc.clougence.com/docker-compose-1.28.3" -O /usr/local/bin/docker-compose
赋予权限
1
$ sudo chmod +x /usr/local/bin/docker-compose
参考文章:
博客园-ubuntu 18使用国内源安装指定版本docker,安装docker-compose,配置阿里云docker镜像加速器
部署HOJ
这里采用快速部署中的单机部署方式。
以 ubuntu
用户登入服务器后,执行下述指令:
这里我将安装位置置于 /home/ubuntu
下。
拉取仓库
1
$ git clone https://gitee.com/himitzh0730/hoj-deploy.git && cd hoj-deploy
进入单体部署文件夹
1
$ cd standAlone
查看文件,使用命令
ls -a
,显然包含一些文件。我们待会将会用到,
docker-compose.yml
和.env
这两个文件。修改配置文件里面的默认配置
1
$ vim .env
修改三个初始密码。
- 缓存Redis的密码配置项:
REDIS_PASSWORD
- 数据库MySQL的密码配置项:
MYSQL_ROOT_PASSWORD
- 服务注册中心Nacos的密码配置项:
NACOS_PASSWORD
- 缓存Redis的密码配置项:
安装和启动服务
1
$ docker-compose up -d
查看服务状态
1
$ docker ps -a
查看网站是否搭建成功
打开浏览器,访问你的服务器IP,若显示即成功。
成功之后,记得立即进入后台修改超级管理员密码。
1
2账户:root
密码:hoj123456
配置 SSL证书和自动化签证
这里我们使用 acme.sh 。
以 ubuntu
用户登入服务器后,使用 su root
跳转到 root
用户下执行命令:
1 | # cd /home/ubuntu/ |
里面的 DP_Id
和 DP_Key
为:从 DNSPod
上申请得到的 DNSPod Token
。访问地址如下:API 密钥-DNSPod
将 abcd@abcd.com
修改为你自己的电子邮箱;将 abcd.com
和 www.abcd.com
修改为你自己的域名。
此处不再赘述。
自动化配置完毕后,在 HOJ 下的 docker-compose.yml
文件中的 hoj-frontend 配置如下:
修改完成后重启容器即可:
1 | $ sudo docker-compose up -d |
自定义前端
logo 和 自定义前端同上图配置。
位置位于下方处。
1 | /home/ubuntu/hoj-deploy/standAlone/logo |
配置完重启即可。