在pai面板上devops部署static site

利用可编程大容量网盘onedrive配合公有云做你的nas及做站 本文关键字:onedrive打造你的网站图床大文件外链床,sync as network,网盘附件床,onemanager http解发 在《免租用云主机将mineportal2做成nas,是个人件也可服务于网站系统》中我们提到将nas和个人网站合一的思路,,在《mineportal – 一个开箱即用的wordpress+owncloud作为存储后端》我们提到用网盘做网站图床甚至all webapp backend storage的思路,在《统一的分布式数据库和文件系统mongodb,及其用于解决aliyu 阅读详情

本文关键字:blog联合,一文多发,blog内容联合。headless ghost cms

前面《在云主机上手动安装腾讯PAI面板》中,我们发现PAI是一个利用git和devops,在仓库的根下放置.pai.yml来达到自动部署+运行APP目的的一种机制,除了没有容器和隔离,其它都这属于CD/CD的思路,下面来实际部署官方的hexo static blog例子,虽然我有点不承认它是serverless的hexo静态网站生成器(tx云函数官方也有一个staticsite版本,稍后会谈到真正的这类产品是headless ghost cms这种)但肯定比普通hexo要方便一点,完成之后的效果就是能作到类似利用git hook部署网站+自动更新(稍后也会谈到它的另外一个效果:可以与其它git仓库,如github,gitee作内容联合)。。

不废话了

安装hexo:

在管理面板中,我们要安装的是这个仓库,https://gitee.com/TencentCloudBase/pai-mate-hello-example-static,这个仓库是个hexo的example site项目,(正常安装后,会生成/data/pai_mate_workspaces/pai-mate-hello-example-static/pai-static-pages.js和/data/pai_mate_workspaces/pai-mate-hello-example-static/ecosystem.config.js,ecosystem.config.js是pm2用的守护脚本,它守护pai-static-pages.js开启3000端口上serving public dir的静态http服务,这个服务没开起来之前,访问与pai安装时的绑定域名会一直502,安装好后,可以访问域名),但是除了这些,它却没有安装好hexo本身(也许官方期待用户手动进服务器安装) 也就少了至关重要的hexo生成网页的作用,查看它的.pai.yml下,没有部署脚本deployScripts:,只有一行static: public(这正是上面二个生成文件生成的语句),---- 无论如何,这个仓库中的.pai.yml不完善。我们来完善补全这个仓库一下:

.pai.yml,注释掉 static: public,另:不知为什么,hexoauto加–watch会与上一条冲突,导致3000频频挂掉,故 --name hexoauto后不加–watch

# static: public
deployScripts:
  start:
    - npm install
    - npm install --unsafe-perm=true --allow-root -g hexo-cli
    - npm audit fix
    - pm2 start -s ecosystem.config.js
    - pm2 start "hexo generate --watch" --name hexoauto
  restart:
    - hexo clean
    - hexo generate

手动在仓库里添加以上二个js文件,pai-static-pages.js:

// This file is auto-generated by PAI-MATE
const handler = require('serve-handler')
const http = require('http')
const server = http.createServer((request, response) => { return handler(request, response, {public: 'public'}) })
const port = +process.env.PORT
server.listen(port, () => { console.log('Running at http://localhost:' + port) })

手动在仓库里添加以上二个js文件,ecosystem.config.js

// This file is auto-generated by PAI-MATE
module.exports = {
  apps : [{
    name: "pai-static-pages",
    script: "./pai-static-pages.js",
      watch: true,
      env: {
        "PORT": 3000,
        "NODE_ENV": "production",
        "NODE_PATH": "/usr/local/node/lib/node_modules",
      }
  }]
}

这样部署后仓库就运行起来了,点管理面板中重启应用能达到最基本的自动部署仓库中的内容和启动静态网页服务的目的。只是,它缺少一个pm2 git clone。依赖手动重启restart处的hexo generate。整个应用处,还是需要一道工序(而理想状态下,内容源git一下应该是唯一的工作)。

内容联合:

曾经我们有网盘联合,内容转存。blog和文章作为一种“内容”,有时也需要联合和一文多发。这类功能应该加到各大笔记和知识库核心功能中,当然也有这样的独立产品如artpub。

上面的git方式联合,只是让仓库和这个静态站之间作内容源联合。这种基于git devops的工具层的东西,在内容联合方面还是有局限的。

在多样内容源联合方案的选择上,还是基于API的好(因为可编程的东西不局限于工具,见《用开发tcpip的方式开发web》),比如那种headless ghost cms content api+JAMstack front-end like hexo的方案就好多了(这也使得hexo这类工具通用BLOG静态生成器上升为通用网站生成器的境界),在“迁移内容”,和”换前端“方面都有很大的自由度(虽然费折腾但是做成工具和产品也一样)。


下文,由于pai是个类似baota panel基于pyenv的python项目管理器,下文探索它的py项目部分,未来讨论利用staticsite和markdown生成整站单页pdf book等课题


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

在这里插入图片描述

static-site-template 静态网站模板 使用TypeScript,HTML,SASS构建静态站点的基本模板。只是我们制作的项目中常用方法和实用程序的汇总。 使用Typescript,Webpack,Babel,GSAP。 包括用于通过代码进行DOM管理的基础结构-页面,部分,各种模块和组件: Lottie动画包装器 画布–作为如何组织画布渲染的示例 标签–管理版块中的标签 SvgMorph –通过GSAP管理svg:path动画 视频–使用可选的占位符管理视频元素的播放 图片和视频延迟加载 基本表单验证和提交 准备用于: 观看动画或互动 根据浏览器的配色方案(深/浅)替换图标图标 自定义光标 自定义滚动 不支持的浏览器的占位符 移动菜单 粘页眉 样式组织–响应式,颜色,版式 其他一些简单的效果(例如线性渐变动画) React性 用于CSS的GEM系统:建立在rem的基础上,允许在使用gem大小时按比例放大或缩小。 立即下载

相关推荐

static-site

static-site

什么是静态网站,有哪些特点

静态网站(Static Website)是指那些页面内容在服务器端固定不变,不随用户请求而动态生成的 Web 应用。它们主要由 HTML 文件组成,可能还包括 CSS 样式表和 JavaScript 脚本,但这些资源都是预先构建好的,并且在每次访问时直接从服务器传输给客户端浏览器,而不涉及任何服务器端处理逻辑或数据库查询。综上所述,静态网站以其简便的架构、高效的性能以及低廉的成本,在众多应用场景中发挥着重要作用。

小赵的博客 2389

staticsite:简单的静态网站生成器

该项目是一个静态站点生成器。 该项目正在开发中。 功能可以随时更改。 没有文档。 ===注释=== 对于页面,URL路径是使用以下规则从文件路径计算得出的: prefix / index.html-> prefix / prefix / name.index.html->前缀/名称 prefix / name.html->前缀/名称/ 操作<%set page =“ path”%>会覆盖上面的映射,但不会更改用于页面查询的路径。

静态网站(博客)生成器Static Site Generators(SSGs)大集合

这是一份静态网站生成器的推荐集合,按开发语言或者平台分类和排序,大家各取所需。如果大家有用什么新的静态网站生成器未在本文章中列出,麻烦在评论中说下,我会不断更新该集合。 Clojure Cryogen- A simple, static, automated CMS shipped as a template on Leiningen, a Clojure build tool.misak...

野猿新一 1436

C++中为什么要引入引用变量?

C++引用机制的设计哲学在于平衡性能与安全性。它解决了指针的三个痛点:语法噪音、空指针风险和语义模糊,同时保持了指针的效率优势。引用必须绑定有效对象且不可重绑定的特性增强了安全性,其值语义语法更直观。尤其在运算符重载和const引用场景中,引用展现了不可替代的优势。本质上,引用是编译器优化的指针实现,体现了C++"零开销抽象"的核心思想——既保持底层性能,又提供高级抽象。这种设计允许开发者根据场景灵活选择指针或引用,反映了C++多范式共存的语言智慧。

教学 & 技术专栏 175

保姆级教程:用ROS2 Humble和Nav2从零搭建一个能自主导航的机器人小车(含SLAM建图与避障)

本文提供了一份详细的保姆级教程,指导如何使用ROS2 Humble和Nav2从零搭建一个具备自主导航功能的机器人小车,包括SLAM建图与避障。教程涵盖了硬件组装、ROS2环境配置、URDF模型创建、SLAM建图实战、Nav2导航栈配置以及系统集成调试等关键步骤,适合机器人开发初学者和进阶开发者。

weixin_30329623的博客 490

史上最全的静态网站生成器Static Site Generators大集合

在以下两篇文章中我们介绍了一些常见的静态网站(博客)生成器,后来发现了一个国外的别人家的网址,整理的更加全面,可以号称是史上最全的Static Site Generators大集合,集合了超过463个项目,这里转载过来介绍给大家 静态网站生成器Static Site Generators(SSGs)推荐 静态网站(博客)生成器Static Site Generators(SSGs)...

野猿新一 5370

对族实例进行任意的矩阵变换,需要什么样的族?

问:一个小问题,想向您请教一下。 能不能实现一个这样的操作:创建了一个常规模型的FamilyInstance,然后知道旋转和平移的矩阵,能否根据变换矩阵更新FamilyInstance的位置,绕任意轴旋转任意角度。 请问什么样的实体才能在revit项目文件中任意旋转?貌似一般的实例只能在XY平面内旋转,并且LocationPoint中只有一个Rotation参数。答:您好,因为Revit里面的构件

我爱Revit —— BIM应用及BIM应用软件解决方案专栏 3628

静态网站(博客)生成器(Static-Site-Generators)

一.介绍 静态网站生成器到底有多少呢?GitHub用户对静态博客生成程序进行了大规模总结,太多了啊,太恐怖,萌新被吓傻了…… GitHub地址: https://github.com/pinceladasdaweb/Static-Site-Generators 我选了jekyll博客, 因为两大代码仓库GitHub(国外)和Coding(国内)都提供免费空间自动构建Jekyll网站! 我的...

http://lioil.win 6401

FPGA实战:手把手教你用Verilog驱动4.3寸RGB触摸屏(附完整代码)

本文详细介绍了如何使用Verilog语言在FPGA上驱动4.3寸RGB触摸屏,包括时序设计、信号交互原理及完整代码实现。通过双计数器引擎设计和参数化模块,开发者可以高效构建800*480分辨率的显示驱动,并解决工程实践中的信号完整性和时序收敛问题。

rice5的博客 703

对称加密中GCM和CBC俩种加密模式的区别

**CBC(Cipher Block Chaining)** 和 **GCM(Galois/Counter Mode)** 是两种常见的对称加密模式。它们的主要区别体现在加密方式、性能和安全性上。

闲人 1109

史上最全的静态网站生成器Static Site Generators大集合(二)

在上一篇文章史上最全的静态网站生成器Static Site Generators大集合中我们介绍了一个集合了超过400个SSG的优秀的网站,站长真的是很用心。今天再介绍另一个网站,叫做StaticGen,是由虚拟主机提供商Netlify维护的,集合了超过250个的项目,也是非常全和用心了,而且可以按照开发语言、模板、开源协议来筛选项目,还未开始搭建自己静态网站或者静态博客的读者们,非常推荐这个网站...

野猿新一 1504

LVI-SAM适配KITTI数据集避坑指南:IMU频率与数据同步问题解析

本文深入解析了将LVI-SAM框架适配KITTI数据集时,在IMU频率与多传感器数据同步方面遇到的核心挑战与解决方案。针对KITTI数据集中sync与extract两种数据包的差异,文章提供了从数据选择、参数调优到时间戳诊断与修复的完整避坑指南,帮助开发者实现稳定高效的SLAM系统部署。

7z8x2c4v6b9的博客 250

利用onemanager配合公有云做站和nas(2):在tcb上装om并使它变身实用做站版

本文关键字:tcb上安装onemanager,onemanger实用做站 在《利用大容量网盘onedrive配合公有云做你的nas及做站》中,我们初步谈到了使用onemanager配合云函数或云主机做站的投入和尝试,前文说到不能在腾讯cloudbase上安装onemanager,但实际上经过尝试发现是可以的: 注意:云函数产品建议使用包月免费或包月套餐尝试。按量如果控制不好,可能会因为代码问题或外部攻击造成高额费用,比如腾讯scf按量下如果免费额度用完,24小时才停机不会立马停,而且它的计费即使你帐号没钱也

minlearn's techrepos 1000

【温室气体】GOSAT 数据产品

【温室气体】GOSAT 数据产品

WW、forever的博客 238

基于哈夫曼编码的图像加密算法matlab仿真

哈夫曼编码是一种常用的无损数据压缩算法,其基本思想是根据字符出现的频率构造一棵哈夫曼树,将出现频率高的字符编码为短码,出现频率低的字符编码为长码,从而实现数据的压缩。在图像加密领域,哈夫曼编码也被广泛应用于图像加密算法中,基于哈夫曼编码的图像加密算法具有加密速度快、加密强度高等优点。基于哈夫曼编码的图像加密算法的基本思路是将待加密的图像分为多个小块,对每个小块进行哈夫曼编码,然后将哈夫曼编码后的结果进行异或运算,最后将异或运算后的结果重新编码,以实现图像加密。具体步骤如下:将待加密的图像分成多个小块。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 263

why js, illustrating webfront dev debug essentials in raw js/api,及js获取azure AAD refresh token for od

本文关键字:why xxx lang series,使用pure js获取微软azure AAD refresh token for onedrive,安装chrome扩展禁用浏览器跨域保护 在前面我们讲到了《我为什么选择rust》,《why elmlang:最简最安全的full ola stack的终身webappdev语言选型》,这些都是标题中已经讲明的why xxx lang series,但其实,在本书所有提到语言选型,其它选型的相关章节中

minlearn's techrepos 861

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

利用fodi给onemanager前后端分离(1):将fodi py后端安装在腾讯免费cloudbase

__本文关键字:将fodi py后端安装在腾讯cloudbase__ 在前面《利用onemanager配合公有云做站和nas》中,我们提到onemanager是个可以装在腾讯云函数API网关或cloudbase上作为云函数的产品,onemanager php backend它本身也是调用onedrive的api,在前面《owncloud微博式记事本》《wp2oc fileshare》中我们也提到这种web api的修改定制。最近的《打造小程序版本公号和自托管的公号:miniblog》也是这种例子,后端cl

minlearn's techrepos 779

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

一种设想:打造小程序版本公号和自托管的公号,将你的网站/blog做到微信/微信公号里且与PC端合一

本文关键字:打造小程序版本公号,打造微网站版本公号,,从私有云到私流,微信移动生态,微信开发者号注册,将你的网站做到微信,微信blog微网站/小程序,将认证后端做在网盘中,,将你的网站小程序化weapp化,wxamp化,cloudfunctions与miniprogram的绝配 在《mineportal:个人云帐号云资源利用好习惯及实现》中我们提到,id和用户身份是统一产品和运营生态的开始,而opensocial id之类的sns不争气统一不了标准。手机上也没有google id,appleid,移动手机号

minlearn's techrepos 580

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

利用fodi给onemanager前后端分离(2):测试json

本文关键字:利用onemanager给fodi做php后端 在前面《利用fodi给onemanager前后端分离1》中我们介绍了在cloudbase上安装fodi py后端的方法,这里继续尝试将om作为fodi的后端也尝试弄上。 这里要说个历史,fodi的作者也是参考了onemanager的,精简的onemanager流程就是fodi backend那些(https://github.com/qkqpttgf/OneDrive_SCF即是那个最简的php后端)。别看onemanager比fodi体量比fod

minlearn's techrepos 533

打造小程序版本公号和自托管的公号(3):为miniblog接入markdown和增强的一物一码

本文关键字:微信一物一码,一文一码,小程序码转为普通二维码 在《打造小程序版本公号和自托管的公号2》中我们讲到了miniblog的初级搭建和定制,这里继续: 加入markdown编辑 前面说到miniblog的8个函数中,前6个函数可以整合,剩下synservice,synctoken不必整合。可以丢弃或保留(保留使用它的意义不甚大,这种同步结果和过程比较曲折,体验不好,要使用它,记得syncservice/index.js/function syncWechatPosts(isUpdate) 中应该 le

minlearn's techrepos 501

在openfaas面板上安装onemanager

本文关键字:openfaas onemanager 在前面《在云主机上手动安装腾讯PAI面板》《利用openfaas faasd在你的云主机上部署function serverless面板》中,我们介绍了二种虚拟主机/容器后端,它们都可以搭配nginx作为前端,形成webstack,和通用服务器应用栈,而且都支持多语言,支持devops部署。其中,前者用git作devops,后者用容器(faasd中用containerd),后者的devops更全面:要知道,现在的devops构建基本是用docker完成的,

minlearn's techrepos 479

在openfaas面板上安装onemanager(2)

本文关键字:nginx仅监听ipv4,disabling IPv6 name/address support: Address family not supported by protocol 在前面《在openfaas面板上安装onemanager》中我们讲到自建云函数将om放到自己服务器的方法,但是遗留了一些问题,1,经常会有“error finding function onemanagerforopenfaas.: Get http://faasd-provider:8081/system/func

minlearn's techrepos 429

一种设想:在网盘里coding,debuging,运行linux rootfs作全面devops及一种基于分离服务为api的融合appstack新分布式开发设想

本文关键字:Jupyter visual debug,基于网盘backend的ide和snippter空间,debug driven programming,make chrome like visual debug for every lanaguage,make every language a dsl,c系语言学习最好的时代 2020版的macbook要迁移到arm了。这说明,云时代去终端的thin化努力在继续,未来我们的PC和手机会统一(请注意我指的并非是笔记本平板一体机,变形本这些玩意层面上的意思

minlearn's techrepos 376

打造小程序版本公号和自托管的公号(2):利用mini-blog将你的blog做到微信

打造小程序版本公号和自托管的公号(2):利用mini-blog将你的blog做到微信 本文关键字:合并多个cloudfuncions为一个 在《打造小程序版本公号和自托管的公号(1)》中,我们谈到了建立blog小程序的一些理论基础和必要条件,现在,我们选择一个这类小程序的源码,来实践一下: 我们选择的是https://github.com/CavinCao/mini-blog/commit/7921a126122f4a980e1270475aeb22bb2d50c3d0,积分功能v2版本后面的一个修复版,为

minlearn's techrepos 355
上一篇: 在云主机上手动安装腾讯PAI面板
下一篇: 利用openfaas faasd在你的云主机上部署function serverless面板
Minlearn
博客等级 码龄18年 20粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值