分享使用阿里云服务器搭建Halo个人站点

恰逢最近双十一,在阿里云官网首页上看到有个什么折扣活动,2核2G的服务器新购和续费只需99/1年,这不赶紧拿下!于是,美滋滋的花费了198大洋,买了两年的云服务器。

由于之前也用过,一般都是用来装个数据库,或者做个内网穿透啥的,这次想玩点不一样的,就搭建个个人站点试试吧。

一、环境初始化

在网站也看到些建站教程,目前使用的比较多的就是Halo了,功能全面,搭建起来就比较简单。

Halo提供了多种安装方式,如Docker、Docker Compose、Helm等等。

由于对Docker比较熟悉,这次就采用了Docker Compose的方式进行安装。

  1. Ubuntu安装Docker

使用的是官方安装脚本自动安装

arduino 复制代码
 curl -fsSL https://test.docker.com -o test-docker.sh
 sudo sh test-docker.sh

安装完成之后,使用 docker -v,可以看到版本号,就说明安装成功。默认的数据目录是在/var/lib/docker目录下,如果有迁移需要,可再进行配置。

  1. Ubuntu安装Docker Compose

本篇文章写成的时候,Docker Compose的最新版本是v2.23.0,本次我们就安装最新版本。

bash 复制代码
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

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

安装完成之后,使用docker-compose version,可以看到版本号,就说明安装成功了。

二、Halo建站

  1. 在系统任意位置创建一个文件夹,此文档以 ~/halo 为例。
bash 复制代码
mkdir ~/halo && cd ~/halo
  1. Halo提供的有yaml文件,我采用的是Halo + PostgreSQL的创建方式,yaml文件如下:
yaml 复制代码
version: "3"

services:
  halo:
    image: halohub/halo:2.10
    container_name: halo
    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          
    command:
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
      - --spring.r2dbc.username=halo
      # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=openpostgresql
      - --spring.sql.init.platform=postgresql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/
  halodb:
    image: postgres:15.4
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    volumes:
      - ./db:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    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:

注意,配置需要根据自己的实际情况进行修改,如数据库密码等。

  1. 启动Halo

    docker-compose up -d

启动成功之后,可以查看容器是否正常运行,如正常运行,则说明安装成功。

三、访问

在我们安装成功之后,想登上站点之前,还需要做一个步骤。由于是部署在阿里云服务器上,所以需要在安全组上开通相应的端口,要不然是访问不到的。

进入到阿里云的控制台,找到我们的服务器实例,在网络与安全下选择安全组 ,选择管理规则

手动在入方向上添加一个8090端口,这是Halo默认映射的端口,如果你映射的端口不一样,则此处开放的端口需要与映射的端口保持一致。

好了,做完这些步骤,此时我们就可以愉快的访问我们的站点啦,使用ip:port/console(如果有域名的话,建议配置域名访问)访问,即可进入Halo的管理页面,首次启动会进入初始化页面。

简单设置了之后,就可以拥有一个个人站点了~

四、参考链接

  1. Halo文档:docs.halo.run/
相关推荐
程序员老赵4 小时前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
爱勇宝4 小时前
淡泊名利之前,先承认我们都很焦虑
前端·后端·程序员
阿祖zu5 小时前
优雅写作:开源两个我的文章写作 Skill
程序员·openai·agent
ZzT7 小时前
怎么做才不会被 AI 替代?
人工智能·程序员
烬羽8 小时前
你真的理解 LLM 的"无状态"吗?从一段代码讲起
程序员
WangMingHua1118 小时前
LM Studio Docker 部署——本地大模型一键启动
docker
AskHarries10 小时前
把一个外部系统接成 MCP 工具
后端·程序员
threerocks11 小时前
AI编程的商业模式已经在互联网大厂跑通了
程序员·aigc·ai编程
用户5268356779011 小时前
云原生落地:如何配置 Alertmanager 插件,将 Prometheus 告警直接打通至硬件声光语音终端?
程序员
用户8524950718411 小时前
我跟 AI 说了名字它转头就忘,后来我手动给它加了个"记忆"
程序员