PassNAT LogoPassNAT

Shlink 自建短链接服务完整部署指南,NAS Docker 一键启动管理短链接

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

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 愉快!