我把最近发布的 localsend CLI 做成了容器
LocalSend 最近发布了官方 CLI(纯 TUI 的 headless 版,当前最新 v1.18.0),我这几天折腾了下,把它装进了 podman 容器,作为 NAS 上的常驻文件接收端。配对后,手机/电脑往局域网里的设备发消息只需要轻轻一点,收到的文件直接落盘。
项目地址: [github.com/100pangci/localsend-cli-container](http://github.com/100pangci/localsend-cli-container)
## 特性:
### 1. host 网络直通
localsend 发现设备靠 UDP 组播,必须走 host 网络,就不用网桥了。
### 2. 一次配对,永久自动接收
新设备第一次发文件时,需要输入:`podman attach localsend`(docker 的话 podman 改成 docker)挂上 TUI,手机发文件,然后按个 `P`,之后这台设备的文件全自动接受。收到的文件落到 `.env` 里 `LOCALSEND_DESTINATION` 指定的目录。
### 3. 配置和身份全持久化
`config.toml`、`identity.pem`、`paired-v2.json` 都挂载到宿主目录,设备身份和配对列表持久存在。alias 不配置时默认是容器主机名,可以在 `config.toml` 里改成自己想要的(比如 `localsend-nas`),其他设备就能按这个名字搜到。
### 4. 自动更新
[`build.sh`](http://build.sh/) 自动查最新 release,有新版本就重建镜像 + 重建容器,配了个定时器每周一凌晨检查,基本不用管。
## 怎么使用:
```bash
git clone https://github.com/100pangci/localsend-cli-container.git
cp .env.example .env
# 然后将.env 里面的地址编辑成自己想要的地址
bash build.sh # 构建 + 启动
systemctl --user enable --now localsend-update.timer # 每周自动更新
```
一些坑也踩过了:
- 只写了 podman 版(podman compose / podman attach),Docker 要用的话 README 里列了 4 处改动,主要就是删掉 `userns_mode:keep-id` 那行,适配成本很低。
- `keep-id` 用户命名空间 + bind mount 的权限问题,折腾了一会儿才理清。
- 版本号通过 `--build-arg` 传,不在 Dockerfile 里硬编码,更新镜像不用改任何文件。
GitHub Actions 也加了语法检查的 workflow。
---
原文链接:[点击查看](https://www.v2ex.com/t/1233929)
项目地址: [github.com/100pangci/localsend-cli-container](http://github.com/100pangci/localsend-cli-container)
## 特性:
### 1. host 网络直通
localsend 发现设备靠 UDP 组播,必须走 host 网络,就不用网桥了。
### 2. 一次配对,永久自动接收
新设备第一次发文件时,需要输入:`podman attach localsend`(docker 的话 podman 改成 docker)挂上 TUI,手机发文件,然后按个 `P`,之后这台设备的文件全自动接受。收到的文件落到 `.env` 里 `LOCALSEND_DESTINATION` 指定的目录。
### 3. 配置和身份全持久化
`config.toml`、`identity.pem`、`paired-v2.json` 都挂载到宿主目录,设备身份和配对列表持久存在。alias 不配置时默认是容器主机名,可以在 `config.toml` 里改成自己想要的(比如 `localsend-nas`),其他设备就能按这个名字搜到。
### 4. 自动更新
[`build.sh`](http://build.sh/) 自动查最新 release,有新版本就重建镜像 + 重建容器,配了个定时器每周一凌晨检查,基本不用管。
## 怎么使用:
```bash
git clone https://github.com/100pangci/localsend-cli-container.git
cp .env.example .env
# 然后将.env 里面的地址编辑成自己想要的地址
bash build.sh # 构建 + 启动
systemctl --user enable --now localsend-update.timer # 每周自动更新
```
一些坑也踩过了:
- 只写了 podman 版(podman compose / podman attach),Docker 要用的话 README 里列了 4 处改动,主要就是删掉 `userns_mode:keep-id` 那行,适配成本很低。
- `keep-id` 用户命名空间 + bind mount 的权限问题,折腾了一会儿才理清。
- 版本号通过 `--build-arg` 传,不在 Dockerfile 里硬编码,更新镜像不用改任何文件。
GitHub Actions 也加了语法检查的 workflow。
---
原文链接:[点击查看](https://www.v2ex.com/t/1233929)
· 0 个赞