跳到主要内容

一键版

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

image-20240814230716352

目录

[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

效果

image-20240815065755093

博客介绍

基于 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 release >=1.4.0

前提:

前提: 1台centos7.x机器纯净系统(最小化或者桌面版都行,不要安装其他软件!!!)(云服务器和本地虚机都行,推荐虚机部署成功后,再部署到云服务器)(测试前记得做好快照) 能上外网(nat模式) 配置要>=2c 4g

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

建议:

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

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

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

注意:

博客具体源码,请从作者git仓库获取。

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

image-20240804154704039

如何获取一键部署脚本 🐱‍🚀

提示

基于版权原因,想要获取ruyu-blog一键部署脚本,请进q群获取脚本,部署过程遇到的问题,也可在群里交流。😘

image-20240817180256398

q群:

image-20240817180430098

本地文件位置:

ruyu-blog-install-v1-2024.8.6.sh
ruyu-blog-install-v2-2024.8.18.sh ##本次,测试成功

image-20240818061853094

更新内容

  • 将本地1.1G大的附件包穿到oss供大家快速下载;(将本地镜像上传阿里云仓库供大家获取)
  • 一条命令即可完成ruyu-blog的部署(不再下载很大的附件包了)
  • 优化shell命令;(使用了函数等)

1、部署方法

从oss拉取脚本:

#直接执行如下命令可完成安装ruyu-blog博客的部署
curl -O http://47.100.215.163:6080/public/code/ruyu-blog-install-v2.sh ; sh -x ruyu-blog-install-v2.sh > >(tee /root/ruyu-blog-all.log) 2> >(tee /root/ruyu-blog-error.log >&2)

##输入自己当前服务器的ip,然后坐等部署成功,整个时间预计在12min左右。

本地执行脚本:

#直接执行如下命令可完成安装ruyu-blog博客的部署
sh -x ruyu-blog-install-v2.sh > >(tee /root/ruyuy-blog-all.log) 2> >(tee /root/ruyuy-blog-error.log >&2)

##输入自己当前服务器的ip,然后坐等部署成功,整个时间预计在10min左右。(下载镜像、pnpm下载依赖比较耗时,耐心等待即可……)

测试过程:

  • 准备1台测试机器

image-20240817163924590

  • 执行脚本
curl -O http://47.100.215.163:6080/public/code/ruyu-blog-install-v2.sh ; sh -x ruyu-blog-install-v2.sh > >(tee /root/ruyuy-blog-all.log) 2> >(tee /root/ruyuy-blog-error.log >&2)

image-20240817163911543

  • 执行结束

image-20240817174839653

2、测试效果

完美,测试成功:😘

http://192.168.1.102/

image-20240817174901217

http://192.168.1.102:82

前台后端:ADMIN/123456

image-20240817175012362

待优化

  • pnpm构建时下载依赖包很耗时,需优化;
  • shell判断当前环境代码需优化;

其它相关

基础环境软件:

image-20240817163159465

ruyu-blog-install-v2.sh (2024.8.17更新)

#!/bin/bash

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

#配置颜色
RED="\E[1;31m"
GREEN="\E[1;32m"
END="\E[0m"

pull_softwares(){
###########################################################步骤1:从oss拉取基础环境包########################################################
echo -e $RED "###########################################################步骤1:从oss拉取基础环境包########################################################" $END
sleep 2
cd /root
curl -O https://bucket-hg.oss-cn-shanghai.aliyuncs.com/code/ruyu-blog-install-softwares.zip
unzip ruyu-blog-install-softwares.zip

cd /root/
curl -O https://bucket-hg.oss-cn-shanghai.aliyuncs.com/code/apache-maven-3.9.8-bin.tar.gz
curl -O https://bucket-hg.oss-cn-shanghai.aliyuncs.com/code/jdk-17_linux-x64_bin.rpm
curl -O https://bucket-hg.oss-cn-shanghai.aliyuncs.com/code/node-v16.20.2-linux-x64.tar.xz
curl -O https://bucket-hg.oss-cn-shanghai.aliyuncs.com/code/ruyu-blog-v1.4.2.zip
curl -O https://bucket-hg.oss-cn-shanghai.aliyuncs.com/code/docker-compose-linux-x86_64
curl -O https://bucket-hg.oss-cn-shanghai.aliyuncs.com/code/maven-repo.tar.gz

##解压ruyu-blog源码及sql
cd ~
unzip ruyu-blog-v1.4.2.zip
mv ruyu-blog-v1.4.2 ruyu-blog
cd ruyu-blog/sql
mv "blog(部署).sql" blog.sql
cp blog.sql ~
}

install_env(){
###########################################################步骤2:安装基础环境########################################################
echo -e $RED "###########################################################步骤2:安装基础环境########################################################" $END
sleep 2

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

cd /etc/yum.repos.d/
mkdir backup-$(date +%F)
mv * backup-$(date +%F)

curl -O http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache fast

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



##部署docker
yum install -y yum-utils device-mapper-persistent-data lvm2 --disablerepo=epel
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast

yum install -y docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io

mkdir -p /etc/docker
# 先将一个空的 JSON 对象写入 /etc/docker/daemon.json,确保文件存在并且是一个有效的 JSON 文件
echo '{}' | tee /etc/docker/daemon.json > /dev/null
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

sysctl -w net.ipv4.ip_forward=1
systemctl daemon-reload
systemctl restart docker
docker version

cd ~
#######################################楚河汉界#################################################
##docker-compose部署
#(1)配置
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 ~
tar -xf node-v16.20.2-linux-x64.tar.xz -C /usr/local/
mv /usr/local/node-v16.20.2-linux-x64 /usr/local/nodejs

echo 'export PATH=/usr/local/nodejs/bin:$PATH' | tee -a /etc/profile > /dev/null
source /etc/profile

#(3)验证
node -v
npm -v

#######################################楚河汉界#################################################
#设置npm和pnpm均为国内源
npm config set registry https://mirrors.huaweicloud.com/repository/npm/

##安装pnpm
npm install -g pnpm@8.12.0
pnpm config set registry https://mirrors.huaweicloud.com/repository/npm/
pnpm --version

#######################################楚河汉界#################################################
##安装jdk
cd ~
rpm -ivh jdk-17_linux-x64_bin.rpm
java -version

#######################################楚河汉界#################################################
##安装maven
cd ~
tar xf apache-maven-3.9.8-bin.tar.gz -C /usr/local/
tee -a /etc/profile <<EOF
export M2_HOME=/usr/local/apache-maven-3.9.8
export PATH=\$M2_HOME/bin:\$PATH
EOF
source /etc/profile
#说明;
#追加 (`-a`)


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

tar -xzvf maven-repo.tar.gz
mv root/.m2 ~

#######################################楚河汉界#################################################
##安装python3
sudo yum -y install python3 --disablerepo=epel
export PYTHON=$(which python3)
pnpm config set python $(which python3)
python3 --version



#######################################楚河汉界#################################################
##申请第三方登录、申请邮件发送--后续再说。

####从阿里云下载本次所需镜像并重新打tag(可以极大提高镜像下载速度)
docker pull registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/minio
docker tag registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/minio minio/minio

docker pull registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/rabbitmq
docker tag registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/rabbitmq rabbitmq

docker pull registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/netease_cloud_music_api
docker tag registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/netease_cloud_music_api binaryify/netease_cloud_music_api

docker pull registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/redis:7.2.3
docker tag registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/redis:7.2.3 redis:7.2.3

docker pull registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/openjdk:17
docker tag registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/openjdk:17 openjdk:17

docker pull registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/mysql:8.0
docker tag registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/mysql:8.0 mysql:8.0

docker pull registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/nginx
docker tag registry.cn-hangzhou.aliyuncs.com/onedayxyy-public/nginx nginx





###########################################################启动后端运行环境########################################################
mkdir -p /data/mysql/data
mkdir -p /data/mysql/conf

tee /data/mysql/docker-compose.yml <<EOF
version: '3'
services:
mysql:
image: mysql:8.0
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
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

sleep 10
docker exec mysql bash -c "
cd /
bash init-db.sh
"
docker restart mysql


#######################################楚河汉界#################################################
echo "############启动redis容器##############"
#创建挂载目录
mkdir -p /data/redis

tee /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

tee /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容器##############"
tar xf minio.tar.gz -C /data/
cd /data/minio
docker-compose up -d
docker ps
cd ~

}

deploy_instance(){
###########################################################步骤3:部署服务########################################################
echo -e $RED "###########################################################步骤3:部署服务########################################################" $END
sleep 2

##拷贝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
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……"
echo $new_ip_address

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地址已替换完成。"

##修改前台后台 .env 数据:
#这个是v1.4.2需要单独配置的部分
tee /root/ruyu-blog/blog-frontend/kuailemao-admin/.env.production <<EOF
# 生产环境
# 后端地址
VITE_APP_BASE_URL=http://$new_ip_address
# 代理前缀
VITE_APP_BASE_API=/api
# 前台域名地址
VITE_APP_DOMAIN_NAME_FRONT=
# 名称
VITE_GLOB_APP_TITLE=""
# 是否显示侧边配置按钮
VITE_APP_PROD=true
EOF

#######################################楚河汉界#################################################
echo "############构建镜像并启动服务##############"
##部署后端
cd /root/ruyu-blog/blog-backend
mvn clean
mvn clean package

#重新覆盖下Dockerfile:
tee 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 /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 /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

echo -e $RED "###########################################################ruyu-blog部署结束########################################################" $END
}

pull_softwares
install_env
deploy_instance

注意

ruyu-blog v1.4.x版本相对之前版本部署,有区别得2点如下:

区别1:后端application.yml文件里新增部分代码(已解决)

image-20240812180245508

vim /root/ruyu-blog/blog-backend/src/main/resources/application.yml

……
##自己本次配置
mail:
link:
apply:
# 邮箱审核友链回调地址(如果不开启)apply-notice 则无需在意该配置,随便填写即可
redirect-uri: http://192.168.1.102:8088/link/email/apply
# 是否开启文章邮箱评论提醒
article-email-notice: true
# 是否开启文章邮箱回复提醒
article-reply-notice: false
# 是否开启留言邮箱评论提醒
message-email-notice: false
# 是否开启新的留言提醒
message-new-notice: true
# 是否开启留言回复提醒
message-reply-notice: true
# 是否开启友链申请提醒(可以在邮箱中通过友链)
apply-notice: true
# 是否开启友链审核通知提醒对方
pass-notice: true
mail:
link:
apply:
# 邮箱审核友链回调地址
redirect-uri: http://192.168.1.102:8088/link/email/apply

不添加这部分代码的话,起后端时会报如下错误的:

image-20240812130022820

区别2:前台后端admin的.env里要配置下(登陆报错&无法上传背景图片问题)(已解决)

==问题1:登陆报错问题:==

自己升级到v1.4.2后,后台登陆报错……

其他小伙伴也遇到这个问题哦……

image-20240816211035955

image-20240816211111941

blog配置对比:

1.3.0

image-20240816210923181

1.4.2

image-20240816210846029


admin配置对比:

image-20240816210729782


自己的ruyu-blog admin再配置:(自己的这里填102 ip就好)

image-20240816212509637

cd /root/ruyu-blog/blog-frontend/kuailemao-admin/

vim .env.production

# 生产环境
# 后端地址
VITE_APP_BASE_URL=http://192.168.1.100:8088
# 代理前缀
VITE_APP_BASE_API=/api
# 前台域名地址
VITE_APP_DOMAIN_NAME_FRONT=
# 名称
VITE_GLOB_APP_TITLE=""
# 是否显示侧边配置按钮
VITE_APP_PROD=true



##构建镜像
#重新构建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-v1.4.1-v2-2024.8.16
docker run --name blog-ht -d -p 81:81 blog-ht-v1.4.1-v2-2024.8.16
docker ps

按这个配置后,就能正常登录到后台了。


==问题2:无法上传背景图片问题==

我的报错现象:

40b819ecf8309420ae57d22270c69a4e

d98564d27b00b83ae0d321a1919b3d55

6e03ba06842e3423d92395e08840b77b

  • 之前这个修复过,本次代码也一致的哦

e04efb04c37d75a0c12309de59802bc7

  • 热心同学1(已解决,大佬)🎉

image-20240817165315981

image-20240817075029147

a129ff94dd7d77209e869179632f0297

b6e83428d6e1c2e77833238f32c3916a


  • 自己当前配置

image-20240817075203688

  • 开始测试
vim .env.production 

image-20240817075526544

  • 重新构建,再测试
#重新构建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 build . -t blog-ht-v1.4.2-2024.8.17-no1
docker run --name blog-ht -d -p 81:81 blog-ht-v1.4.2-2024.8.17-no1
docker ps
cd ~
##

image-20240817075950014

  • 清空浏览器缓存后,再次测试

image-20240817080103160

image-20240817081131916

哇哦,欧克了,感谢大佬。😍😍

bug3:关于我页面无法正常显示头像(待解决)

问题现象:about页面无法显示头像。。。

f02b8e0fd8927822c50363fdb3cc7187

61028422556b8cdc997b3a4d0bdca3fb

我浏览器无法打开该图片:

bf7fef6c07d816a3d4aa4248f19dbead

https://image.kuailemao.xyz/blog/websiteInfo/avatar/7fee5695-a0c9-4a39-9b05-f2940474adfb.jpg

但是群里其他小伙伴有的浏览器可以打开图片,(虚机不行),我的手机也能打开图片。

gpt:

image-20240817175741909

待群主修复。自己网站部分,自己是可以配置前端的。(这里仅作记录)

关于我

我的博客主旨:

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

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人主页:

https://onedayxyy.cn

image-20240805214647028

🍀 知识库:

https://wiki.onedayxyy.cn/

image-20240814230415388

🍀 博客:

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

往期推荐

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

我的开源项目:

项目名称我的文档我的demo作者demo
1、玩转Typorahttps://wiki.onedayxyy.cn/docs/typorahttps://wiki.onedayxyy.cn/docs/typorahttps://typoraio.cn/#
2、玩转Docusaurushttps://wiki.onedayxyy.cn/docs/mogai-docusaurushttps://wiki.onedayxyy.cn/https://www.docusaurus.cn/
3、个人主页home3.0https://wiki.onedayxyy.cn/docs/home3.0https://onedayxyy.cn/https://github.com/hsBUPT/hsBUPT.github.io
4、全网最美博客-ruyu-bloghttps://wiki.onedayxyy.cn/docs/ruyu-blog-install-one-keyhttps://blog.onedayxyy.cn/https://www.kuailemao.xyz/
5、家庭相册filesite-iohttps://wiki.onedayxyy.cn/docs/filesite.io-photot-install-fullhttps://photo.onedayxyy.cn/https://demo.jialuoma.cn/

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

image-20240811063938529

  • typora皮肤

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

image-20240518165037517

  • 起始页

https://onedayxyy.cn/

image-20240814230557697

  • 知识库

https://wiki.onedayxyy.cn/

image-20240814230415388

  • 博客

https://blog.onedayxyy.cn/

image-20240803162010305

  • 家庭相册

https://photo.onedayxyy.cn/

image-20240814230625430

最后

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

image-20240817163357830