halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

这篇具有很好参考价值的文章主要介绍了halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🏠 服务器与网站部署知识体系目录

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx


部署一个炫酷的个人博客只需要按照本文的指令直接 cv 即可。

但请注意打开服务器防火墙的 803306 端口。

1.halo简介与地址

1.1 简介

Halo是一款现代化的开源博客/CMS系统,所有代码开源在GitHub上且处于积极维护状态。它是基于 Java Spring Boot 构建的,易于部署,支持REST API、模板系统、附件系统和评论系统等功能。

Halo 作为一款好用又强大的开源建站工具,配合上不同的模板与插件,可以很好地帮助你构建你心中的理想站点。它可以是你公司的官方网站,可以是你的个人博客,也可以是团队共享的知识库,甚至可以是一个论坛、一个商城。

1.2 开源仓库

🏠 github: halo-dev/halo: 强大易用的开源建站工具。 (github.com)

🏠 gitee:halo: 强大易用的开源建站工具。 (gitee.com)

1.3 中文文档

🏠 Halo Documents

1.4 社区

🏠 Halo 社区

1.5 官网

🏠 Halo 建站 - 强大易用的开源建站工具

1.6 主题仓库

🏠 主题仓库 | Halo 建站 - 强大易用的开源建站工具

2.安装docker与docker-compose

2.1 安装docker

🍀 基于centos的安装

  1. 安装yum-utils

    sudo yum install -y yum-utils
    
  2. 从国内服务器上下载docker

    sudo yum-config-manager \
        --add-repo \
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  3. 安装docker

    sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  4. 验证是否成功

    sudo docker --version
    

🍀 基于ubuntu

  1. 安装需要的包

    sudo apt-get update
    
  2. 安装依赖包

    sudo apt-get install \
       apt-transport-https \
       ca-certificates \
       curl \
       gnupg-agent \
       software-properties-common
    
  3. 添加 Docker 的官方 GPG 密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  4. 设置远程仓库

    sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable"
    
  5. 安装 Docker-CE

    sudo apt-get update
    
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
  6. 验证是否成功

    sudo docker --version
    

2.2 配置国内加速器

国内镜像中心常用的为阿里云与网易云,选择其中一个加速器进行配置即可。在本地 Docker 中指定要使用的国内加速器地址后,就可以直接从国内镜像中心下载镜像了。

2.1.1 配置阿里云加速器

🍀 找到相应页面

若要配置阿里云加速器,必须首先要有阿里云的账号。登录阿里云后,打开阿里云的容器镜像服务页面 https://cr.console.aliyun.com ,然后找到如下页面,可以查看到你的 registry-mirrors

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

🍀 创建 docker 目录
sudo mkdir -p /etc/docker
🍀 创建 daemon.json 文件

注意,该 json 数据中的 URL 地址是与用户登录账号绑定的,不同的用户所生成的地址是不同的。

sudo vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
🍀 重新加载服务配置文件
sudo systemctl daemon-reload
🍀 重启 docker 引擎
sudo systemctl restart docker

2.2.2 配置网易云加速器

配置网易云加速器,无需注册网易云用户。只需将前面的 daemon.json 文件中的那个URL 替换为如下 URL 即可。

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

当然,替换过后,仍需重新加载服务配置文件,重启 docker 引擎。

2.3 离线安装docker-compose

🍀 下载安装包

🏠 所有版本预览:Releases · docker/compose (github.com)

选择一个版本:

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

进入后往下拉,选择对应版本:

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

将文件上传到linux后,移动到与环境变量相关的指定位置:

sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

🍀 添加可执行权限

为 docker-compose 文件添加可执行权限。

sudo chmod +x /usr/local/bin/docker-compose

🍀 测试

通过 docker-compose version 测试安装是否成功。

sudo docker-compose version

3.nginx反向代理配置

在系统任意位置创建一个 halo 文件夹,并创建多级目录

sudo mkdir -p /halo/nginx/conf/

编写Nginx配置文件

sudo vim /halo/nginx/conf/nginx.conf
#user  root;
error_log  /var/log/nginx/error.log notice;
worker_processes  1;

pid        /var/run/nginx.pid;

events {
  worker_connections  1024;
}
http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  keepalive_timeout  65;
  # 设置上传文件的最大值
  client_max_body_size 256m;
  
  upstream blog {
    # 使用容器服务名
	server halo:8090;
  }
    
  server {
      listen       80;
      # 可进行域名绑定
      server_name  localhost;
      location / {
          # 设置反向代理的地址(实际是请求转发)
          proxy_pass http://blog;
          # 设置HTTP请求头
          proxy_set_header HOST $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   html;
      }
  }
}

4.Docker-compose部署halo,mysql,nginx

sudo vim /halo/compose.yaml

1️⃣ 您必须修改的自定义配置,找到下面的参数所在位置修改:

服务器或虚拟机ip:halo.external-url 中的 ip 设置,我写的配置中是 8.130.97.145,需要修改为你自己的服务器ip地址。

2️⃣ 您可选修改的自定义配置,找到下面的参数所在位置修改:

  1. 超级管理员账号密码
    • 账号 halo.security.initializer.superadminusername,我写的配置中是 admin
    • 密码 halo.security.initializer.superadminpassword ,我写的配置中是 123456
  2. mysql的root用户密码,以下两个参数的值都需要修改且必须保持一致
    • spring.r2dbc.password,我写的配置中是 123456
    • MYSQL_ROOT_PASSWORD,我写的配置中是 123456
services:
  halo:
    image: halohub/halo:2.4.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./halo:/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
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
      - --spring.r2dbc.username=root
      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=123456
      - --spring.sql.init.platform=mysql
      # 外部访问地址,我的服务器 ip 为8.130.97.145,此处需要修改为你自己的服务器或虚拟机 ip
      - --halo.external-url=http://8.130.97.145:80/
      # 初始化的超级管理员用户名
      - --halo.security.initializer.superadminusername=admin
      # 初始化的超级管理员密码
      - --halo.security.initializer.superadminpassword=123456

  halodb:
    image: mysql:8.0.31
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    command: 
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup
    ports:
      - "3306:3306"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
      interval: 3s
      retries: 5
      start_period: 30s
    environment:
      # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=halo

  halonginx: # 服务名称,用户自定义
    image: nginx:1.23.4  # 镜像版本
    container_name: halonginx
    # 链接到其它容器,能在 nginx.conf 反向代理配置时使用
    links:
      - halo
    networks:
      halo_network:
    ports:
      - 80:80  # 暴露端口
    volumes: # 挂载
      - /halo/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
    privileged: true # 这个必须要,解决nginx的文件调用的权限问题
    
networks:
  halo_network:

5.容器编排

# 1.进入 halo 目录
cd /halo

# 2.容器编排
sudo docker-compose up -d

查看状态:sudo docker ps

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

6.访问测试

🏠 访问:http://【服务器或虚拟机ip】

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

点击登录,如果遇到红色报错不用管。

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

7.基础操作

这里只列举部分操作,更多使用可以自己去实践操作或者参考 用户指南 | Halo Documents

7.1 插件

这里演示图床插件:

🏠 插件包下载地址:halo-sigs/plugin-s3: 为 Halo 提供 S3 对象存储协议的存储策略 (github.com)

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

创建新的存储策略,但这里会导致页面卡死,原因是halo2.4版本不适配该插件,这个问题 plugin-s3 插件的制作者们已经在修复中了(当前为 2023/04/03)

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

7.2 站点基本设置

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

7.3 主题设置

🍀 优质主题下载地址

注意直接下载 .zip 文件即可,无需对其解压。

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

  • sakura:LIlGG/halo-theme-sakura: Halo 版本的樱花🌸主题 (github.com)

  • xue:xzhuz/halo-theme-xue: 追求个性与至简 (github.com)

    注意,这个主题的 master 主分支暂不可用(不知为什么),但可以使用 next 子分支。

    halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

  • dream:nineya/halo-theme-dream2.0: 适配halo2.x的dream主题 (github.com)

  • butterfly:dhjddcn/halo-theme-butterfly: 一个Halo博客主题,Butterfly 🦋 (github.com)

    注意要选择 next 分支。

  • joe:qinhua/halo-theme-joe2.0: 🌈 一款 Halo 博客主题 Joe2.0 (github.com)

🍀 设置主题

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

主页效果:

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx

至于更多设置直接去主题管理下调试即可。

7.4 允许访客注册

halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx文章来源地址https://www.toymoban.com/news/detail-481674.html

到了这里,关于halo搭建炫酷个人博客快速部署:docker+docker-compose+nginx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于halo,docker,mysql,nginx的博客搭建️

    可以来我的博客oujin.work逛逛哦,记得点赞😄   有诸多主题供我们选择,这点很像wordpress,但是比wordpress更强,响应速度更快,接下来我们看看后台, (1)安装xshell和xftp 用来后期连接服务器(这里我就不演示了),认准这俩就行了 (2)准备云服务器 对于学生来说可以选择

    2024年01月22日
    浏览(37)
  • 【Linux | Docker基础篇】CentOS 7 安装 Docker并部署halo博客CMS详细图文教程

    目录 一、docker等名词简介 Docker 的核心概念 Docker 的优势 使用场景 二、docker安装步骤 1).卸载旧版本 2).安装依赖包 3).安装软件包 4).设置 stable 镜像仓库 5).更新 yum 软件包索引 6).安装 Docker 引擎 7).启动 Docker 8).测试是否安装成功 9).卸载docker 三、配置镜像加速 四、

    2024年02月21日
    浏览(43)
  • CentOS使用Docker部署Halo并结合内网穿透实现公网访问本地博客

    本文主要介绍如何在CentOS 7系统使用Docker部署Halo个人博客,并结合cpolar内网穿透工具实现公网远程访问本地搭建的网站。 Halo是一款基于Java的开源建站工具,具有简单易用、灵活性高、插件丰富等优点。可以做博客的软件平台有很多,像大家熟知的 WordPress 、Hexo、Typecho,对于

    2024年04月17日
    浏览(58)
  • 如何在CentOS下使用Docker部署Halo博客网站并结合内网穿透远程访问

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 本篇文章介绍如何在CentOS下使用Docker部署开源建站工具Halo,并结合cpolar内网穿透工具实现个人博客的公网访问。 Halo是一款基于Java的开源建站工具,具有简单易用、

    2024年01月18日
    浏览(47)
  • 基于vuepress快速实现个人博客-github免费部署

    本人代码仓库:https://github.com/Lihua-cpu/BlockPage 个人博客地址:https://lihua-cpu.github.io/BlockPage/ pc展示效果 app展示效果 快速开始同 VuePress 官网: npx npm yarn 官方部署 部署gitee、github是可以的,但是gitee部署需要实名认证,github则不需要. 官网:https://vuepress.vuejs.org/zh/guide/deploy.html#github-p

    2024年02月04日
    浏览(35)
  • 快速入门 NodeJS 之『搭建Web服务器』(搭建个人博客相关)

    1.创建一个空文件夹,在vscode中打开 2.开启package文件,因为需要用到npm包           npm init -y  3.创建bin文件夹,也就是程序运行最开始访问的文件夹  4.www.js创建服务器        将回调函数单独抽离出来,放在根目录文件app.js  5.启动服务器        5.1启动前,将package.json中

    2024年02月05日
    浏览(37)
  • Kubernetes(K8S)快速搭建typecho个人博客

    Kubernetes(K8S)快速搭建typecho个人博客 K8S集群环境,搭建教程参考腾讯云Lighthouse组建跨地域Kubernetes集群 K8S集群面板,搭建教程参考Kubernetes集群管理面板的安装及使用 - 青阳のblog-一个计算机爱好者的个人博客 (hipyt.cn) 如果没有集群或者服务器不够可以通过传送门新购。 腾讯

    2024年02月04日
    浏览(49)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(45)
  • hexo+GitHub搭建个人博客前期安装部署

    安装Git ==================================================================== 什么是Git Git是目前世界上最先进的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git也是你博客平台

    2024年04月22日
    浏览(60)
  • 10分钟 使用VitePress和GitHub Actions快速搭建发布个人博客

    VitePress官网Getting Started | VitePress VitePress 是一个静态站点生成器 (SSG),旨在构建快速、以内容为中心的网站。 Node.js (nodejs.org)Node版本18或更高版本 **使用 node -v **查看node版本 创建文件夹并进入到项目的目录 初始化项目 这里会带有设置向导 安装项目所需的 vitepress 依赖 在

    2024年02月03日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包