1-部署Docsaururs
两种方式部署
一、GitHubPages
推荐采用这种方式进行部署,较为方便,采用GitHub提供的托管工具Githubpages进行静态页面部署。
GitHub Pages 是由 GitHub 提供的静态网站托管服务。它允许用户直接从他们的 GitHub 存储库托管他们的网站。GitHub Pages 支持多种静态网站生成器,并提供免费的 HTTPS 加密、自定义域和通过 Git 的版本控制。用户还可以使用 Jekyll,一个流行的静态网站生成器,在 GitHub Pages 上构建他们的网站。另外,GitHub Pages 还内置了持续集成和部署支持,使得每次您将更改推送到存储库时都可以轻松更新您的网站。
但是有一个弊端就是,单纯的Githubpages部署,每次添加新的笔记都得重新推送上远程仓库。
1.远程创建仓库
首先就是在远程建立一个仓库,仓库名为username.github.io,其中设置为你个人的用户名。
2.本地连接
打开本地写好的项目终端进行远程连接仓库。
git init
git remote add origin "你的仓库地址"
git add .
git commit -m"提交信息"
git push -u origin main
上述就是将你的代码远程上传到远程仓库了
3.打包部署
本地首先要进行配置,将你的Docsaururs配置文件进行修改,将config配置中的代码段修改
url: 'https://username.github.io',
baseUrl: '/',
改为自己的仓库地址所对应的那个名称就好,这也是部署后的访问地址。
执行
npm run build
git checkout -b gh-pages
xcopy /E/Y build .
rmdir /S /Q build
git add .
git commit -m "Deploy Docusaurus to GitHub Pages"
git push origin gh-pages
上述代码就是将你的build后的代码上传到gh-pages分支上,接下来你只需要在仓库 的setting-> pages->Branch设置为gh-pages分支来作为你的pages读取静态文件的地址即可。 部署成功后,即可通过上述配置文件中的https://username.github.io访问到你的网站。
二、GitHubAction+云服务器部署
1.云服务
自行购买云服务器和域名,然后对域名进行解析,同时在服务器中下载Nginx并且进行配置。 在Nginx配置文件Nginx.conf中对你的域名和端口进行配置。例如
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
server {
listen 端口号 default_server;
listen [::]:端口号 default_server;
root /usr/workspace/RachelNooteBook/usr/workspace/RachelNooteBook/web;
index index.html;
server_name 域名 www.域名;
location / {
proxy_pass http://服务器IP;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
}
通过上述配置好你的Nginx。
2.项目配置Action自动化脚本
在项目根目录下创建文件夹.github/workflows,并且在里面创建nodejs.yml文件,进行自动化部署的配置。
name: FTP Deploy
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: '16.x'
- name: Install FTP client
run: sudo apt-get update && sudo apt-get install -y lftp
- name: Build
run: npm install && npm run build
- name: FTP Deploy
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: 域名
username: ${{ secrets.FTP_USER }} //用户名
password: ${{ secrets.FTP_PWD }} //密码
server-dir: FTP路径
local-dir: build/
其中的secrets.FTP_USER要在github设置中进行配置,添加action的变量,然后设置好你的FTP的用户名和密码即可。同时要在FTP服务器上创建好对应的路径,确保能够让你的文件打包后能够上传部署到FTP服务器上。
接下来创建一个简单的.git-ftp-include文件 加入代码:
!build/
这个是默认让其读取build目录下的静态文件。
通过这样配置,推送到远程后,就会自动化的使用action进行部署到你的服务器中,然后通过你的域名就可以正常访问。