一,准备工作
1.vps一台
2.域名
二,开始搭建
1.本次搭建使用的是KiwiVM-2核2GVPS,使用系统为Debian 12 x86_64,cloudflare域名
2-1.搭建docker(国内国外视自己网络环境决定,二选一)
// 国外。
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
// 国内
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
2-2.更新现有的软件包列表
apt update
apt install sudo
sudo apt update
2-3.安装一些必备的软件包
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
2-4.将官方 Docker hub 的 GPG key 添加到系统中
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
2-5.将 docker 版本库添加到APT源
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
2-6.用新添加的 docker 软件包来进行升级更新
apt update
2-7.安装 docker-ce
apt install docker-ce -y
# 检查docker版本
docker --version
2-8.查看 docker 是否正在运行,并设置默认启动
systemctl status docker
systemctl start docker
systemctl enable docker
2-9.安装 docker-compose
apt install docker-compose -y
# 检查docker-compose 版本
docker-compose --version
3-1.搭建Nginx Proxy Manager创建目录
Nginx Proxy Manager中文版本镜像网站:hub.docker.com/r/chishin/nginx-proxy-manager-zh
lsb_release -a #查看系统版本
docker -v #查看docker版本
docker-compose -v #查看docker-compose版本
ls #查看当前目录下文件
mkdir -p docker/data/nginx_proxy_manager #创建nginx_proxy_manager目录
cd docker/data/nginx_proxy_manager #进入nginx_proxy_manager目录
3-2.在nginx_proxy_manager目录下创建docker-compose.yml文件
vim docker-compose.yml
3-3.复制下面代码粘贴到docker-compose.yml里
version: '3.8'
services:
app:
image: 'chishin/nginx-proxy-manager-zh'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
# Uncomment the next line if you uncomment anything in the section
# environment:
# Uncomment this if you want to change the location of
# the SQLite DB file within the container
# DB_SQLITE_FILE: "/data/database.sqlite"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
3-4.保存退出
esc
:wq
3-5.运行docker-compose.yml
docker-compase up -d
3-6.查看是否运行成功
docker ps
3-7.如下图表示运行成功
3-8.如要修改docker-compose.yml,可根据以下命令进行
cd docker/data/nginx_proxy_manager #进入nginx_proxy_manager目录
vim docker-compose.yml #进入docker-compose.yml
i #进入编辑模式
esc #退出编辑模式
:wq #保存退出
docker compose pull #更新docker-compose.yml
docker compose up -d #重启docker-compose.yml
3-9.打开浏览器输入VPS公网IP加81端口号进入Nginx Proxy Manager的web界面
3-9.输入官方默认账号密码进入
Email: admin@example.com
Password: changeme
3-10.进入后重新输入邮箱为登陆账号,并修改登陆密码
3-11.创建域名(A类,二级名称,VPS公网IP,关闭代理状态)
3-12-1.创建证书步骤一
3-12-2.步骤2
3-12-3.步骤3(说明:1.需要注册证书的域名一般填写一级域名例:kcccc.org,在填写二级域名例:*.kcccc.org。2.填写常用邮箱。3.打开“使用DNS认证”。4.选择域名对应的代理商。5.填写代理商API。6.打开“同意”。7.保存)
3-12-4.添加反代
说明:1.刚创建好的二级域名。2.VPS公网IP。3.nginx管理页面端口号。4.打开“防止常见漏洞”。5.保存
说明:1.选择SSL。2.选择刚创建好的SSL。3.打开所有选项。4.保存
创建完成
4-1.安装halo创建目录
mkdir -p docker/data/halo #创建halo 目录
cd docker/data/halo #进入halo 目录
4-2.创建docker-compose.yml
vim docker-compose.yml
4-3.复制以下代码粘贴至docker-compose.yml里
说明:需要关注并修改的几个点:
1.image: halohub/halo:2.6.0 #这个是halo的安装版本 ,后果后期升级或者降级需要来这里修改版本号
2. volumes: - ./:/root/.halo2 #数据存放目录,这个默认就行
3.ports: - "8090:8090" #网站的端口号
4.- --halo.external-url=https://bk.kcccc.org #=号后面修改成自己的访问域名
5.- --halo.security.initializer.superadminusername=admin #=号后面修改登陆用户名
6.- --halo.security.initializer.superadminpassword=********** #=号后面修改登陆密码
version: "3"
services:
halo:
image: halohub/halo:2.6.0
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./:/root/.halo2
ports:
- "8090:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=o#DwN&JSa56
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=https://bk.kcccc.org
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=***********
halodb:
image: mysql:8.0.31
container_name: halodb
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
ports:
- "3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:
4-4.修改完后保存退出
esc
:wq
4.5.运行docker-compose.yml
docker-compase up -d
4.6.查看运行状态
docker ps
4.7.如下图表示运行成功
4-8.打开浏览器输入VPS公网IP加端口号进行测试
4.9.创建域名
4-10.创建反代
4-11.测试
4-12.域名后面加console 进入后台管理