docker&halo搭建个人站点
搭建条件:
1,Linux服务器一台:腾讯云或者阿里云
2,公网ip一个(服务器一般自带,如果没有建议做内网穿透)
3,域名一个(没有就无法做反向代理即无法使用域名访问)
docker的安装:
Docker官网:https://docs.docker.com/engine/install
我的是Centos(这里根据自己的系统安装):
设置存储库:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker 引擎:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 Docker:
sudo systemctl start docker
通过运行映像来验证 Docker 引擎安装是否成功:
sudo docker run hello-world
安装完成后,执行以下命令启动docker服务并设置开机自启动(推荐):
sudo systemctl enable docker
halo面板的安装:
Halo官网:halo.run
使用docker部署可以直接创建容器(可以根据官网最新的来下载):
docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.11
这里可以先测试一下是否安装成功:
ip+port(端口为8090)
配置反向代理:
这里先把域名解析一下(我这里使用的是Nginx Proxy Manager做的反向代理)
这里建议先参考官网文章:
https://docs.halo.run/getting-started/install/other/nginxproxymanager
https://nginxproxymanager.com/guide/#quick-setup
创建docker-compose.yml文件将Quick Setup中的命令copy到里面
在服务器的~目录下创建nginx文件夹:
mkdir .nginx
进入该文件夹:
cd .nginx/
将docker-composes.yml放进去
然后使用docker compose up -d命令来启动docker compose(这里根据自己实际情况来),一定要在.nginx目录内运行
docker compose up -d
这里使用ip+port来访问Nginx-ui界面
ip+port(端口为81)
默认管理员用户:
Email: [email protected]
Password: changeme
然后根据自己的需求设置账号密码
里面的设置根据自己的需求来设置(SSL证书可以自动添加如果不行那就使用手动添加)
配置开机自启动:
最后建议在docker中的halo面板也做一下开机自启动
在容器中,创建一个新的systemd服务文件halo.service
。可以使用任何文本编辑器打开一个新文件,并将以下内容复制到其中:
[Unit]
Description=Halo Panel
After=docker.service
Requires=docker.service
[Service]
ExecStart=/usr/bin/docker start -a halo
ExecStop=/usr/bin/docker stop -t 2 halo
Restart=always
RestartSec=30s
User=root
[Install]
WantedBy=multi-user.target
这个服务文件将告诉系统如何启动和停止Halo面板容器,并在需要时自动重新启动。
将该服务文件保存,并将其移动到/etc/systemd/system/
目录中:
mv halo.service /etc/systemd/system/
更新systemd服务配置:
systemctl daemon-reload
启用并启动该服务:
systemctl enable halo
systemctl start halo
现在,Halo面板将在每次系统启动时自动启动。您可以通过运行systemctl status halo
命令来检查服务的状态。
评论区