下载:点击下载
提取码: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 反代即可

【原创】短链系统 duanlian —— Docker 一键部署 第5张插图
【原创】短链系统 duanlian —— Docker 一键部署 第6张插图
【原创】短链系统 duanlian —— Docker 一键部署 第7张插图
【原创】短链系统 duanlian —— Docker 一键部署 第8张插图
【原创】短链系统 duanlian —— Docker 一键部署 第9张插图
【原创】短链系统 duanlian —— Docker 一键部署 第10张插图
【原创】短链系统 duanlian —— Docker 一键部署 第11张插图