shlinkio/shlink

一个基于PHP的自托管URL缩短器应用程序,具有CLI和REST接口

资助包维护!
acelaya
slnk.to/donate

安装: 206

依赖项: 0

建议者: 0

安全: 0

星星: 3 072

关注者: 21

分支: 251

开放问题: 25

类型:项目

v4.2.0 2024-08-11 16:33 UTC

README

Shlink

Build Status Code Coverage Latest Stable Version Docker pulls License

Mastodon Bluesky Twitter Paypal donate

一个基于PHP的自托管URL缩短器,可用于在自己的域名下提供缩短的URL。

目录

完整文档

本文件包含了开始使用Shlink的非常基础的指南。如果您想了解它能做的一切,请访问完整可搜索文档

Docker镜像

您可以通过阅读文档了解如何使用官方的Docker镜像。

想法是您可以使用该镜像生成一个容器,并通过环境变量提供自定义配置。

自托管

首先,请确保您将要运行shlink的主机满足以下要求

  • PHP 8.2或8.3
  • 以下PHP扩展:json、curl、pdo、intl、gd和gmp/bcmath。
    • 如果不计划使用RoadRunner,建议使用apcu扩展。
    • 如果您想以svg格式生成QR码,则需要xml扩展。
    • 如果您想与RabbitMQ实例集成,则需要sockets和bcmath扩展。
  • MySQL、MariaDB、PostgreSQL、MicrosoftSQL或SQLite。
    • 您还需要为计划使用的数据库提供相应的pdo变体:pdo_mysqlpdo_pgsqlpdo_sqlsrvpdo_sqlite

下载

为了运行Shlink,您需要项目的编译版本。有两种方法可以获取它。

  • 使用dist文件

    安装shlink最简单的方法是使用预打包的发行版包之一。

    访问最新版本,下载适合您需求的shlink*_dist.zip文件。您会找到每个支持的PHP版本的文件。

    最后,在您选择的位置解压文件。

  • 从源码构建

    如果您出于任何原因想自己构建项目,请按照以下步骤操作

    • 使用git (git clone https://github.com/shlinkio/shlink.git)克隆项目,或通过点击绿色按钮“克隆或下载”来下载。
    • 在项目文件夹内下载Composer PHP包管理器。
    • 运行./build.sh 3.0.0,将版本号替换为您要构建的版本号(版本号用作生成的dist文件名的一部分,以及设置从命令行运行shlink -V时返回的值)。

    之后,您将在build目录中找到一个dist文件,您需要在您选择的位置解压。

    注意

    这是发布新Shlink版本时使用的流程。使用git标记新版本后,GitHub发布会由GitHub工作流自动创建,并将生成的dist文件附加到其中。

配置

不管你是如何构建项目的,你现在都需要按照以下步骤进行配置

  • 如果你打算使用MySQL、MariaDB、PostgreSQL或Microsoft SQL Server,请创建一个空数据库,并取你喜欢的名字。
  • 递归地授予对data目录的写权限。Shlink用它来缓存一些信息。
  • 通过运行vendor/bin/shlink-installer install脚本来设置应用程序。这是一个命令行工具,将引导你完成安装过程。请注意,此工具必须直接在你计划托管Shlink的服务器上运行。在上传/移动之前不要运行它。
  • 通过运行bin/cli api-key:generate来生成你的第一个API密钥。你需要这个密钥才能与Shlink的API交互。

使用shlink

一旦Shlink安装完成,主要有两种方式与之交互

  • 命令行:尝试运行bin/cli以查看所有可用命令。

    所有这些命令都可以使用--help/-h标志运行,以查看如何使用它们以及所有可用选项。

    将CLI入口点(bin/cli)符号链接到你的路径中的某个位置可能是个好主意,这样你就可以从任何目录运行Shlink。

  • REST API:有关如何使用API的完整文档可以在这里找到,以及一个文档了每个端点的沙箱,可以在API规范门户中找到。

    然而,你可能不想直接消费原始API。这就是为什么提供了一个漂亮的网络客户端,可以直接在https://app.shlink.io使用,或者由你自己托管。

API和CLI允许你执行几乎相同的操作,除了API密钥管理,这只能从命令行界面完成。

贡献

如果你在寻找如何在开发模式下运行项目或如何提供贡献的方法,请阅读CONTRIBUTING文档。

此产品包含由MaxMind创建的GeoLite2数据,可在https://www.maxmind.com获取