Cloud Run 教程:零成本搭建自己的 Web 笔记本与文本分享服务
项目简介
源自很喜欢一个项目 minimalist-web-notepad,平时用的也很多
以路径为笔记名称。比如 notebook.com/123 ,任何人访问 123
这个路径,都可以看到相同的内容
123 会以文件,保存在服务器上
输入一个新的路径,就是创建一个新的笔记
但是原项目使用 docker 部署的时候,由于自带一个完整的 php环境 ,500MB+ 的镜像大小
我用 go 重构了一遍,进行了一些优化:
- 系统资源优化:镜像体积 6.6 MB,待机内存 70 KB,峰值内存 < 1 MB(看文本大小)
- 网络带宽优化:自带gzip压缩。压缩后 css + js < 1KB
- 三层安全防御:
①内容大小限制: 拒绝超过100KB的笔记。
②速率限制: 限制单个IP的请求频率。
③存储熔断: 当 notes/ 文件夹总大小超过10MB时,自动锁定服务。 - 添加 api,可以通过 curl 进行增删改查
项目地址:https://github.com/zouzonghao/webnote
claw run 部署:
这个项目,天生适合部署在 claw run 上:cpu、内存需求低、网络流量消耗极小
- Image:sanqi37/webnote:latest
- 端口:8080
- Local Storage —> Mount Path:/app/notes
docker compose 部署:
services:
webnote:
image: sanqi37/webnote:latest
restart: unless-stopped
container_name: webnote_app
ports:
- "8080:8080"
volumes:
- ./notes-data:/app/notes
user: root
environment:
# 所有文件大小限值,默认10240000(10MB)
- MAX_STORAGE_SIZE=10240000
# 单个文件大小限值,默认102400(100KB)
- MAX_CONTENT_SIZE=102400
版权声明:
作者:pddpdd
链接:https://pddpdd.cn/1126.html
文章版权归作者所有,未经允许请勿转载。
THE END