本地部署数字花园
数字花园网站的本地部署方案
为什么要本地部署:因为netlify的免费部署方案是有限制的,我不想这么快把限制用完
另外我可以把网站部署到学校的服务器里,这样校内的我或者同学都可以访问
进一步思考一下,自己弄云服务器,自己搭建的方案
现在阿里云的服务器,学生认证后,可以免费使用一年,可以用来部署自己的网站,所以我也许过段时间会将数字花园部署到阿里云
但是自己部署的话,买云服务器、买域名、备案,又有得折腾了
...a few moment later...
不过现在开始正式将数字花园部署到阿里云了
数字花园网站本地手动部署方案
1. 获取网站源码
有两种方法:
- 通过 Obsidian 的 obsidian-publish 插件将笔记发布到本地(目前没有尝试这个方法)
- 通过 GitHub 部署(推荐):
源码模板的获取:
如果之前用netlify或者vercel部署过,github里面就已经有模板(记得断开netlify的自动部署连接哦)
否则模板要去数字花园官方的github克隆到你的github:git clone https://github.com/oleeskild/digitalgarden
通过 Obsidian 的 obsidian-publish 插件将笔记发布到GitHub,再将源码克隆到本地
git clone https://github.com/czc6666/digitalgarden.git
在笔记修改重新发布后,可以通过`git pull`命令更新本地源码
> 💡 我选择在 WSL 中克隆并操作,因此以下步骤基于 Linux 环境(Windows 操作方法会略有不同)
## 2. 环境准备
### 2.1 安装基础环境
```bash
# 更新包列表
sudo apt update
# 安装 Node.js 和 npm
sudo apt install nodejs npm
2.2 安装 Node.js
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
# 安装并使用 LTS 版本的 Node.js
nvm install --lts
nvm use --lts
3. 项目部署
3.1 安装项目依赖
# 切换到源码目录
cd digitalgarden/
# 清理旧的依赖
rm -rf node_modules package-lock.json
# 安装新的依赖
npm install
npm install 卡住不动怎么办:npm install 卡住不动?这里有7个解决方法助你一臂之力_npm install没反应-CSDN博客
3.2 构建项目
npm run build
3.3 启动http服务器
# 安装 http-server
npm install -g http-server
# 启动本地服务器
http-server dist
用这个命令:http-server dist
,开启的http服务器会在命令行关闭后关闭,用下面3.4里说的pm2开服务器可以实现服务器的后台运行
4. 本地预览
在浏览器中访问 127.0.0.1 即可查看网站。
5. 在笔记更新后:更新本地源码
在笔记修改重新发布后,可以通过git pull
命令更新本地源码
git pull
更新源码后需要重新构建项目和启动http服务器
npm run build
http-server dist
程序自动化实现
原理:连接ssh服务器,执行命令自动化部署
功能:
-
运行后询问输入ssh连接的ip,如直接回车,默认ip是127.0.0.1
-
询问输入端口号,直接回车默认22
-
询问我输入用户名,如直接回车,默认用户名是czc
-
然后询问我输入密码
-
接着询问我是否第一次提交(第一次需要git clone,第二次及以后只需要git pull你说是吧)
- 所以这里询问我是否是第一次提交,输入1就用git clone方法,默认是git pull 方法
-
然后就开始自动部署了
实现的代码:(注意服务器的网络环境能否正常下包和访问github)
原本这里是代码,但是代码有问题,删掉了
注意:
代码执行到这部分后
执行命令:
cd ~/digitalgarden
rm -rf node_modules package-lock.json
npm install
会卡住一段时间
因为npm install
需要较长时间
建议npm换源,会快很多