惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
T
Tor Project blog
T
Threat Research - Cisco Blogs
Microsoft Azure Blog
Microsoft Azure Blog
M
MIT News - Artificial intelligence
V
Vulnerabilities – Threatpost
Project Zero
Project Zero
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Register - Security
The Register - Security
Latest news
Latest news
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Hacker News
The Hacker News
Google DeepMind News
Google DeepMind News
L
LINUX DO - 最新话题
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
T
Tenable Blog
H
Hacker News: Front Page
B
Blog
宝玉的分享
宝玉的分享
C
Check Point Blog
美团技术团队
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
G
GRAHAM CLULEY
Google Online Security Blog
Google Online Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Proofpoint News Feed
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
Hugging Face - Blog
Hugging Face - Blog
Y
Y Combinator Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Scott Helme
Scott Helme
L
Lohrmann on Cybersecurity
量子位
A
About on SuperTechFans
V2EX - 技术
V2EX - 技术
T
The Exploit Database - CXSecurity.com

Hyde Blog

Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog 关于我 关于我 Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog Hyde Blog
Hyde Blog
Hyde · 2025-10-05 · via Hyde Blog

CNB云端构建 ​

环境准备 ​

  • git 环境
  • 云服务器
  • teek 网站环境

创建组织 ​

前往CNB网站,点击右上角登录,登录后点击右上角头像,选择“创建组织”。

1755972905032.png

或者加入 W3C 组织,也是本人加入的组织。欢迎加入联盟:https://cnb.cool/invitations/3QQ0173bdBHzyn5bZQv5iyyAtDB

创建仓库 ​

点击访问,然后点击右上角的+号创建仓库,选择仓库归属仓库名称;公开信息选择私有,然后点击创建

创建令牌 ​

初始化之前先去创建访问令牌,点击前往创建访问令牌,右上角点击添加访问令牌,输入令牌名称,到期时间选择永久,使用范围选择仓库/制品库,然后点击创建

初始仓库 ​

提示

本次按 方式 3:空仓初始化 来初始化自己的本地仓库

bash

git init .
git remote add origin https://cnb.cool/W3C/Hyde/teek-hyde.git
git config --local user.name SeasirHyde
git config --local user.email "2429016980@qq.com" # 请修改为你的邮箱
git config credential.helper store # 保存凭证(凭证会被保存在 ~/.git-credentials 文件中)

推送仓库 ​

由于本地仓库有暂存的更改,需要本地仓库所有的代码推送到 cnb 远程仓库,下面是详细步骤:

  1. 提交暂存的更改到本地仓库

bash

# 提交暂存的更改,-m 后面是提交说明(必填)
git commit -m "描述你的更改内容,例如:修复登录bug,优化首页样式"
  1. 推送本地分支到远程仓库 如果是第一次推送该分支(比如 master 或 main),需要关联远程分支并推送:

bash

# 推送本地当前分支到远程origin仓库,并建立关联
git push -u origin main
  • 如果你用的是 master 分支:git push -u origin master

  • 如果你用的是 main 分支:git push -u origin main

警告

  • 首次推送需输入用户名/密码,用户名(Username)和密码(Token)就是您创建的令牌,后续会自动保存在 ~/.git-credentials。

-仅推荐在 安全环境 下使用(若为公共电脑,建议用 cache 临时存储)。

令牌示例:

bash

令牌名:teek
Git Username:cnb
Token:xxxxxxxxx
  1. 后续推送(已关联分支)

当分支已经和远程关联后,后续推送只需执行:

配置文件 ​

以上代码推送到仓库后,在本地仓库根目录下,创建并编辑如下 2 个文件:

.cnb.yml(可选)env.yaml

yml

# .cnb.yml
$:
  # vscode 事件:专供页面中启动远程开发用
  vscode:
    - runner:
        # 自定义CPU核心数,最大支持64核
        cpus: 64
      docker:
        # 自定义开发环境
        build:
          # 指定构建镜像的 Dockerfile 文件
          dockerfile: .ide/Dockerfile
      services:
        # 声明使用 vscode 服务
        - vscode
        # 声明在容器中支持 docker 命令
        - docker
      stages:
        - name: 环境启动时执行以下命令
          script:
        # 安装pnpm并使用pnpm安装依赖
            - npm install -g pnpm
            - pnpm i
            - pnpm docs:dev

# 云原生构建流程和自动部署
# main改成您实际的分支名称
main:
  push:
    - runner:
        cpus: 16
      services:
        - docker
        - git-clone-yyds
    - imports: https://cnb.cool/W3C/Hyde/secret/-/blob/main/env.yml
      settings:
        user: ${SSH_USER} # SSH用户名(从环境变量获取,避免硬编码敏感信息)
        key: ${SSH_KEY} # SSH私钥(用于免密登录目标服务器,从环境变量获取)
        port: 22 # SSH端口(默认22)
        hosts:
          - 666.666.666.666 # (可选)目标服务器IP(要部署到的服务器地址,实际替换自己的服务器IP)
        source: docs/.vitepress/dist/ # 待同步的本地文件目录(阶段3构建出的静态文件
        target: /root/rsync/teek.seasir.top/dist/ # 目标服务器上的存放路径
        delete: true # 同步时删除目标路径中不存在的文件(确保目标与本地完全一致,避免冗余文件)
      docker:
        image: docker.cnb.cool/znb/images/node:18
        volumes:
          - /data/.cache:copy-on-write #声明式的构建缓存
      stages:
        - name: 构建当前项目
          script: echo -n $(date "+%Y-%m-%d %H:%M")
          exports:
            info: CUSTOM_ENV_DATE_INFO
        - name: 🏠 设置淘宝源
          script: |
            npm config set registry https://registry.npmmirror.com
        - name: 🖨️ 打印环境
          if: |
            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
          script: |
            npm install -g pnpm && node -v && npm -v && yarn -v && pnpm -v
        - name: 💡 安装依赖 
          if: |
            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
          script: |
            pnpm install
        - name: 📦️ 编译项目
          if: |
            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
          script: |
            pnpm docs:build   # VitePress 专用命令    
        - name: 🚚 部署到Pages
          if: |
            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
          image: node:22
          script: npx edgeone pages deploy ./docs/.vitepress/dist --name teek-hyde --token $EDGEONE_PAGES_API_TOKEN
        #./docs/.vitepress/dist---静态打包路径,实际替换为自己的
        #teek-hyde为edgeone的pages名称,实际替换为自己的

        #同步仓库到gitee                  
        - name: sync to gitee
          image: tencentcom/git-sync
          settings:
            branch: master
            auth_type: https
            username: ${GIT_USERNAME}
            password: ${GIT_ACCESS_TOKEN}
            target_url: https://gitee.com/SeasirHyde/teek-hyde.git
            # git_email: 'github-actions[bot]@users.noreply.github.com'


        # 发布通知到钉钉
        - name: 📢 发布通知到钉钉
          image: tencentcom/dingtalk-bot-msg:latest
          settings:
            secret: $SECRET  # 添加钉钉机器人的签名密钥
            webhook: $WEBHOOK  # 填写钉钉机器人的Webhook地址变量
            at: "199********" # 多个用分号(;)分隔
            isAtAll: true
            debug: true # 新增: 是否启用调试模式
            c_type: "markdown" # 支持: text, markdown, link, actionCard, multiActionCard, feedCard
            content: |
              > **🎉 Hyde Blog 又一次发布成功啦!**   
              > **构建时间:** $CUSTOM_ENV_DATE_INFO          
              > **构建id:** $CNB_BUILD_ID  
              > **提交id:** $CNB_COMMIT_SHORT            
              > **构建分支:** $CNB_BRANCH            
              > **提交信息:** $CNB_COMMIT_MESSAGE_TITLE            
              > **提交者:** $CNB_COMMITTER            
              > **仓库地址:** [$CNB_REPO_URL_HTTPS]($CNB_REPO_URL_HTTPS)            
              > **我的网站:** [teek.seasir.top](https://teek.seasir.top/)

yml

#在自己云服务器上生成ssh密钥,将私钥拷贝到env.yaml的SSH_KEY里。

#输入命令:
ssh-keygen

#运行后会出现一系列提示:
#密钥保存路径:默认是 /root/.ssh/id_rsa(私钥)和 /root/.ssh/id_rsa.pub(公钥),直接按回车使用默认路径即可。
#密码短语(passphrase):可选设置(推荐),相当于给私钥再加一层密码保护。如果直接回车则为空(无需额外密码)。

#输入命令:
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #将本地生成的公钥添加到服务器的 "授权列表" 中,允许持有对应私钥的客户端免密码登录。

#查看是否添加成功:
cat /root/.ssh/authorized_keys

# 查看SSH_KEY私钥内容:
cat /root/.ssh/id_rsa

#编辑env.yaml文件内容:
SSH_USER: root     
SSH_KEY: |
    -----BEGIN RSA PRIVATE KEY-----
    MIIEowIBAAKCAQEA1P55C7Hzn15bJlBeIkGuMkMSS2/JBQqe5iCuTGpPdvMSXMr+
    # 省略,这里需要注意SSH密钥格式缩进问题,否则发布制品这个步骤会报错
    2iRkQn/05IoX+MiDcmr1OjwSBXVD7+xR6hLjyiy7SmmEMkFPApw+
    -----END RSA PRIVATE KEY-----

运行验证 ​

  • 以上编辑完成后,提交代码,第一次提交后,就可以看到已经触达流水线了:

bash

git add -A
git commit -m"更新cnb-cool配置,第一次构建测试"
git push