“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
Traefik
Traefik — 一个云原生反向代理和负载均衡器,自动发现服务并动态配置路由。
Traefik 是我这两年用得最顺手的网络工具,没有之一。如果你还在手动写 Nginx 配置、每次改个端口都要 reload 一遍,那你真的该试试它。这玩意儿最骚的地方在于——它压根不需要你手动改配置文件,只要你的服务一启动,Traefik 自己就感知到了,然后自动把路由、证书、负载均衡全搞定。
它到底能干嘛?
说白了,Traefik 是一个反向代理 + 负载均衡器,但它跟 Nginx、HAProxy 那种传统选手最大的区别是:动态配置。传统代理你得写好 upstream、location,改完还得 reload;Traefik 直接监听 Docker、Kubernetes、Consul 这些后端,服务一上线,路由自动生成,证书自动申请(Let‘s Encrypt),连 HTTPS 都给你自动续期。
它解决的核心痛点就是微服务架构下的路由管理混乱。比如你 Docker 里跑了 10 个 Web 服务,每个端口都不一样,手动维护 Nginx 的 upstream 列表简直想死。Traefik 会自动发现这些容器,根据你打的标签(Label)或者注解(Annotation)来生成路由规则,你只需要告诉它“哪个域名对应哪个容器”就行。
另外,它原生支持TCP、UDP、HTTP/2、gRPC、WebSocket,几乎覆盖所有场景。而且自带一个漂亮的 Web 面板,实时展示所有路由、服务、负载均衡状态,调试的时候爽到飞起。
下载方式
官方下载链接:https://traefik.io/download/
如果你想直接拿二进制文件,GitHub Release 页面也有:https://github.com/traefik/traefik/releases
我建议直接用 Docker 镜像,因为 Traefik 本身就是为容器环境设计的。Docker Hub 地址:https://hub.docker.com/_/traefik
安装方法
1. 直接二进制安装(Linux/macOS)
下载对应平台的二进制文件,扔到 /usr/local/bin 就行:
# Linux amd64
wget https://github.com/traefik/traefik/releases/download/v3.0.0/traefik_v3.0.0_linux_amd64.tar.gz
tar -xzf traefik_v3.0.0_linux_amd64.tar.gz
sudo mv traefik /usr/local/bin/
traefik version
2. Docker 安装(推荐)
这是最常用的方式,一行命令启动:
docker run -d --name traefik \
-p 80:80 \
-p 443:443 \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:v3.0
注意那个 -v /var/run/docker.sock,这是 Traefik 能自动发现 Docker 容器的关键——它通过 Docker Socket 实时监听容器变化。
3. Docker Compose 安装
创建 docker-compose.yml:
version: '3'
services:
traefik:
image: traefik:v3.0
container_name: traefik
ports:
- "80:80"
- "443:443"
- "8080:8080" # 管理面板
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.yml:/traefik.yml # 配置文件
- ./acme.json:/acme.json # Let's Encrypt 证书存储
networks:
- web
networks:
web:
external: true
基础使用教程
第一步:写个最简单的配置文件
在 traefik.yml 里写:
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false # 默认不暴露,需要手动加标签
api:
dashboard: true
insecure: true # 生产环境别这么干,这里演示用
启动后访问 http://localhost:8080 就能看到 Traefik 面板。
第二步:用 Docker 标签配置服务
假设你有一个 Web 应用容器,叫 myapp,想通过 app.example.com 访问。启动时加上标签:
docker run -d --name myapp \
--label "traefik.enable=true" \
--label "traefik.http.routers.myapp.rule=Host(\`app.example.com\`)" \
--label "traefik.http.services.myapp.loadbalancer.server.port=3000" \
myapp:latest
Traefik 监听到这个容器启动后,会自动创建一条路由:当请求 app.example.com 时,转发到该容器的 3000 端口。
如果你用 Docker Compose,标签写在 labels 字段里:
services:
myapp:
image: myapp:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.myapp.rule=Host(\`app.example.com\`)"
- "traefik.http.services.myapp.loadbalancer.server.port=3000"
第三步:配置 HTTPS(自动证书)
Traefik 最爽的功能之一:自动从 Let's Encrypt 申请证书。在 traefik.yml 里加:
certificatesResolvers:
letsencrypt:
acme:
email: your-email@example.com
storage: acme.json
httpChallenge:
entryPoint: web
然后容器标签里指定使用这个证书解析器:
labels:
- "traefik.http.routers.myapp.tls=true"
- "traefik.http.routers.myapp.tls.certresolver=letsencrypt"
第一次访问时,Traefik 会自动申请证书,以后自动续期,全程无感。
进阶技巧
1. 中间件(Middleware)实现限流、重定向、认证
Traefik 的中间件概念非常强大,像流水线一样处理请求。比如限制某个路由的访问频率:
labels:
- "traefik.http.middlewares.limit-10.ratelimit.average=10"
- "traefik.http.middlewares.limit-10.ratelimit.burst=20"
- "traefik.http.routers.myapp.middlewares=limit-10"
或者把 HTTP 自动重定向到 HTTPS:
labels:
- "traefik.http.middlewares.redirect-https.redirectscheme.scheme=https"
- "traefik.http.routers.myapp.middlewares=redirect-https"
2. 路径前缀剥离
如果你的服务跑在 /api 路径下,但容器里实际是根路径,可以加个中间件去掉前缀:
labels:
- "traefik.http.middlewares.strip-api.stripprefix.prefixes=/api"
- "traefik.http.routers.myapp.middlewares=strip-api"
- "traefik.http.routers.myapp.rule=Host(\`api.example.com\`) && PathPrefix(\`/api\`)"
3. 灰度发布(金丝雀发布)
通过权重分配流量到不同版本的服务:
labels:
- "traefik.http.services.myapp-v1.loadbalancer.server.port=3000"
- "traefik.http.services.myapp-v2.loadbalancer.server.port=3001"
- "traefik.http.services.myapp.loadbalancer.server.scheme=http"
- "traefik.http.services.myapp.loadbalancer.server.weight=80%"
- "traefik.http.services.myapp.loadbalancer.server.weight=20%"
4. 使用 File Provider 管理复杂路由
如果你不想用 Docker 标签(或者服务不在 Docker 里),可以用文件配置:
providers:
file:
filename: /etc/traefik/dynamic.yml
然后 dynamic.yml 里写:
http:
routers:
myapp:
rule: "Host(`app.example.com`)"
service: myapp-service
tls: {}
services:
myapp-service:
loadBalancer:
servers:
- url: "http://192.168.1.10:3000"
- url: "http://192.168.1.11:3000"
5. 监控和指标
Traefik 原生支持 Prometheus 指标,配置一下就能集成:
metrics:
prometheus:
addEntryPointsLabels: true
addServicesLabels: true
然后 Prometheus 抓取 http://localhost:8080/metrics 即可。
总结
Traefik 最大的魅力在于让反向代理变得“无感”。你不需要再手动维护一堆配置文件,只要把服务跑起来,贴上标签,一切自动完成。对于 Docker 重度用户、Kubernetes 玩家,或者任何微服务架构,它都是提升效率的神器。
当然,它也不是万能的——如果你的场景极其简单(就一个静态站点),Nginx 可能更轻量。但但凡你的服务数量超过 3 个、需要动态发现、或者想自动搞 HTTPS,Traefik 绝对值得一试。
最后提醒一句:生产环境记得关掉 api.insecure,用 HTTP Basic Auth 或者 OAuth 保护你的管理面板。别像我第一次一样,裸奔上生产,第二天发现面板被爬虫扫了个遍……😅