Repositori ini berisi kode sumber untuk pemendekan tautan CGI-Dispatched yang ditulis dalam karat. Anda dapat meng -host proyek ini di lingkungan Anda sendiri menggunakan instruksi di bawah ini.
Tautan di web semakin membengkak. Teman tidak mengirim teman multi-line tautan! Namun, layanan tautan pihak ketiga adalah mimpi buruk privasi. Tapi terutama, saya ingin belajar karat dan ini sepertinya proyek sederhana.
Proyek ini dimaksudkan untuk menjadi minim dan sederhana. Fitur Pengguna:
Fitur Perangkat Lunak:

Cara yang disarankan untuk menginstal proyek ini adalah dengan menggunakan gambar Docker. Namun, terutama jika Anda hanya ingin menggunakan API, Anda juga dapat menginstal biner secara langsung di server web Anda sendiri.
Pertama, siapkan direktori untuk file data. Itu harus dimiliki oleh pengguna dengan UID 82 (www-data di Debian/Ubuntu).
$ mkdir -p ${STORAGE} /smrs/data
$ sudo chown 82:82 ${STORAGE} /smrs/dataBerikut adalah contoh Stanza-Compose Stanza:
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/dataIni menggunakan Traefik sebagai proxy terbalik ke port kontainer 8000. Anda dapat menggunakan proxy terbalik Anda sendiri, atau mengekspos port secara langsung.
Klon Repositori dan bangun biner:
$ cargo build --release Letakkan file target/release/smrs di suatu tempat di jalur server web Anda. Anda harus mengkonfigurasi server Anda untuk menjalankan biner sebagai skrip CGI. Saya menggunakan apache2 di dalam wadah. File konfigurasi ada di conf/smrs.conf di repo ini.
Biner karat mengimplementasikan titik akhir API berikut:
GET /session - Mengembalikan sesi saat ini sebagai { session: string }POST /session - Mengatur cookie sesi ke nilai yang diberikan { session: string }POST /save - Simpan URL di token yang diberikan (jika belum digunakan) { url: string, token: string }GET /to/<token - Redirect ke URL di token yang diberikan, atau mengembalikan 404GET /list - Mengembalikan daftar semua token dan URL yang disimpan oleh session saat ini sebagai { links: [{ token: string, url: string, created_at: i32 }]POST /forget - Menandai token yang diberikan sebagai dihapus, atau 404 : { token: string } Untuk menjalankan proyek ini secara lokal, Anda dapat menginstal alat cargo make dan menjalankan tugas devenv :
$ cargo make devenv Lingkungan dev akan dapat diakses di LocalHost: 8000/. Ini akan mengikat Mount htdocs ke dalam wadah sehingga Anda dapat mengulangi pada kode dan memuat ulang. Untuk mengulangi biner karat, Anda dapat menjalankan tugas iter , yang akan membangun biner secara lokal dan menyalin ke dalam wadah:
$ cargo make iterSelamat datang! Tetapi perlu diingat bahwa proyek ini dimaksudkan untuk menjadi minim. Saya tidak akan menerima PR yang menambahkan terlalu banyak dependensi atau fitur yang tidak saya inginkan.
Mit. Jangan ragu untuk membayar dan melakukan apa yang Anda inginkan.