下载:点击下载
提取码:5jfb
一个自建的短链(短网址)系统,单容器 Docker 镜像,开箱即用。
技术栈
后端
-
语言/运行时:PHP 8.2(PHP-FPM)
-
架构:自研轻量框架——前端控制器 + 分层设计(
Http入口 →Actions动作层 →Services服务层 →Storage存储层),非 Laravel/Symfony 等重型框架,无 Composer 重依赖,轻量易读 -
动作层:
app/Actions/(Public 公开动作 + Admin 后台 19 个动作) -
服务层:
LinkService(短链)、VisitService(访问统计)、LoginGuard(登录防爆破)、ApiMonitor(接口监控)、EnvDetector(环境探测) -
数据存储:SQLite(主库,零配置、单文件)
-
缓存:Redis(可选,
RedisCache)
/文件缓存(FileCache,Redis 不可用时降级) -
Web 服务器:nginx(容器内,与 PHP-FPM 一起被 supervisor 拉起)
前端
- 服务端渲染 PHP 模板(
app/Views/) - UI 组件库:Tabler(基于 Bootstrap 的现代后台 UI 框架,本地引用)
- 图表:ECharts(本地引用,用于访问统计的设备/系统/浏览器分布饼图,不依赖外部 CDN)
- 纯白灰极简主题,无 Vue/React 等前端框架
部署/运维
- Docker 单镜像:内置 nginx + PHP-FPM + Redis,supervisor 管理多进程
- 基础镜像:Debian bookworm-slim
- 数据库迁移:内置
migrate.php,首次启动自动建表,无需手动初始化 - 配置:环境变量注入(
LINK_ADMIN_PASS/LINK_SITE_DOMAIN/LINK_API_TOKEN/LINK_REDIS_ENABLE等)
功能
短链生成与跳转、访问统计(设备/系统/浏览器图表)、标签系统、搜索、自定义首页、API 接口(令牌鉴权 + 限流)、批量创建、短链健康检查、访问来源域名统计、孤立文件清理、自动截图预览。
部署(3 步)
# 1. 导入镜像
gunzip -c duanlian-docker镜像.tar.gz | docker load
docker run -d --name duanlian \
-p 80:80 \
-v /宿主机路径/duanlian_data:/var/www/html/_data \
-e LINK_ADMIN_PASS='你的强口令' \
-e LINK_SITE_DOMAIN='https://你的域名' \
duanlian:latest
️ 注意
- 默认后台口令
admin886,上线前务必用 -e LINK_ADMIN_PASS 改强口令
- 数据存 SQLite,用
-v 挂载 _data 持久化,否则容器删了数据就没了
- 需要 HTTPS 前面挂 nginx 反代即可







请登录后发表评论
注册
停留在世界边缘,与之惜别