快速启动 http 站点

以下是 Python 内置 HTTP 服务器的几种常用启动方式:

  1. 默认端口启动(8000):
1
python -m http.server
阅读更多

懒猫微服开发篇(四):懒猫微服如何使用 OpenID Connect (OIDC)?(上)

OpenID Connect(OIDC)是一个基于 OAuth 2.0 的身份认证协议,允许用户使用一个账号(如 Google、微信、Microsoft 账号)登录多个不同的网站或应用,而无需重复注册。我们经常把他和OAuth 2.0 混为一谈。

它主要用于 身份认证(Authentication),而 OAuth 2.0 主要用于 授权(Authorization)。简单来说:

  • OAuth 2.0 → 让应用能访问你的数据(如获取微信头像),还要自己做用户管理。
  • OIDC → 让应用能确认“你是谁”(如用微信账号登录)

下面以我的懒猫 ENV 查看器为例,来讲解这个登录流程。

当你在应用处点击登录就会重定向到登录中心,我们通常管这个叫做身份提供商(IDP),如果是其他的软件有可能是 “使用 Google 登录”“微信登录”

阅读更多

懒猫微服开发篇(三):如何将已有 Docker Compose 应用移植到懒猫微服

本文延续前两篇,演示如何把一个已经在本地运行良好的 Docker Compose 应用打包并上架到懒猫微服应用商店。以 Milvus 为例,逐步拆解 Manifest 配置、路由映射、数据卷绑定以及镜像加速等关键环节,帮助大家快速完成移植。

1. 目录结构与核心文件

在懒猫微服中,一个最小可用的应用包仅需两个文件:

文件 作用
lzc-build.yml 描述打包流程及应用图标。简单应用只需指定 icon 即可。
lzc-manifest.yml 定义应用元数据与服务编排,是移植的重点。

本文主要关注 lzc-manifest.yml 的编写。

2. lzc-manifest.yml 字段逐一解析

现在有了懒猫应用查看器很方便,我们以商店里的 Milvus 的示例 Manifest 为例,并附带注释说明。

阅读更多

懒猫微服开发篇(二):远程调试之 Devshell

我们上一篇讲述了如何打包上架 APP,这期我们就来看如何远程调试即将上架的 APP。

简单来讲,这个 devshell 其实就是在微服上打开了一个虚拟机环境,然后我们可以进去里面测试我们的命令。非要说技术实现,那就是 docker exec 了。只不过是做成了本地和微服之间同步的样子。

输入微服的名字/v2/_catalog,可以看到微服里面 Docker 仓库存放的镜像,debug.bridge 开头的就是 devshell 的 image。

1
2
3
4
5
6
7
{
"repositories": [
"debug.bridge/231ee20d4e4d8edbd2004e7609fd9c15",
"debug.bridge/ddc6dbf609125b7bd2c0efb0ed4254d1",
"helloworld"
]
}

在 lzc-build.yml 里定义了 devshell 的配置,这个的意思是就是安装 node 和 python 的环境,设置国内源,然后讲根目录转发到 5173,这个是 vue 的端口。所以我们可以推断,这个是一个 Vue+python 的全栈项目,所以我们可以开两个终端来进入 devshell,分别调试前后端。

阅读更多

懒猫微服开发篇(一):懒猫微服全栈上架指南,一步打包,一键发布

懒猫应用离不开社区的力量,有了各位社区贡献者的支持让懒猫商店的应用越来越丰富。下面示范如何把自己的全栈应用上架到懒猫微服。

官网给出的示例里只有 3 个必备文件lzc-build.ymllzc-icon.pnglzc-manifest.yml

示例目录结构

  • **lzc-icon.png**:应用图标,必须为  PNG。
  • **lzc-build.yml**:定义打包脚本、输出路径与图标路径。
  • **lzc-manifest.yml**:应用清单,描述路由规则等。
阅读更多

懒猫微服开发篇(零):上架应用需要哪些知识

懒猫微服的可玩性在于可以让开发人员放开手脚来做一些事情,等于是提供了一个可靠的基础设施。那么理所当然我们可以把开源的知识应用到上面,比如开发或者移植应用,或者干脆部署一些好玩的东西。这在传统 NAS 上实现起来很困难,甚至都没有包管理工具。

我们看一看开发懒猫应用,需要什么样的知识?

那么,开发懒猫微服的应用需要掌握哪些技能呢?

NPM

懒猫微服的 CLI 本质上是一个通过 NPM 全局安装的工具包,因此掌握一些基本的 NPM 使用方法是必要的。

1
npm install -g @lazycatcloud/lzc-cli
阅读更多

懒猫微服故事篇(一):服务器宕机之后,我和前端靠懒猫微服结对编程

故事篇分享我和懒猫微服的方方面面,这里没有高深的技术,也没有过多的讲解。我始终坚信着技术是服务于生活,因为它能够给我们带来小确幸。更多的时候,我们追求技术,有时候为了兴趣,有时候为了心目中那小小的执念。慢慢在这个过程中会成为别人眼中的哆啦 A 梦。懒猫微服是一个百宝箱,我们能拿出千变万化的道具。事情会过去,但是感动和记忆会留下,我们可以随时追忆。

和前端同学约好晚上一起过一遍 API,主要是确认 Swagger 上的接口和字段设置。我事先把后端代码、API 和 Swagger 文档都部署在服务器上,让他先通过浏览器简单预览一遍,然后再开始写前端代码,这样能提前避免前后端格式对不上的问题。

准备开始之前,结果他突然说:‘你的 Swagger 打不开了。我登陆到管理控制台看了下,果然和之前部署 Dify 一样的问题,telnet 端口和 Ping 都正常,但是 SSH 和 Web 应用全都访问不了了。从基本监控俩看,CPU 和磁盘也没什么问题。大概率又是 OOM 了。

image-20250522074447237

DDL 赶在眼前,得赶紧让他连到我的服务器或者开发机才好。第一个想到的是端口转发,把服务映射到公网上去,一方面调试的时候属于明文传输,在互联网上很容易被监听,篡改报文。另一方面,家里的公网 IP 经常出问题,总有一阵子会封禁所有的端口,所以最后采取了异地组网的方式。

我和他说,我在我的 NAS 上给你开一个账户,然后你试试来访问我的 Macbook 上的服务。你去下载一个懒猫微服,下载地址是https://lazycat.cloud/download,然后扫描我给你的二维码,这样就可以访问我的NAS了。(回看这段感觉有点像电信诈骗哈哈,感谢前端同学的信任)

阅读更多

从 Flask 项目打包为多平台 Docker 镜像并上传 Docker Hub(含 GitHub Actions

🧱 1. 创建一个基础 Flask 项目

项目结构:

flask-demo/
├── app.py
├── requirements.txt
├── Dockerfile
├── start.sh
└── .github/
  └── workflows/
      └── docker.yml

app.py

from flask import Flask
app = Flask(name)

@app.route(‘/‘)
def hello():
   return “Hello from multi-arch Flask Docker in production mode!”

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×