飞牛NAS自建短链接服务:YOURLS部署
飞牛NAS自建短链接服务:YOURLS部署
引言
你是否曾经在分享飞牛NAS上的文件链接时,被一长串包含IP、端口和路径的URL困扰?或者需要统计某个外部链接的点击次数?短链接服务(URL Shortener)正是解决这些痛点的利器。本文将指导你在飞牛NAS上,通过Docker部署开源短链接服务YOURLS,实现完全自主可控的短链接管理。
为什么选择YOURLS
YOURLS(Your Own URL Shortener)是一款成熟的开源PHP应用,具备以下核心优势: - 完全自托管:数据存储在本地NAS,不依赖第三方服务 - 功能丰富:支持自定义关键词、点击统计、API接口、书签工具 - 轻量高效:基于PHP+MySQL,资源占用低 - 插件生态:可通过插件扩展地理定位、二维码生成等功能
部署准备
环境要求
- 飞牛NAS已开启SSH功能(系统设置→SSH)
- 拥有Docker环境(飞牛默认集成)
- 建议预留1GB磁盘空间
获取必要信息
- NAS局域网IP(例如192.168.1.100)
- 计划使用的端口(避免冲突,推荐8080为管理端口,3307为数据库端口)
部署步骤
第一步:创建数据目录
通过SSH连接飞牛NAS,创建YOURLS专用目录:
sudo mkdir -p /volume1/docker/yourls/data
sudo mkdir -p /volume1/docker/yourls/db
> 提示:/volume1为飞牛NAS默认存储池路径,请根据实际存储池调整。
第二步:编写Docker Compose文件
使用文本编辑器创建配置文件:
sudo nano /volume1/docker/yourls/docker-compose.yml
粘贴以下内容:
version: '3.8'
services:
db:
image: mysql:5.7
container_name: yourls-db
restart: always
environment:
MYSQL_ROOT_PASSWORD: yourls_root_pass # 请修改为强密码
MYSQL_DATABASE: yourls
MYSQL_USER: yourls_user
MYSQL_PASSWORD: yourls_user_pass # 请修改为强密码
volumes:
- /volume1/docker/yourls/db:/var/lib/mysql
ports:
- "3307:3306" # 映射到3307避免与NAS现有MySQL冲突
yourls:
image: yourls:latest
container_name: yourls-app
restart: always
depends_on:
- db
environment:
YOURLS_DB_HOST: db
YOURLS_DB_USER: yourls_user
YOURLS_DB_PASS: yourls_user_pass
YOURLS_DB_NAME: yourls
YOURLS_SITE: http://192.168.1.100:8080 # 替换为实际NAS IP
YOURLS_USER: admin
YOURLS_PASS: admin_password_123 # 请修改为管理密码
volumes:
- /volume1/docker/yourls/data:/var/www/html/user
ports:
- "8080:80"
配置说明:
- MYSQL_ROOT_PASSWORD:数据库root密码,建议使用16位以上随机字符串
- YOURLS_SITE:务必替换为你的NAS实际IP,否则短链接生成会出错
- 端口映射可根据需求调整,但需保持前后一致
保存文件(Ctrl+X,按Y确认,Enter退出)。
第三步:启动服务
执行以下命令启动容器:
cd /volume1/docker/yourls
sudo docker-compose up -d
等待镜像拉取和启动,可通过命令查看状态:
sudo docker-compose ps
当两个容器状态均为Up时,表示部署成功。
第四步:初始化YOURLS
打开浏览器,访问:
http://192.168.1.100:8080/admin/
使用配置文件中设置的YOURLS_USER和YOURLS_PASS登录(示例中为admin / admin_password_123)。
首次登录会进入初始化界面:
1. 语言选择:支持中文,选择简体中文
2. 时区设置:选择Asia/Shanghai
3. 点击“安装YOURLS”
安装完成后,你将看到管理后台主界面。
基本使用指南
创建短链接
- 在后台“快速创建”区域输入长URL(如飞牛NAS文件分享链接)
- 可选:自定义短链接关键词(如
nas-file1) - 点击“缩短URL”
生成的短链接格式为:http://192.168.1.100:8080/nas-file1
查看统计数据
YOURLS自动记录每个短链接的点击次数、来源IP、访问时间等数据。在后台“统计”页面可查看详细报告。
使用API接口
YOURLS提供RESTful API,方便集成到自动化脚本中。例如使用curl创建短链接:
curl -X POST http://192.168.1.100:8080/yourls-api.php \
-d "signature=你的API密钥" \
-d "action=shorturl" \
-d "url=https://example.com/long-url" \
-d "format=json"
API密钥可在后台“管理→工具”页面获取。
高级配置与优化
1. 启用HTTPS(通过反向代理)
如果飞牛NAS已配置域名和SSL证书,建议通过Nginx反向代理为YOURLS启用HTTPS:
# Nginx配置片段
server {
listen 443 ssl;
server_name yourls.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://192.168.1.100:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
同时需修改docker-compose中的YOURLS_SITE为HTTPS地址。
2. 数据备份策略
YOURLS数据存储在MySQL数据库中,建议定期备份:
# 创建备份脚本 /volume1/docker/yourls/backup.sh
#!/bin/bash
docker exec yourls-db mysqldump -u root -p'yourls_root_pass' yourls > /volume1/backups/yourls_$(date +%Y%m%d).sql
设置飞牛NAS定时任务(控制面板→任务计划)每天执行。
3. 插件安装示例:生成二维码
- 下载插件:在YOURLS官方插件目录搜索QRCode
- 将插件文件夹放入
/volume1/docker/yourls/data/plugins/ - 在后台“管理→插件”页面激活
之后每个短链接页面将自动显示对应的二维码图片。
常见问题排查
问题1:无法访问管理后台
- 检查端口映射是否正确:
sudo docker-compose ps查看端口状态 - 确认NAS防火墙未阻断8080端口
- 查看容器日志:
sudo docker logs yourls-app
问题2:短链接生成后访问报404
- 检查
YOURLS_SITE配置是否与实际访问地址一致 - 确认数据库连接正常:
sudo docker logs yourls-db - 重新执行初始化安装(删除data目录下的配置文件)
问题3:数据库连接失败
- 检查docker-compose中数据库用户名密码是否匹配
- 确认MySQL容器已完全启动(启动需要10-20秒)
- 检查端口3307是否被占用
结语
至此,你已在飞牛NAS上成功部署了属于自己的短链接服务。YOURLS不仅解决了长链接分享的不便,还提供了完整的统计分析功能。你可以进一步探索其插件生态,比如添加防垃圾链接、支持OAuth登录等高级功能。
这个自建服务完全掌控在你的NAS之中,数据安全、功能自主,是飞牛NAS家庭数据中心的一个实用补充。现在就开始缩短你的第一个链接吧!
暂无评论,来说两句吧