يحتوي هذا المستودع على الكود المصدري لرابط CGI المختصر المكتوب في الصدأ. يمكنك استضافة هذا المشروع في بيئتك الخاصة باستخدام التعليمات أدناه.
تتزايد الارتباطات على الويب على الويب. الأصدقاء لا يرسلون روابط متعددة الخطوط! ومع ذلك ، فإن خدمات ارتباط الطرف الثالث هي كابوس خصوصية. لكن بشكل رئيسي ، أردت أن أتعلم الصدأ وهذا يبدو وكأنه مشروع بسيط.
من المفترض أن يكون هذا المشروع الحد الأدنى والبسيط. ميزات المستخدم:
ميزات البرمجيات:

الطريقة الموصى بها لتثبيت هذا المشروع هي استخدام صورة Docker. ومع ذلك ، خاصة إذا كنت ترغب فقط في استخدام واجهة برمجة التطبيقات ، يمكنك أيضًا تثبيت الثنائي مباشرة في خادم الويب الخاص بك.
أولاً ، قم بإعداد دليل لملف البيانات. يجب أن يكون مملوكًا للمستخدم مع UID 82 (www-data على Debian/Ubuntu).
$ mkdir -p ${STORAGE} /smrs/data
$ sudo chown 82:82 ${STORAGE} /smrs/dataإليكم مثال على Docker-Corms 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/dataيستخدم هذا Traefik كوكيل عكسي لمنفذ الحاوية 8000. يمكنك استخدام الوكيل العكسي الخاص بك ، أو فضح المنفذ مباشرة.
استنساخ المستودع وبناء الثنائي:
$ cargo build --release ضع target/release/smrs في مكان ما في مسار خادم الويب الخاص بك. ستحتاج إلى تكوين الخادم الخاص بك لتشغيل الثنائي كنصي CGI. يمكنني استخدام apache2 داخل الحاوية. ملف التكوين في conf/smrs.conf في هذا الريبو.
يقوم الصدأ الثنائي بتنفيذ نقاط نهاية واجهة برمجة التطبيقات التالية:
GET /session - إرجاع الجلسة الحالية كـ { session: string }POST /session - تعيين ملف تعريف الارتباط الجلسة على القيمة المحددة { session: string }POST /save - يحفظ عنوان URL في الرمز المميز المعطى (إن لم يكن قيد الاستخدام بالفعل) { url: string, token: string }GET /to/<token - إعادة توجيه إلى عنوان URL في الرمز المميز ، أو إرجاع 404GET /list - إرجاع قائمة بجميع الرموز وعناوين URL التي تم حفظها بواسطة session الحالية { links: [{ token: string, url: string, created_at: i32 }]POST /forget - يمثل الرمز المميز المعطى كما تم حذفه ، أو 404 : { token: string } لتشغيل هذا المشروع محليًا ، يمكنك تثبيت أداة cargo make وتشغيل مهمة devenv :
$ cargo make devenv يمكن الوصول إلى بيئة DEV في LocalHost: 8000/. سيؤدي ذلك إلى ربط htdocs في الحاوية حتى تتمكن فقط من التكرار على الكود وإعادة التحميل. للتكرار على صدأ ثنائي ، يمكنك تشغيل مهمة iter ، والتي ستقوم ببناء الثنائي محليًا ونسخها إلى الحاوية:
$ cargo make iterمرحباً! ولكن ضع في اعتبارك أن هذا المشروع من المفترض أن يكون ضئيلاً. لن أقبل PRS التي تضيف الكثير من التبعيات أو الميزات التي لا أريدها.
معهد ماساتشوستس للتكنولوجيا. لا تتردد في الشوكة والقيام بما تريد.