之前我是用时gitea + drone的方式自动部署博客网站,后来因为远程服务器打包有点慢,改成本地使用脚本部署的方式了。
步骤
1.将以下脚本复制到代码根目录中,命名为:deploy.sh
。
1#!/bin/bash2
3npm run build # 打包网站4
5# 本地dist目录的路径6LOCAL_DIR="./dist"7
8# 打包后的文件名9TAR_FILE="dist.tar.gz"10
11# 远程服务器的IP地址或主机名[需要修改]12SERVER="159.75.81.xxx"13
14# 远程服务器的用户名[需要修改]15USERNAME="cirry"12 collapsed lines
16
17# 远程服务器的目标路径[需要修改]18REMOTE_DIR="/home/astro/blog"19
20# 打包本地dist目录21tar -zcvf $TAR_FILE $LOCAL_DIR22
23# 上传打包后的文件到远程服务器24scp $TAR_FILE $USERNAME@$SERVER:$REMOTE_DIR25
26# 在远程服务器上解压缩文件并删除压缩包27ssh $USERNAME@$SERVER "cd $REMOTE_DIR; rm -rf $REMOTE_DIR/dist;tar -zxvf $TAR_FILE; rm $TAR_FILE"
2.在vscode中开启命令行,赋予执行权限chmod +x ./deploy.sh
。
3.输入./deploy.sh
就可以自动部署到服务器中了。
4.然后代理/home/astro/blog/dist
目录为博客网站就可以了,这里以Caddy举例。
在Caddy中的Caddyfile
配置方式应如下:
1cirry.cn {2 root * /home/astro/blog/dist3 file_server4}
提示:在使用脚本连接服务器的时候会提示需要输入密码,可以提前设置ssh无密登录,可以参考这篇文章sshd连接设置免密登陆。