我用的是2核2G阿里云服务器Ubuntu系统
准备一台任意操作系统的VPS云服务器,不同系统的安装步骤大同小异,以下我用
linux-Ubuntu-20.04 主机为例一、NotionNext代码下载
- 安装Git
git是一个代码托管工具,你可以用它来下载github上的代码。
- 从Github仓库拉取代码
二、运行项目
可以使用Docker运行,或者系统安装NodeJS环境运行,出于兼容性和稳定性的考虑,这里推荐使用Docker方案运行。
1. NotionNext代码下载
- 安装Docker最新版
- 验证安装
- 进入克隆后的项目目录
cd 仓库名字
2. 运行项目
1. Docker运行
- 创建
.env.local用于存储环境变量 例如
- 创建Dockfile (注意修改主题名)
- 开始构建
以下命令将读取当前NotionNext文件夹下的Dockerfile文件,按照文件内容下载Nodejs环境,并将NotionNext代码包括blog.config.js等配置打包进环境中,成为一个可执行的Docker镜像,并且镜像名为my-app。
根据服务器网络环境,首次打包过程可能要十分钟左右。
- 使用docker运行项目
- 重启docker项目
- 更新项目
拉取最新代码,或者修改对应的配置文件后,执行以下命令重新打包
2. 系统中运行(本地安装NodeJS环境)
(一)准备工作:安装基础依赖(解决 canvas 编译失败)
NotionNext 依赖
canvas 包,需先安装系统底层库,否则会编译报错:bash
(二)安装 NVM 与 NodeJS(版本兼容关键)
2. 踩坑修复:Node 版本不兼容
- 问题:NotionNext 4.9.2 要求 Node ≥20,官方文档推荐的 v16.14.0 会报版本错误
- 解决方案:直接安装 v20+ 版本,无需纠结官方旧版本推荐
(三)安装 Yarn
1. 官方流程
2. 踩坑修复:系统自带 yarn 冲突
- 问题:执行
yarn报错ERROR: There are no scenarios; must have at least one.,原因是系统自带cmdtest包中的伪 yarn 与 Node 版 yarn 冲突
- 解决方案:
(四)部署 NotionNext 核心流程
1. 安装项目依赖
- 注意:依赖安装时的 peer dependency 警告(如 react 版本不匹配)无需处理,不影响运行
4. 项目编译(关键步骤,不可跳过)
bash
- 成功标志:终端显示
✓ Export successful或✓ Build completed
5. 启动项目
bash
6. 踩坑修复 1:3000 端口被占用
- 问题:启动报错
EADDRINUSE: address already in use :::3000,用户服务器中 Docker 进程占用 3000 端口
- 解决方案:
7. 踩坑修复 2:缺少生产构建文件
- 问题:启动报错
Could not find a production build in the '.next' directory
- 原因:未执行
yarn build编译项目,Next.js 生产服务器需要编译后的产物
- 解决方案:先执行
yarn build,再执行yarn start
(五)域名绑定:mcoi.top → 服务器 IP:3000
1. DNS 解析配置(域名服务商控制台)
添加 2 条 A 记录,让域名指向服务器 IP
39.102.121.199:记录类型 | 主机记录 | 记录值 | TTL | 备注 |
A | @ | 39.102.121.199 | 10 分钟 | 主域名:mcoi.top |
A | www | 39.102.121.199 | 10 分钟 | 子域名:www.mcoi.top |
- 验证:
ping mcoi.top能 ping 通服务器 IP 即生效
2. 安装并配置 Nginx 反向代理(如果直接在80端口开启了容器,就不需要此步骤)
粘贴以下配置(自动转发 80/443 端口到 3000):
启用配置并重启 Nginx:
到这一步,已经可以使用公网
http://你的域名来访问网页了。如果希望使用https那么就需要下面的步骤3. 配置 HTTPS 证书(Certbot 自动申请)
# 安装 Certbot 和 Nginx 插件
sudo apt install -y certbot python3-certbot-nginx
# 自动申请证书并配置 Nginx
sudo certbot --nginx -d mcoi.top -d www.mcoi.top也可以使用阿里云进行配置。
- 交互选择:输入邮箱 → 同意条款 → 拒绝共享邮箱 → 选择 2(强制 HTTPS 跳转)
- 成功标志:终端显示
Congratulations!,证书有效期 90 天(自动续期)
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:L_Z_J
- 链接:https://www.mcoi.top/article/Post-Local-deployment-NotionNext
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。









