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。
麻省理工學院。隨意叉,做您想做的事。