分享使用阿里云服务器搭建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/
相关推荐
Christal_pyy30 分钟前
树莓派4基于Debian GNU/Linux 12 (Bookworm)添加多个静态ipv4网络
linux·网络·debian
csbDD2 小时前
2025年网络安全(黑客技术)三个月自学手册
linux·网络·python·安全·web安全
Natsuagin4 小时前
轻松美化双系统启动界面与同步时间设置(Windows + Ubuntu)
linux·windows·ubuntu·grub
我们的五年4 小时前
【Linux网络编程】应用层协议HTTP(请求方法,状态码,重定向,cookie,session)
linux·网络·http
_院长大人_4 小时前
Docker Mysql 数据迁移
mysql·adb·docker
我们的五年6 小时前
【Linux网络】TCP/IP地址的有机结合(有能力VS100%???),IP地址的介绍
linux·运维·网络·tcp/ip
davenian7 小时前
< OS 有关 > Ubuntu 24 SSH 服务器更换端口 in jp/us VPSs
linux·ubuntu·ssh
诚信爱国敬业友善7 小时前
GUI编程(window系统→Linux系统)
linux·python·gui
sekaii7 小时前
ReDistribution plan细节
linux·服务器·数据库
YH_DevJourney8 小时前
Linux-C/C++《C/8、系统信息与系统资源》
linux·c语言·c++