Lazy loaded image
云服务器工具配置与调试
📘在本地阿里云服务器ESC上安装部署NotionNext
字数 2395阅读时长 6 分钟
2025-11-12
2025-11-20
😀
我用的是2核2G阿里云服务器Ubuntu系统
💡
准备一台任意操作系统的VPS云服务器,不同系统的安装步骤大同小异,以下我用 linux-Ubuntu-20.04 主机为例

一、NotionNext代码下载

  1. 安装Git
    1. 💡
      git是一个代码托管工具,你可以用它来下载github上的代码。
  1. 从Github仓库拉取代码

    二、运行项目

    可以使用Docker运行,或者系统安装NodeJS环境运行,出于兼容性和稳定性的考虑,这里推荐使用Docker方案运行。

    1. NotionNext代码下载

    1. 安装Docker最新版
      1. 验证安装
        1. 进入克隆后的项目目录 cd 仓库名字

        2. 运行项目

        1. Docker运行

        1. 创建.env.local 用于存储环境变量 例如
          1. 创建Dockfile (注意修改主题名)
            1. 开始构建
            以下命令将读取当前NotionNext文件夹下的Dockerfile文件,按照文件内容下载Nodejs环境,并将NotionNext代码包括blog.config.js等配置打包进环境中,成为一个可执行的Docker镜像,并且镜像名为my-app。
            根据服务器网络环境,首次打包过程可能要十分钟左右。
            1. 使用docker运行项目
              1. 重启docker项目
                1. 更新项目
                  1. 拉取最新代码,或者修改对应的配置文件后,执行以下命令重新打包

                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安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
                上一篇
                刷题笔记
                下一篇
                Linux 服务器 vscode - server 手动部署与 VSCode 密钥连接教程

                评论
                Loading...