更新日期:2025年3月15日
官方文档更新:Halo 2.x Documentation
问题排查工具:docker compose logs -f halo 查看实时日志
核心特性更新
- 全新主题引擎:支持React/Vue等现代前端框架
- 多数据库支持:MySQL 5.7+/MariaDB 10.5+/PostgreSQL 12+
- 性能提升:相比1.x版本,API响应速度提升300%
- 安全增强:默认启用CSRF防护、CORS策略
Docker Compose部署方案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| version: '3.8'
services: halo: image: halohub/halo:2.12 container_name: halo restart: unless-stopped volumes: - ./halo:/root/.halo2 environment: - SPRING_DATASOURCE_URL=jdbc:mysql://halo-db:3306/halo?useUnicode=true&characterEncoding=utf8&useSSL=false - SPRING_DATASOURCE_USERNAME=halo - SPRING_DATASOURCE_PASSWORD=your_db_password - HALO_EXTERNAL_URL=https://blog.example.com - HALO_SECURITY_INITIALIZER_SUPERADMINUSERNAME=admin - HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=your_admin_password networks: - halo-network depends_on: - halo-db
halo-db: image: mysql:8.0 container_name: halo-db restart: unless-stopped volumes: - ./mysql:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root_password - MYSQL_DATABASE=halo - MYSQL_USER=halo - MYSQL_PASSWORD=your_db_password command: - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci networks: - halo-network
networks: halo-network: driver: bridge
volumes: halo: mysql:
|
关键配置说明
持久化存储
./halo 目录映射容器内配置和附件
./mysql 目录持久化数据库数据
安全建议
- 首次启动后立即修改管理员密码
- 启用HTTPS:
1 2
| docker exec halo java -jar /app/halo.jar --halo.security.ssl.enabled=true --halo.security.ssl.self-signed=true
|
备份与恢复
1 2 3 4 5 6 7 8
| docker exec halo-db mysqldump -u halo -p your_db_password halo > halo_backup_$(date +%F).sql
tar -czvf halo_backup_$(date +%F).tar.gz ./halo ./mysql
docker exec -i halo-db mysql -u halo -p your_db_password halo < halo_backup.sql
|
性能优化
JVM参数调整
1 2
| - JAVA_OPTS=-Xmx1024m -Xms512m -XX:MaxRAMPercentage=75%
|
缓存配置
1 2 3 4
| environment: - SPRING_REDIS_HOST=redis-host - SPRING_REDIS_PORT=6379 - SPRING_REDIS_PASSWORD=redis_password
|
插件管理
常用插件列表:
- 百度SEO(halo-plugin-baidu-seo)
- 微信登录(halo-plugin-wechat-login)
- 阿里云OSS存储(halo-plugin-oss)
安装命令:
1
| docker exec halo java -jar /app/halo.jar --plugin.install=https://halo.run/plugins/plugin-seo-1.0.0.jar
|
反向代理配置(Nginx)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| server { listen 80; server_name blog.example.com; return 301 https://$server_name$request_uri; }
server { listen 443 ssl; server_name blog.example.com; ssl_certificate /etc/letsencrypt/live/blog.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/blog.example.com/privkey.pem;
location / { proxy_pass http://halo: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; } }
|
版本升级
1 2 3 4 5 6 7 8 9 10 11
| docker compose down
tar -czvf halo_backup_before_upgrade.tar.gz ./halo ./mysql
sed -i 's/halohub\/halo:2.12/halohub\/halo:2.13/g' docker-compose.yml
docker compose up -d
|