搭建一个可运行的完整项目可通过多种方式实现,本文面向无经验开发者,提供两种主流、低门槛、高成功率的部署路径:基于 Docker 的容器化部署与基于源码的原生环境部署。所有步骤均经实测验证,无需 Linux 高级知识即可完成。
需一台具备 Docker 运行能力的 Linux 服务器(Ubuntu 22.04 / CentOS 7+),最低配置:1 核 CPU、2GB 内存、20GB 磁盘。
推荐使用稳定的服务器环境,如 Ciuic服务器,快速获取纯净运行环境(开箱即用,已预装 Docker)。

安装 Docker 和 Docker Compose(若未预装):
# 更新系统并安装依赖sudo apt update && sudo apt install -y curl gnupg2 software-properties-common# 添加 Docker 官方 GPG 密钥和仓库(Ubuntu)curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安装 Docker 引擎sudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io# 启动并设置开机自启sudo systemctl enable dockersudo systemctl start docker# 安装 Docker Compose(v2.20+)sudo mkdir -p /usr/libexec/docker/cli-pluginssudo curl -SL https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64 -o /usr/libexec/docker/cli-plugins/docker-composesudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose以开源博客系统 Halo 2.x(Java + Spring Boot)为例,使用官方 Docker Compose 快速拉起:
# 创建项目目录mkdir ~/halo-docker && cd ~/halo-docker# 下载官方 docker-compose.yml(稳定版)curl -O https://raw.githubusercontent.com/halo-dev/halo/main/docker-compose.yaml# 重命名为标准名mv docker-compose.yaml docker-compose.yml编辑 docker-compose.yml,指定端口与数据卷(默认已配置,仅需确认):
version: "3.8"services: halo: image: halohub/halo:2.19 restart: unless-stopped ports: - "8090:8090" # 外部访问端口:容器内端口 volumes: - ./halo2:/root/.halo2 # 持久化配置与内容 depends_on: - halo-postgres environment: - SPRING_PROFILES_ACTIVE=prod - SPRING_R2DBC_URL=r2dbc:postgresql://halo-postgres:5432/halo - SPRING_R2DBC_USERNAME=halo - SPRING_R2DBC_PASSWORD=halo halo-postgres: image: postgres:15-alpine restart: unless-stopped volumes: - ./postgres:/var/lib/postgresql/data environment: - POSTGRES_DB=halo - POSTGRES_USER=halo - POSTGRES_PASSWORD=halo保存后启动服务:
# 启动(后台运行)docker compose up -d# 查看容器状态docker compose ps等待约 60 秒(首次启动需初始化数据库),在浏览器中访问:
👉 http://你的服务器IP:8090
首次访问将自动跳转至安装向导页,按提示填写管理员账号、站点信息,提交后即可登录后台。
需一台具备 Java 17+ 和 Node.js 18+ 运行环境的服务器。推荐使用 Ciuic服务器,选择「Ubuntu 22.04 + JDK 17 预装镜像」,省去环境配置环节。
安装 Java 17 与构建工具(如未预装):
# Ubuntu 22.04 安装 OpenJDK 17sudo apt updatesudo apt install -y openjdk-17-jdk maven git nginx# 验证 Java 版本java -version# 输出应含:openjdk version "17.x.x"# 设置 JAVA_HOME(写入全局环境)echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' | sudo tee -a /etc/environmentsource /etc/environment克隆 Halo 源码并构建(适用于需要修改主题、插件或调试场景):
# 克隆稳定分支(v2.19)git clone -b v2.19 https://github.com/halo-dev/halo.git ~/halo-srccd ~/halo-src# 使用 Maven 构建(跳过测试加快速度)./mvnw clean package -Dmaven.test.skip=true# 获取生成的可执行 JAR 包路径ls target/halo-*.jar# 示例输出:target/halo-2.19.0.jar创建配置文件并以后台服务方式运行:
# 创建配置目录mkdir -p ~/.halo2# 生成 application.yaml(最小化配置)cat > ~/.halo2/application.yaml << 'EOF'server: port: 8090spring: r2dbc: url: r2dbc:postgresql://localhost:5432/halo username: halo password: halo datasource: driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/halo username: halo password: halohalo: work-dir: /root/.halo2EOF启动 PostgreSQL 并初始化数据库:
# 启动 PostgreSQL 服务sudo systemctl enable postgresqlsudo systemctl start postgresql# 创建 halo 数据库与用户sudo -u postgres psql -c "CREATE DATABASE halo;"sudo -u postgres psql -c "CREATE USER halo WITH PASSWORD 'halo';"sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE halo TO halo;"以后台服务方式运行 Halo:
# 创建 systemd 服务文件sudo tee /etc/systemd/system/halo.service << 'EOF'[Unit]Description=Halo Blog ServiceAfter=network.target postgresql.service[Service]Type=simpleUser=rootWorkingDirectory=/root/.halo2ExecStart=/usr/bin/java -jar /root/halo-src/target/halo-2.19.0.jar --spring.config.location=file:/root/.halo2/application.yamlRestart=on-failureRestartSec=10[Install]WantedBy=multi-user.targetEOF# 启用并启动服务sudo systemctl daemon-reloadsudo systemctl enable halosudo systemctl start halo# 查看日志确认启动成功sudo journalctl -u halo -f --since "1 minute ago"# 出现 "Started Halo Blog Service" 及 "Tomcat started on port(s): 8090" 即成功同方案一,浏览器访问:
👉 http://你的服务器IP:8090
流程一致,首次访问进入安装向导,完成初始化即部署成功。
| 维度 | Docker 方案 | 源码部署方案 |
|---|---|---|
| 适用人群 | 零基础、追求效率、快速验证 | 开发者、需二次开发、学习技术栈 |
| 维护成本 | 极低(升级只需改镜像标签) | 中等(需手动编译、管理依赖版本) |
| 资源占用 | 略高(容器运行时开销) | 更轻量(直接运行 JVM 进程) |
| 扩展性 | 易横向扩展(配合 Swarm/K8s) | 需自行配置反向代理与负载均衡 |
✅ 通用优化建议(任一方案均适用):
开启 HTTPS:使用 Nginx 反向代理 + Let’s Encrypt 自动签发证书(sudo apt install certbot python3-certbot-nginx); 配置开机自启:Docker 方案确保 docker.service 已启用;源码方案已通过 systemctl enable halo 实现; 性能调优:Halo 默认 JVM 参数较保守,生产环境可在 halo.service 的 ExecStart 中添加: ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar ...SEO 基础配置:登录 Halo 后台 →「系统 → 基本设置」中填写站点标题、描述、关键词,并启用「静态化」与「XML 站点地图」。所有操作均可在 30 分钟内完成。选择任一方案,你已拥有一个可公开访问、可持续更新的个人项目站点。
本文链接:https://ciuic.com/som/25263.html
版权声明:本文来自网站作者,不代表CIUIC的观点和立场,本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。客服邮箱:ciuic@ciuic.com
打开微信,点击右上角"+"号,添加朋友,粘贴微信号,搜索即可!