又一个 CMS 系统,(使用 docker)搭建起来很快,官方文档没有坑
使用 Halo 2.x
环境
- Debian 11
- Docker compose
参考
步骤
启动 Halo 容器
创建 Halo 目录并新建 Docker compose 配置文件
mkdir halo cd halo vim docker-compose.yml
在 docker-compose.yml 中写入以下内容(这里使用 postgresql 数据库)
version: "3" services: halo: image: halohub/halo:2.1.0 container_name: halo restart: on-failure:3 depends_on: halodb: condition: service_healthy networks: halo_network: volumes: - ./:/root/.halo2 ports: - "127.0.0.1:8090:8090" # 不监听外部端口 command: - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo - --spring.r2dbc.username=halo # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。 - --spring.r2dbc.password=[password] - --spring.sql.init.platform=postgresql # 外部访问地址,请根据实际需要修改 - --halo.external-url=http://[IP:8090 or Domain]/ # 初始化的超级管理员用户名 - --halo.security.initializer.superadminusername=[Halo admin username] # 初始化的超级管理员密码 - --halo.security.initializer.superadminpassword=[Halo admin password] halodb: image: postgres:latest container_name: halodb restart: on-failure:3 networks: halo_network: volumes: - ./db:/var/lib/postgresql/data ports: - "127.0.0.1:5432:5432" healthcheck: test: [ "CMD", "pg_isready" ] interval: 10s timeout: 5s retries: 5 environment: - POSTGRES_PASSWORD=[password] - POSTGRES_USER=halo - POSTGRES_DB=halo - PGUSER=halo networks: halo_network:
启动容器
docker-compose up -d
配置 Nginx
在 /etc/nginx/sites-available 下新建配置文件 halo.conf,写入以下内容
upstream halo { server 127.0.0.1:8090; } server { listen 80; # listen [::]:80; #ipv6 server_name [IP or Domain]; client_max_body_size 1024m; location / { proxy_pass http://halo; 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; } }
新建软连接
ln -s /etc/nginx/sites-available/halo.conf /etc/nginx/sites-enabled/
测试并重载 Nginx
nginx -t nginx -s reload
效果
初始化前
使用管理员账户登录后台并初始化(设置网站名)
初始化后