Mutagen使用技巧

Mutagen 是一个高性能文件同步 + 网络转发工具。和 rsync、scp 不同,它的同步是持久的、双向的、实时的,网络断开会自动重连,不需要人工干预。本文面向开发者和 Docker 用户,覆盖三种传输层的实际使用技巧。整理 By claude 核心概念:两个能力,三种传输 Mutagen 做两件事: 文件同步(mutagen sync):在两个端点之间实时同步目录,支持双向、单向多种模式,算法基于 rsync 的差异传输,只传变化的部分。 网络转发(mutagen forward):在两个端点之间建立持久的网络隧道,支持 TCP、Unix socket、Windows Named Pipe。 这两件事都支持三种传输层,可以任意搭配: 传输层 适用场景 Local 本机两个路径之间,或本机作为某端 SSH 远程 Linux/Mac 服务器,复用 OpenSSH Docker 本地或远程的容器,复用 docker exec 两端可以是不同传输层的任意组合——比如左边是本地路径,右边是远程容器。 安装与启动 # macOS brew install mutagen-io/mutagen/mutagen # Linux / Windows # 下载二进制:https://github.com/mutagen-io/mutagen/releases # aur 使用 pacman -S mutagen.io-bin # 启动守护进程(后台常驻,重启后自动恢复会话) mutagen daemon start 一、Local 传输 Local 是最简单的传输层,直接用本地文件路径和网络地址。虽然看起来平淡,但有几个实用场景不容忽视。 URL 格式 同步用本地路径(绝对或相对都行),转发用网络端点: # 同步 ....

在Dokploy中通过Cloudflare Tunnel发布应用

通过 Cloudflare Tunnel,你可以不需要公网 IP、不需要在路由器/防火墙开启 80 或 443 端口,就能安全地将 Dokploy 上的应用发布到互联网。 核心流程图 用户 -> Cloudflare 域名 (HTTPS) -> Cloudflare 隧道 -> Docker 内部网络 (HTTP) -> 你的应用容器 第一步:在 Cloudflare 创建隧道 (Tunnel) 登录 Cloudflare Zero Trust。 进入 Networks -> Tunnels -> Create a Tunnel。 选择 Cloudflared,起个名字(如 my-server)。 在安装页面,找到 Connector Token(那一长串字符串),复制备用。 第二步:在 Dokploy 中部署隧道服务 在 Dokploy 中新建一个 Compose 服务(建议命名为 cloudflare-tunnel),使用以下配置: services: cloudflared: image: 'docker.1ms.run/cloudflare/cloudflared:latest' environment: - 'TUNNEL_TOKEN=你的TOKEN' # 建议在 Environment 变量中设置 networks: - dokploy-network # 必须加入此网络 restart: unless-stopped command: ["tunnel", "--no-autoupdate", "run"] networks: dokploy-network: external: true 第三步:部署应用 (以 Excalidraw 为例) 部署应用时,务必确保它与隧道在同一个 Docker 网络中,以便隧道能通过“服务名”找到它。...

一些docker和k8s的笔记

常见的项目Dockerfile golang项目 # 构建阶段 FROM golang:1.23 AS builder # 设置工作目录, WORKDIR /app # 复制go.mod和go.sum文件 COPY go.mod go.sum ./ # 设置goproxy RUN go env -w GOPROXY='https://goproxy.io,https://goproxy.cn,direct' # 下载依赖 RUN go mod download # 复制源代码 COPY . . # 构建应用 RUN CGO_ENABLED=0 GOOS=linux go build -o server . # 运行阶段 FROM alpine:latest # 安装ca-certificates以支持HTTPS, RUN apk --no-cache add ca-certificates WORKDIR /root/ # 从构建阶段复制编译好的二进制文件 COPY --from=builder /app/server . # 暴露端口(如果您的应用监听某个端口) EXPOSE 8080 # 运行应用 CMD ["....