Shlink 自建短链接服务完整部署指南,NAS Docker 一键启动管理短链接
作者
小编
发布时间

Shlink - 自建短链接服务
项目介绍
Shlink 是一个基于 PHP 开发的自托管短链接生成器,让你能够在自己的域名下创建和管理短链接。它提供了强大的 REST API 和友好的网页客户端,支持链接分析、QR 码生成、访问统计等功能。无论是个人使用还是企业级应用,Shlink 都能帮助你轻松管理和追踪短链接。
项目采用模块化设计,支持多种数据库(MySQL、PostgreSQL、MariaDB、SQL Server)以及 SQLite,并提供了开箱即用的 Docker 镜像方案。你可以快速部署一个属于自己的短链接服务,完全掌控数据隐私和链接管理权限。
项目地址:点我跳转
部署安装
如果你需要在外部网络访问自建的短链接服务,建议配置内网穿透工具以实现远程访问。推荐使用 帕斯内网穿透,先注册好账号。具体的操作步骤可以参考 这份完整指南,帮助你快速上手全平台的穿透配置。
使用 Docker 快速启动
打开你的 NAS 设备或 Docker 管理界面,按照以下步骤操作:
点击 本地镜像 - 添加镜像 - 从 URL 添加,在镜像地址栏填入:
1shlinkio/shlink:stable
等待镜像下载完成后,点击启动按钮创建容器。
端口映射设置:
将容器的 8080 端口映射到宿主机的任意可用端口(例如 8080:8080)。如果你的 8080 端口已被占用,可以修改宿主机端口号,但容器内的端口保持 8080 不变。
环境变量设置:
以下环境变量是必须配置的:
环境变量 | 说明 | 示例值 'DEFAULT_DOMAIN' | 你的短链接域名 | 's.example.com' 'IS_HTTPS_ENABLED' | 是否启用 HTTPS | 'true' 或 'false' 'GEOLITE_LICENSE_KEY' | GeoLite2 许可证密钥 | 从 MaxMind 获取
以下环境变量为可选配置:
环境变量 | 说明 | 默认值 'DB_DRIVER' | 数据库驱动 | 'sqlite'(可选:mysql、maria、postgres、mssql) 'DB_HOST' | 数据库主机地址 | - 'DB_USER' | 数据库用户名 | - 'DB_PASSWORD' | 数据库密码 | - 'DB_NAME' | 数据库名称 | 'shlink' 'INITIAL_API_KEY' | 初始 API 密钥 | -
如果不需要外部数据库,使用默认的 SQLite 配置即可,只需填写前三个必需变量。
数据持久化
如果你使用 SQLite 数据库,建议创建一个本地文件夹用于存储数据,将其映射到容器的 /home/shlink 目录,这样可以保证容器重启后数据不丢失。
生成首个 API 密钥
容器启动成功后,进入容器执行以下命令生成你的第一个 API 密钥:
1docker exec -it my_shlink shlink api-key:generate
(将 my_shlink 替换为你的容器名称)
访问应用
部署完成后,在浏览器中访问:
1http://你的服务器IP:8080
就可以看到 Shlink 的管理界面了。你也可以使用官方提供的在线客户端 https://app.shlink.io 来管理你的短链接。
本篇教程结束。祝你使用 Shlink 愉快!