跳到主要内容

一键版

实战:一键部署全网最美博客ruyu-blog(简洁、唯美、丝滑)-v1-2024.7.8.11(测试成功)(一键版)

image-20240721111542750

目录

[toc]

版权声明

本着开源共享、共同学习的精神:

本文是在 博主Ruyu 文章:《Ruyu-Blog 博客项目部署文档》https://www.kuailemao.xyz/article/48 基础上增加了自己实践过程的一些细节,转载无需和我联系,但请注明文章来源。如果侵权之处,请联系博主进行删除,谢谢~

强烈推荐:

博主Ruyu

Ruyu-Blog开源博客gitee地址:https://gitee.com/kuailemao/ruyu-blog

Ruyu-Blog开源博客网站地址:https://www.kuailemao.xyz/

image-20240804154704039

image-20240804154737946

博客介绍

基于 SpringBoot3 + Vue3 + TypeScript+ Mysql + Redis + RabbitMQ + SpringSecurity 的前后台个人博客系统。

image-20240716062302851

==项目特点==

  • 前端参考了众多优秀博客大佬设计,页面美观,响应式布局
  • 后台管理基于 Antdv Pro 后台通用框架二次开发
  • 前后端分离,Docker Compose 一键部署
  • 采用 RABC 权限模型,使用 SpringSecurity 进行权限管理
  • 支持动态权限修改、动态菜单和路由
  • 文章、分类、标签、时间轴、树洞、留言板、聊天、友链等模块
  • 站长介绍、公告、电子时钟、随机文章、每日鸡汤、网站资讯
  • 支持代码高亮、图片预览、黑夜模式、点赞、收藏、评论等功能
  • 评论支持在线预览、Markdown、表情包
  • 发送友链申请、通过等自动发送邮件提醒
  • 接入第三方 gitee、github登录,减少注册成本
  • 文章编辑使用 Markdown 编辑器
  • 实现日志管理(操作、登录),服务监控、用户、菜单、角色、权限管理
  • 使用 自己搭建 minio 进行图片存储避免了使用第三方对象存储被刷流量问题)😍
  • 使用 Spring Aop + Redis 对接口进行了限流处理(每分钟),后端使用 JSR 303 对参数校验,使用 Spring Aop + RabbitMQ 对后台操作日志处理
  • 采用 Restful 风格的 API,注释完善,后端代码使用了大量 stream 流编程方式,代码非常美观
  • ……

==技术介绍==

前台前端(博客): Vue3 + Pinia + Vue Router + TypeScript + Axios + Element Plus + Echarts……

后台启动(管理): Vue3 + Pinia + Vue Router + TypeScript + Axios + Antdv Pro + Ant Design Vue……

后端: JDK17 + SpringBoot3 + SpringSecurity + Mysql + Redis + Quartz + RabbitMQ + Minio + Mybatis-Plus + Nginx + Docker……

其他: Gitee、Github 第三方登录

说明

次一键部署全网最美博客ruyu-blog,是在原文档基础上写的,可用于快速部署1套ruyu-blog,让小白体验下这款博客的魅力。

为了全面了解该博客的框架,强烈建议后续再手动部署一遍。

前提

次脚本只在centos7.x环境测试成功过(其他环境可自行测试)。

配置要>=2c 4g。

能上外网。

我的环境是在win10的vmwareworkstaion上一台centos7.6 1810虚机,ip为192.168.1.102

源码

注意:

①建议小白在一台纯净centos7.x上执行博客部署脚本。(因为涉及到当前机器是否存在各软件老环境脚本检查编写,暂未提供,后续会优化次安装脚本。)

②因为直接部署安装需要从我的ecs上下载一个280多M的安装包(里面主要包含了各环境软件包),网络下载很慢,预计要10min,因此我的脚本里注释了这一行下载shll。注意:因尊重作者版权,请大家请从作者q群里获取一键部署所需软件包,个人将不单独私发源码给别人。

image-20240811172548647

ruyu-blog Q群:

image-20240811173115547

注意:

博客具体源码,请从作者git仓库获取,此百度网盘只包含基础环境所需软件。

Ruyu-Blog开源博客gitee地址:https://gitee.com/kuailemao/ruyu-blog

image-20240804154704039

1、部署方法🍀

通过如下1条命令即可完整安装全网最美博客ruyu-blog:

1、上传ruyui-blog Q群里的实验软件包ruyu-blog-install-softwares.zip到服务器/root/目录(288M大小)

2、执行如下命令直接安装
cd /root & wget http://47.100.215.163:6080/public/ruyu-blog-install.sh && chmod +x ruyu-blog-install.sh && sh -x ruyu-blog-install.sh
##输入自己当前服务器的ip,然后坐等部署成功,整个时间预计在8min左右。(mvn下载依赖包、pnpm构建等比较耗时)
  • 准备1台测试机器

image-20240721103303845

  • 执行脚本
wget http://47.100.215.163:6080/public/ruyu-blog-install.sh && chmod +x ruyu-blog-install.sh && sh -x ruyu-blog-install.sh

image-20240721103653397

  • 执行结束

image-20240721111520881

2、测试效果

完美,测试成功:😘

http://192.168.1.102/

image-20240721111542750

http://192.168.1.102:81

image-20240721111610761

脚本内容

ruyu-blog-install-softwares.zip内容

image-20240721091820781

ruyu-blog-install.sh

#/bin/bash

# 由用户输入当前机器的IP地址
read -p "请输入当前机器的IP地址: " new_ip_address
echo "开始执行ruyu-blog安装脚本:…"



echo "############拉取代码##############"
cd /root
#wget http://47.100.215.163:6080/public/ruyu-blog-install-softwares.zip
unzip ruyu-blog-install-softwares.zip


# 替换文本中的旧IP地址为新IP地址
#sed -i "s/旧IP地址/$new_ip_address/g" input.txt
#echo "IP地址已替换完成。"

echo "############配置ruyu-blog开发基础环境##############"
##docker部署
#初始环境
systemctl stop firewalld
systemctl disable firewalld

systemctl stop NetworkManager
systemctl disable NetworkManager

setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config


yum install -y net-tools
yum install -y vim
yum install -y wget
yum install -y lrzsz


cd /etc/yum.repos.d/
#mkdir backup-`date +%F`
#mv * !$

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache


#yum remove docker \
# docker-client \
# docker-client-latest \
# docker-common \
# docker-latest \
# docker-latest-logrotate \
# docker-logrotate \
# docker-engine

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache

#yum install docker-ce -y
yum install -y yum install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io #指定需要安装的版本号
systemctl start docker && systemctl enable docker

docker version
docker info

mkdir -p /etc/docker
echo > /etc/docker/daemon.json
tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://hub.uuuadc.top",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu",
"https://docker.ckyl.me",
"https://docker.awsl9527.cn"
]
}
EOF

cat /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
cat /proc/sys/net/ipv4/ip_forward

systemctl daemon-reload
systemctl restart docker
#######################################楚河汉界#################################################
##docker-compose部署
#(1)配置
cd /root
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
#添加执行权限
chmod +x /usr/local/bin/docker-compose

#(2)验证
docker-compose --version
#######################################楚河汉界#################################################

##安装nodejs
#(2)解压并配置PATH
cd /root
tar -xf node-v16.20.2-linux-x64.tar.xz
mv node-v16.20.2-linux-x64 /usr/local/nodejs

echo 'export PATH=/usr/local/nodejs/bin:$PATH' >> /etc/profile
source /etc/profile

#(3)验证
node -v
npm -v
#######################################楚河汉界#################################################
#设置npm和pnpm均为国内源
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
pnpm config set registry https://mirrors.huaweicloud.com/repository/npm/

##安装pnpm
npm install -g pnpm@8.12.0
pnpm --version

#######################################楚河汉界#################################################
##安装jdk
cd /root
rpm -ivh jdk-17_linux-x64_bin.rpm
java -version
#######################################楚河汉界#################################################
##安装maven
cd /root
tar xf apache-maven-3.9.8-bin.tar.gz -C /usr/local/
cd /usr/local/apache-maven-3.9.8/

echo 'export M2_HOME=/usr/local/apache-maven-3.9.8' >> /etc/profile
echo 'export PATH=$M2_HOME/bin:$PATH' >> /etc/profile
source /etc/profile

rm -rf /usr/local/apache-maven-3.9.8/conf/settings.xml
cp /root/settings.xml /usr/local/apache-maven-3.9.8/conf/
mvn -v

#配置maven源为阿里源,暂时忽略
#######################################楚河汉界#################################################
##安装python3
##1、安装依赖包
sudo yum groupinstall "Development Tools" -y
sudo yum install openssl-devel bzip2-devel libffi-devel -y

##2、下载并编译安装
cd /root/
#wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz
#wget https://onedayxyy.cn/scripts/centos7_install_python3.8.6/Python-3.8.6.tgz
tar xzf Python-3.8.6.tgz
cd Python-3.8.6
./configure --enable-optimizations
make altinstall

##3、验证
python3.8 --version

##4、删除软件包
cd /root
rm -rf Python-3.8.6.tgz Python-3.8.6

echo "Python3.8.6 has installed finished!!!"


#配置下软连接,这里暂时不配置软连接,配置了会导致yum无法正常使用(yum依赖2版本python)
#rm -rf /usr/bin/python
#ln -s /usr/local/bin/python3.8 /usr/bin/python
#######################################楚河汉界#################################################
##申请第三方登录、申请邮件发送--后续再说。





#######################################楚河汉界#################################################
echo "############启动mysql容器##############"
mkdir -p /data/mysql/data
mkdir -p /data/mysql/conf

cat >/data/mysql/docker-compose.yml <<EOF
version: '3'
services:
mysql:
image: mysql:8.0 #mysql版本
container_name: mysql
volumes:
- /data/mysql/data:/var/lib/mysql
- /data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 123456 #root用户密码
TZ: Asia/Shanghai
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
EOF

cd /data/mysql
docker-compose up -d
docker ps

sleep 10
#拷贝sql到mysql的blog数据库
cd /root
docker cp blog.sql mysql:/
docker cp init-db.sh mysql:/

docker exec mysql bash -c "
cd /
bash init-db.sh
"
docker restart mysql
#######################################楚河汉界#################################################
echo "############启动redis容器##############"
#创建挂载目录
mkdir -p /data/redis

cat >/data/redis/docker-compose.yml << EOF
version: '3'
services:
redis:
image: redis:7.2.3
container_name: redis
restart: always
ports:
- 6379:6379
volumes:
- /data/redis/redis.conf:/etc/redis/redis.conf
- /data/redis/data:/data
- /data/redis/logs:/logs
command: ["redis-server","/etc/redis/redis.conf"]
EOF
##


cat >/data/redis/redis.conf <<EOF
protected-mode no
port 6379
timeout 0
#rdb配置
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
#设置你的redis密码
requirepass 123456
EOF


cd /data/redis
docker-compose up -d
docker ps
cd ~
#######################################楚河汉界#################################################
echo "############启动rabbit容器##############"
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
docker exec rabbit /bin/bash -c "
rabbitmq-plugins enable rabbitmq_management
cd /etc/rabbitmq/conf.d/
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
"
docker restart rabbit
docker ps
cd ~
#######################################楚河汉界#################################################
echo "############启动music容器##############"
docker run -p 3000:3000 --name netease_cloud_music_api -d binaryify/netease_cloud_music_api
docker ps
cd ~
#######################################楚河汉界#################################################
echo "############启动minio容器##############"
cd ~
tar xf minio.tar.gz -C /data/
cd /data/minio
docker-compose up -d
docker ps
cd ~
#######################################楚河汉界#################################################



echo "############解压博客核心源代码##############"
cd ~
unzip ruyu-blog-v1.3.0.zip
mv ruyu-blog-v1.3.0 ruyu-blog
cd ruyu-blog

##拷贝3个核心文件
cd ~
rm -rf /root/ruyu-blog/blog-backend/src/main/resources/application.yml
rm -rf /root/ruyu-blog/blog-frontend/kuailemao-blog/default.conf
rm -rf /root/ruyu-blog/blog-frontend/kuailemao-admin/default.conf
cd ~
cp application.yml /root/ruyu-blog/blog-backend/src/main/resources
cp default-qt.conf /root/ruyu-blog/blog-frontend/kuailemao-blog/default.conf
cp default-ht.conf /root/ruyu-blog/blog-frontend/kuailemao-admin/default.conf

echo "开始替换Ip……"
sed -i s/192.168.1.101/$new_ip_address/g /root/ruyu-blog/blog-backend/src/main/resources/application.yml
sed -i s/192.168.1.101/$new_ip_address/g /root/ruyu-blog/blog-frontend/kuailemao-blog/default.conf
sed -i s/192.168.1.101/$new_ip_address/g /root/ruyu-blog/blog-frontend/kuailemao-admin/default.conf
echo "IP地址已替换完成。"

#######################################楚河汉界#################################################
echo "############构建镜像并启动服务##############"
#重新构建jar包
cd /root/ruyu-blog/blog-backend
mvn clean
mvn clean package

#因为作者原文件里目录写的有问题,这里重新覆盖下。
cat >Dockerfile<<EOF
# 使用官方的OpenJDK 17镜像作为基础镜像
FROM openjdk:17

# 设置工作目录
WORKDIR /app

# 复制项目的jar文件到容器中
COPY target/blog-backend-0.0.1-SNAPSHOT.jar /app/app.jar

# 暴露应用运行的端口
EXPOSE 8088

# 运行Spring Boot应用
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
EOF

#删除老容器和老镜像
docker rm -f ruyu-blog-hd
docker rmi -f ruyu-blog-hd

#构建新镜像和启动新容器
docker build . -t ruyu-blog-hd
docker run --name ruyu-blog-hd -d -p 8088:8088 ruyu-blog-hd
docker ps
cd ~
##


#重新构建dist
cd /root/ruyu-blog/blog-frontend/kuailemao-blog/
rm -rf dist
pnpm install
pnpm build

#删除老容器和老镜像
docker rm -f blog-qt
docker rmi -f blog-qt

#构建新镜像和启动新容器
docker build . -t blog-qt
docker run --name blog-qt -d -p 80:80 blog-qt
docker ps
cd ~
##

#重新构建dist
cd /root/ruyu-blog/blog-frontend/kuailemao-admin/
rm -rf dist
pnpm install
pnpm uninstall husky
pnpm install husky
pnpm build

#删除老容器和老镜像
docker rm -f blog-ht
docker rmi -f blog-ht

#构建新镜像和启动新容器
docker build . -t blog-ht
docker run --name blog-ht -d -p 81:81 blog-ht
docker ps
cd ~
##

密码相关

mysql root/123456
rabbit guest/guest

前台后端:admin/123456

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人主页:

https://onedayxyy.cn

image-20240805214647028

🍀 知识库:

https://wiki.onedayxyy.cn/

image-20240804075128231

🍀 博客:

http://blog.onedayxyy.cn/

image-20240804075845906

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

进Q群

玩转Typora+Docusuaurus+起始页交流群:(欢迎小伙伴一起探讨有趣的IT技术,来完成一些漂亮的项目)

往期推荐

我的开源项目:

https://wiki.onedayxyy.cn/docs/OpenSource

项目名称我的仓库地址我的demo地址作者仓库地址
1、玩转Typorahttps://gitee.com/onlyonexl/typora-theme-one-https://onedayxyy.cn/docusaurus/docs/typorahttps://typoraio.cn/#
2、玩转Docusaurushttps://gitee.com/onlyonexl/docusaurus2.0https://wiki.onedayxyy.cn/https://www.docusaurus.cn/
3、个人主页home3.0https://gitee.com/onlyonexl/home3.0https://onedayxyy.cn/
4、全网最美博客-ruyu-blog(简洁、唯美、丝滑)/https://blog.onedayxyy.cn/仓库地址:https://gitee.com/kuailemao/ruyu-blog
demo地址:https://www.kuailemao.xyz/
5、家庭相册filesite-io/https://photo.onedayxyy.cn/https://github.com/filesite-io/machete

image-20240811063938529

  • typora皮肤

https://wiki.onedayxyy.cn/docs/typora

image-20240518165037517

  • 起始页

https://onedayxyy.cn/

image-20240803161628640

  • 知识库

https://wiki.onedayxyy.cn/

image-20240803161507990

  • 博客

https://blog.onedayxyy.cn/

image-20240803162010305

  • 家庭相册

https://photo.onedayxyy.cn/

image-20240811062854508

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!