#link #service #short #shortening

app 小丑鱼

一个简单的链接缩短服务

1 个不稳定版本

0.2.1 2020年1月11日

#91 in #short

ISC 许可协议

30KB
548

dinky

一个基本的、自托管的链接缩短服务。

安装

cargo install dinky

构建

cargo build

测试

cargo test

命令行选项

使用信息可以通过 --help 提供。

配置

有一个配置文件(TOML 格式),如果没有指定 --conf 命令行参数,它将在默认的 XDG 路径中创建。

如果 dinky 写入配置,它将使用默认值填充,因此是一个很好的起点。当 dinky 启动时,将打印创建的文件名,可以就地编辑,并在重启后加载。

注释的配置选项

[settings]
bind = "127.0.0.1"
port = 4444
base_url = "http://example.com/"
  • 绑定到的端口和 IP 地址。
  • 用于生成链接的完全限定域名。这必须指向 dinky 运行的同一路径。
[hash]
length = 10
salt = "dinkysalt123"
  • 生成的短链接哈希长度,以及用于哈希生成的盐。
[database]
kind = "Sqlite"
path = "example_db"
  • 要使用的数据库。目前仅支持 sqlite。
[index]
hidden = false
html = ""
css = ""
form = ""
  • 是否隐藏索引页面(如果您不想 dinky 提供提交表单)。
  • 提供要服务的 HTML 模板、HTML 表单和 CSS 文件的路径。

这些是可选的,并且只有在您希望根本改变 dinky 的外观时才应使用。

在模板 HTML 中,{{content}} 将替换为表单 HTML,或任何其他 dinky 提供的内容或消息。另外,{{ver}} 将替换为当前版本的 dinky

使用 Cargo 和 systemd 作为服务安装

要手动设置 systemd,必须复制单元文件,并在系统上创建 dinky 用户。在项目仓库内部

cargo install dinky
sudo useradd -m --system dinky --shell /usr/sbin/nologin
sudo install -D -o dinky -g dinky ~/.cargo/bin/dinky -t /home/dinky/.cargo/bin/
sudo install -m 644 systemd/dinky.service /etc/systemd/system/
sudo systemctl enable --now dinky.service

与 nginx 一起使用

作为服务运行时,dinky 可以通过 nginx 代理,例如以下方式

location /some/path/ {
    proxy_pass http://127.0.0.1:4444/;
}

nginx 文档

预览

dinky

依赖关系

~41MB
~709K SLoC