#link-shortener #web #web-server #env-var #server

app urshort

专为自托管者设计的闪电般快速且简单惊人的URL缩短器

1 个不稳定版本

0.1.1 2022年9月26日

#742 in HTTP服务器

MIT 协议

24KB
457

URShort

专为自托管者设计的闪电般快速且简单惊人的URL缩短器。

支持常规的虚荣URI映射以及(Perl风格)基于正则表达式的映射!

它使用环境变量来配置所有匹配项并将它们加载到内存模型中进行几乎即时访问!适用于容器托管和个人使用。

构建

使用标准的 Rust工具。如果您更喜欢这种方式运行,还可以使用Dev Container

cargo build

# Also recommended for linting suggestions
cargo clippy

# And for consistent formatting
cargo fmt

对于创建Docker容器,请使用包含的Dockerfile和此

docker build -t urshort:latest .

安装

建议使用Docker来使用URShort

docker pull mirdaki/urshort

如果您愿意,也可以通过cargo安装它

cargo install urshort

或直接从发布版下载。

配置

由于所有配置都存储在环境变量中,因此建议将其存储在易于跟踪和更新的.env文件中。例如

URSHORT_STANDARD_URI_test=https://example.com/
URSHORT_STANDARD_URI_test2=https://example.com/2

URSHORT_PATTERN_REGEX_0='^i(?P<index>\d+)$'
URSHORT_PATTERN_URI_0='https://example.com/$index'
URSHORT_PATTERN_REGEX_1='^(\d+)$'
URSHORT_PATTERN_URI_1='https://example.com/$1'

标准映射

一个标准的虚荣映射可能如下所示:hello -> example.com/hello

使用此配置

  • 路径:hello
  • 重定向:https://example.com/hello

这存储在一个单独的环境变量中

# <> is used to indicate the values to be changes
URSHORT_STANDARD_URI_<path>=<redirect>

# Actual example
URSHORT_STANDARD_URI_test=https://example.com/

标准映射将覆盖任何正则映射。

正则映射

单个正则表达式模式映射可能如下所示

i1 -> example.com/1
i42 -> example.com/42
i9001 -> example.com/9001
...

使用此配置

  • 正则表达式模式:'^i(?P<index>\d+)$'
  • 模式重定向 'https://example.com/$index'

这存储在两个单独的环境变量中。第一个包含

# <> is used to indicate the values to be changes
# The first environmental variable determines the place in which the pattern is evaluated and the regex for that pattern
URSHORT_PATTERN_REGEX_<place>='<regex>'
# The second environmental variable must match the place of the first and contains the pattern redirect
URSHORT_PATTERN_URI_<place>='<redirect>'

# Actual example
URSHORT_PATTERN_REGEX_0='^i(?P<index>\d+)$'
URSHORT_PATTERN_URI_0='https://example.com/$index'

请确保引用值。小心映射的顺序。

端口

您可以指定服务将使用的端口号。如果不指定,将使用默认值 54027

当直接运行服务时,这非常有用。如果您使用Docker,建议使用内置的端口映射功能而不是此功能。

示例环境变量:URSHORT_PORT=7777

用法

请在URShort前面使用Web服务器,例如 NginxTraefik

Docker compose 是运行URShort的推荐方式。示例文件在这里:此处。使用您的 .env 文件加载该文件并运行。

docker-compose up

您也可以直接使用Docker run命令。

docker run -d \
  --name=urshort \
  -p 54027:54027 \
  -e URSHORT_STANDARD_URI_test=https://example.com/ \
  -e URSHORT_PATTERN_REGEX_0='^i(?P<index>\d+)$' \
  -e URSHORT_PATTERN_URI_0='https://example.com/$index' \
  --restart unless-stopped \
  mirdaki/urshort:latest

或者,如果您有裸执行文件,可以在您的 .env 文件位置(或在将配置直接加载到环境之后)运行 urshort

构建工具

感谢所有帮助使这一切成为可能的项目!

  • Rust —— 构建时的一款出色的语言
  • Axum —— 完成整个URL重定向操作

贡献

请阅读 CONTRIBUTING.md 了解如何为该项目做出贡献。

许可证

本项目采用MIT许可证 - 请参阅 LICENSE.md 文件以获取详细信息。

依赖项

~10–23MB
~288K SLoC