博客 | Docker+Halo+NPM 搭建博客
环境
- 阿里云服务器
Ubuntu 20.04
Docker
环境
使用Docker部署halo
-
创建 博客目录
mkdir ~/.halo && cd ~/.halo
-
拉取最新的 Halo 镜像
docker pull halohub/halo:1.6.0
-
创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.6.0
-it: 开启输入功能并连接伪终端 -d: 后台运行容器 --name: 为容器指定一个名称 -p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。 -v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。 --restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。
-
打开
http://ip:端口号
即可看到安装引导界面也可以直接导入数据
-
后台登录配置好基本的信息,后打开
http://ip
即可看到博客
安装配置主题Joe2
release页面下载源代码

在后台上传主题文件

接下来就在主题设置里面配置信息就好了
我遇到的主要问题就是邮箱服务,我用的465端口不行,要用587端口
使用Nginx Proxy Manager配置反向代理
首先用docker-compose
安装Nginx Proxy Manager
docker-compose.yml
文件,端口尽量不要改,我用的云服务器改了之后就不行了
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
启动容器
docker-compose up -d
访问 http://ip:81
,默认账号密码
Email: admin@example.com
Password: changeme
添加一个代理
按照下面的方式配置,ip是docker内部的ip地址,可以通过 ip addr show docker0
查看
Domain Names
:填我们 Halo 网站的域名,首先记得做好 DNS 解析,把域名绑定到我们的服务器的 IP 上Scheme
:默认http
即可,除非你有自签名证书Forward Hostname/IP
:填入服务器的 IP,或者 Docker 容器内部的 IP(如果 NPM 和 Halo 搭建在同一台服务器上的话)Forward Port
:填入 Halo 映射出的端口,这边默认是8090
Cache Assets
:缓存,可以选择打开Block Common Exploits
: 阻止常见的漏洞,可以选择打开Websockets Support
:WS 支持,可以选择打开Access List
: 这个是 NPM 自带的一个限制访问功能,这边我们不管,后续可以自行研究。
添加SSL
证书

上传这些文件就可以了

配置反向代理的SSL
通过域名访问博客
评论区