命令行 pastebin,用于分享终端输出。
名字来自"peg"——像把便签钉到布告板上一样,简单直接。
echo hello | curl -T - https://yourdomain.com
返回一个 URL:
https://yourdomain.com/abcd
上传命令输出:
ls -la | curl -T - https://yourdomain.com
在浏览器中打开 URL,或:
curl https://yourdomain.com/abcd
Linux/MacOS:
alias peg="curl -T - https://yourdomain.com"
Windows:
function peg { $input | curl -T - https://yourdomain.com }
那么你就可以使用 peg 命令了:
echo hello | peg
docker run -d \
--name peg \
-p 9999:9999 \
-e PEG_BANLIST='https://blackip.ustc.edu.cn/list.php?txt ' \
-v ./data:/data \
--restart unless-stopped \
docker.cnb.cool/anyexyz/tools/peg:latest
所有参数均可通过环境变量配置,优先级:命令行参数 > 环境变量 > 默认值。
| 参数 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
-L | PEG_LISTEN_ADDR | 0.0.0.0 | 监听地址 |
-p | PEG_PORT | 9999 | 监听端口 |
-s | PEG_SLUG_LEN | 4 | Slug 长度 |
-o | PEG_OUTPUT_DIR | code | 粘贴保存目录 |
-B | PEG_BUFFER_LEN | 32768 | 最大上传大小(字节) |
-H | PEG_REAL_IP_HEADER | 获取真实客户端 IP 的请求头 | |
-P | PEG_BASE_PATH | 子路径(如 /peg),用于反向代理子路径部署 | |
-l | PEG_LOG_FILE | 日志文件路径 | |
-b | PEG_BANLIST | 封禁 IP 列表,支持本地文件或 URL | |
-w | PEG_WHITELIST | 白名单 IP 列表,支持本地文件或 URL | |
-post-limit | PEG_POST_LIMIT | 10 | 每 IP 每窗口 POST 上传次数上限(0 不限制) |
-get-limit | PEG_GET_LIMIT | 60 | 每 IP 每窗口 GET 请求次数上限(0 不限制) |
-rate-window | PEG_RATE_WINDOW | 60 | 速率限制时间窗口(秒) |
本项目灵感来源于 termbin.com,一个简洁优雅的命令行 pastebin 服务。感谢 termbin 带来的启发。