smrs
1.0.0
该存储库包含用Rust编写的CGI-Dispatch Link Shortener的源代码。您可以使用以下说明在自己的环境中托管该项目。
网络上的链接变得越来越肿。朋友不会发送朋友多行链接!但是,第三方链接服务是一场隐私噩梦。但是主要是我想学习生锈,这似乎是一个简单的项目。
该项目的最低限度和简单。用户功能:
软件功能:

安装此项目的推荐方法是使用Docker Image。但是,尤其是如果您只想使用API,也可以直接在自己的Web服务器中安装二进制文件。
首先,为数据文件准备目录。它必须由UID 82(Debian/ubuntu上的www-data)拥有。
$ mkdir -p ${STORAGE} /smrs/data
$ sudo chown 82:82 ${STORAGE} /smrs/data这是一个示例Docker-Compose节:
smrs :
image : ghcr.io/igor47/smrs:v0.1.1
restart : unless-stopped
container_name : smrs
labels :
- " traefik.enable=true "
- " traefik.http.routers.smrs.rule=Host(`example.com`,`www.example.com`) "
- " traefik.http.routers.smrs.tls=true "
- " traefik.http.routers.smrs.tls.certresolver=letsencrypt "
- " traefik.http.routers.smrs.entrypoints=https "
- " traefik.http.services.smrs.loadbalancer.server.port=8000 "
volumes :
- ${STORAGE}/smrs/data:/smrs/data这使用Traefik作为容器端口8000的反向代理。您可以使用自己的反向代理,也可以直接曝光端口。
克隆存储库并构建二进制文件:
$ cargo build --release将文件target/release/smrs放置在Web服务器路径中的某个位置。您需要配置服务器以将二进制运行为CGI脚本。我在容器内使用apache2 。配置文件在此存储库中的conf/smrs.conf中。
生锈二进制实现以下API端点:
GET /session - 将当前会话返回为{ session: string }POST /session - 将会话cookie设置为给定值{ session: string }POST /save - 将URL保存在给定令牌(如果尚未使用) { url: string, token: string }GET /to/<token - 在给定令牌时重定向到URL,或返回404GET /list返回当前session保存为{ links: [{ token: string, url: string, created_at: i32 }]POST /forget - 将给定的令牌标记为已删除,或404 : { token: string } 要在本地运行此项目,您可以安装cargo make工具并运行devenv任务:
$ cargo make devenv DEV环境将在Localhost:8000/。这将使htdocs DIR绑定到容器中,因此您可以在代码和重新加载上迭代。要迭代Rust二进制文件,您可以运行iter任务,该任务将在本地构建并复制到容器中:
$ cargo make iter欢迎!但是请记住,这个项目的意义很小。我不会接受添加太多依赖关系或我不想要的功能的PR。
麻省理工学院。随意叉,做您想做的事。