通过Docker搭建Halo博客!全方面教程!
今天教大家从0开始搭建Halo博客系统!
Halo 是一款基于 Java 和 Spring Boot 开发的开源博客系统,具有简洁、轻快、功能强大等特点。以下是基于 Docker 的 Halo 搭建教程。
一、环境准备
-
服务器:一台运行 Linux 操作系统的服务器,推荐使用 Ubuntu 或 CentOS。
-
域名:一个已备案并解析到服务器的域名(可选)。
-
端口:确保服务器的安全组中已开放 Halo 默认端口 8090。
二、安装 Docker
- 更新系统包:
sudo yum update -y
- 安装 Docker:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
- 启动 Docker 并设置开机自启:
sudo systemctl enable docker --now
- 配置 Docker 镜像加速:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、下载 Halo 配置文件
- 创建 Halo 配置文件目录:
mkdir ~/.halo && cd ~/.halo
- 下载配置文件:
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
- 编辑配置文件(可选,根据需要修改端口或数据库配置):
vim ~/.halo/application.yaml
四、拉取 Halo 镜像并启动容器
- 拉取 Halo 镜像:
docker pull halohub/halo:latest
- 创建并启动 Halo 容器:
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:latest
五、访问 Halo
完成上述步骤后,访问http://<服务器IP>:8090
,即可进入 Halo 的安装引导页面。
六、可选配置
1.设置开机自启
如果使用非 Docker 方式部署,可以参考以下步骤:
- 创建服务文件:
sudo vim /etc/systemd/system/halo.service
- 编辑服务文件:
[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /path/to/halo.jar --spring.config.additional-location=optional:file:/home/user/.halo/
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
- 启动服务:
sudo systemctl enable halo
sudo systemctl start halo
2.配置反向代理
如果需要使用域名访问 Halo,可以配置 Nginx 或 Caddy 反向代理。
使用 Nginx 配置反向代理
- 安装 Nginx:
sudo yum install -y nginx
- 编辑 Nginx 配置文件:
sudo vim /etc/nginx/conf.d/halo.conf
添加以下内容:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
- 重启 Nginx:
sudo systemctl restart nginx
七、总结
通过以上步骤,你已经成功搭建了一个基于 Halo 的个人博客系统。如果在搭建过程中遇到问题,可以参考 Halo 官方文档或社区支持。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果