前言
相信你想建站的时候一定能在网上搜到很多的“免费搭建博客”、“零成本搭建博客”,但是这类教程通常都是奔着“免费”去的,实际体验并不好(单看域名就够),优化就更别说了。
而我不一样, 我的教程要成本 我的教程虽然要一定的成本,但是优化体验可能较好(至少相较于免费),属于性价比较高的一类了。
准备的东西
付费
域名(付费可选,强烈推荐。可以用免费域名,但是一定要一个域名,否则动态 IPv6 解析不了)
电脑( 这个应该不用说了吧 要 24 小时跑服务器,关机就相当于关服)
代理(可选,最好要,不然下载外国资源的时候没选镜像会慢到怀疑人生, 虽然选了镜像也好不到哪去 。以下教程默认你有新加坡和日本代理)
宽带(需要有公网 IP。现在服务商基本都给公网 IPv6,但 IPv4 可能要自己申请,或者有别的服务可以内网穿透过去)
免费
CF 解析(需要将域名的 DNS 解析商换成 CF 的)
Lucky(配合 CF 的 Token 进行 DDNS 动态域名)
FinalShell(SSH 连 Debian)
VMWare(跑虚拟机)
Debian13.iso 镜像(虚拟机选用 Debian13,轻量级)
30GB 左右的空间
2~4GB 的空余内存(要分配给虚拟机)
搭建虚拟机
打开 VMWare,选择新建虚拟机,新建一个虚拟机,镜像选择 Debian13 的 iso,硬盘存储分配 30GB,内存最低 2G,如果内存多建议 4G。
启动虚拟机,初始化。设置任何密码的时候都要记录下来,建议 root 和主账号用一个密码,这样不用区分。
选择地区以判断镜像站点的时候可以选择你代理有的地区,然后选当地的镜像源(具体选哪个比较快可以根据代理服务器具体位置和镜像具体位置、镜像限速决定)。下载速度很玄学,运气好的几分钟,运气差的可能十几个小时(这时就要考虑换一个镜像了)。
到选择要下载的系统工具页面时(我记不清具体名称了,是有几个复选框选择系统工具之类的),只选 SSH。
配置 SSH
在虚拟机中输入 ip addr 查看该虚拟机的内网 IPv4,记下来。
在 FinalShell 中新建
然后主机填刚才记住的 IPv4
保存
双击连接管理器中刚才创建的,会打开一个蓝色的命令行,第一次打开会有弹窗,选择记住。
然后就可以用 FinalShell 直接在 Debian 中执行命令了
安装宝塔面板
进入虚拟机后,输入 su 回车进入 root(需要输入 root 密码)
依次输入以下命令
apt update # 更新软件包列表
apt install wget # 下载wget
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh # 下载宝塔面板然后可以输入 bt 和 1 开启宝塔面板
控制台会输出内网链接和账号密码,账号密码建议找个地方存起来,以免忘记(登录的时候似乎不会触发浏览器自动记录密码的功能)
访问内网地址,登录。
安装 Docker 和 Halo
左侧列表选择 Docker,点击安装
不要使用宝塔自带的应用管理,不好用
点击“容器编排”,添加容器编排,然后在 compose 文件内容中输入
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.22
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
environment:
# JVM 参数
- JVM_OPTS=-Xmx256m -Xms256m
command:
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
- --spring.r2dbc.username=halo
- --spring.r2dbc.password=openpostgresql
- --spring.sql.init.platform=postgresql
- --halo.external-url= # 这里写你的域名,带协议头
- --server.forward-headers-strategy=native
- --server.tomcat.remote-ip-header=X-Forwarded-For
- --server.tomcat.internal-proxies=192\.168\.153\.1|127\.0\.0\.1|172\..*|10\..*
halodb:
image: postgres:15.4
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=openpostgresql
- POSTGRES_USER=halo
- POSTGRES_DB=halo
- PGUSER=halo
networks:
halo_network:并在这段配置的相应位置写上你的域名。
然后创建容器即可。
如果显示“创建失败,请检查 compose 文件格式是否正确”,那就去 FinalShell 中输入
apt update
apt install locales -y
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
/usr/sbin/locale-gen en_US.UTF-8然后重新试一次创建容器
未完待续
毕竟不怎么会有人看,拖更两天应该没事吧……
学业较繁忙,待更
极低成本搭建Halo博客
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
赞赏支持
如果觉得文章对你有帮助,可以请作者喝杯咖啡 ☕
评论交流
欢迎留下你的想法