A. 准备
京东云轻量云主机 2 核 2G 3M 1 年费用 58 元
域名三年费用 76 元
SSL 单域名证书 1 年 30 元(我是哈 per,其实可不用)
A.1. 服务器的选择
其他地区服务器:如果有朋友直接该类服务器进行搭建的话,那自然是方便的,像网络什么的都不用担心。如果是学生的话可以考虑申请 Github student package. 申请完后使用 Azure100 刀或者是 Ocean digital200 刀代金券可以使用,总的来说还是很划算的。但是 Github student package 并不好申请,我之前折腾了一个星期,被拒绝了三四次,才成功 (┬┬﹏┬┬)。
中国大陆地区服务器:我对比了好几个云服务厂商的,现在这个时期已经过去了之前的一个优惠时期了,看腾讯云和阿里云的云服务器其实都不便宜。(阿里云有一个99 元/年的2G2 核云服务器,可以续三年,这个优惠还可以)目前来说,就我搜到的国内的云服务优惠好像就京东云比较香了 本来我看京东云网站里有好几款,也很眼馋,第一想法是想买下面这类型的:
- 轻量云主机 2 核 4G 5M 1 年 165 元
- 轻量云主机 2 核 4G 5M 3 年 618 元
请原谅一个拥有仓鼠囤积症的人~,只不过最终由于囊中羞涩再加上第一次买云服务器心里没有底,所以就想着先入 58 元/年的 2G2 核轻量云服务器试一试。
A.2. 其他
Ubuntu20.04LTS 系统 (如果是京东云的, 你可以考虑用 CentOS 可能会更方便不容易出网络问题)
Xshell(用于远程控制云服务器, 我觉得这个会方便一些, 京东云本身提供 Web Terminal登录
和 VNC登录
, 但是因为是网页 Tab 上我总觉得用着不顺, 如果嫌麻烦, 可以不装~)
E. 搭建 Halo 博客过程
参考官方文档使用 Docker Compose 部署 | Halo 文档
- 在系统任意位置创建一个文件夹,此文档以
~/halo
为例。
|
|
- 在用 docker-compose 拉取之前需要先创建一个 docker-compose. yaml 文件
官网提供了三种实例
- 创建 Halo + PostgreSQL 的实例
- 创建 Halo + MySQL 的实例
- 仅创建 Halo 实例(使用默认的 H2 数据库)官方不推荐在生产环境使用默认的 H2 数据库
本文采用第一种 Halo + PostgreSQL
路径: ~/halo/docker-compose.yaml
|
|
输入
|
|
官方文档出有写出具体的参数解释
参数名 | 描述 |
---|---|
spring.r2dbc.url | 数据库连接地址,详细可查阅下方的 数据库配置 |
spring.r2dbc.username | 数据库用户名 |
spring.r2dbc.password | 数据库密码 |
spring.sql.init.platform | 数据库平台名称,支持 postgresql 、mysql 、h2 |
halo.external-url | 外部访问链接,如果需要在公网访问,需要配置为实际访问地址 |
数据库配置: | |
链接方式 | 链接地址格式 |
———– | ———————————————————— |
PostgreSQL | r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE} |
MySQL | r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE} |
MariaDB | r2dbc:pool:mariadb://{HOST}:{PORT}/{DATABASE} |
H2 Database | r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE |
3. 启动 Halo 服务 |
|
|
这里我再次出现了网络问题, 阿里云镜像换源后也没有用, 虽然官方文档在一开始就说, 这个源是从他们自建的镜像库走的,
可是我死活下载不下来, 这里感谢 1panel 的镜像源, 大家不要恶意使用, 自从 6 月各大镜像源被关以后, 想找个好用的镜像源真难/(ㄒoㄒ)/~~, 感谢 1panel
跟之前同样的操作
|
|
在 daemon.json
文件中换成以下内容
|
|
如果有朋友换完之后还是不行, 我能想到的只有利用阿里云的镜像仓库服务了, 可以自建一个镜像仓库去下载你上传好的 docker 镜像
到这里为止, 博客就大功告成了, 输入 http://{你的ip}:8090/console
就可以访问博客的后台了, 对了!
很重要的一点不能忘记, 在京东云对应服务器的页面把防火墙的 8090 端口打开, 否则访问不了.
http://{你的ip}:8090/
即为博客页面.