
Ugurly (متاح على ugurly.vercel.app) هو خدمة مجانية ومفتوحة المصدر لتقصير عناوين URL. يقدم إحصاءات لعناوين الـURL، وواجهة برمجة تطبيقات متعددة الاستخدامات، وميزات تخصيص مثل الـ slugs المخصصة، وحماية بكلمة مرور، وإدارة مدة حياة الرابط.
- Slugs المخصصة: إنشاء slugs شخصية لعناوين الـURL الخاصة بك 🎯
- Slugs بالرموز التعبيرية: استخدام الرموز التعبيرية كـ slugs للمرح والتميز 😃
- حماية بكلمة مرور: حماية عناوين الـURL بكلمات مرور 🔒
- حد النقرات: التحكم في الحد الأقصى لعدد النقرات على عناوين الـURL الخاصة بك 📈
- إحصاءات الـURL: الوصول إلى إحصاءات مفصلة لعناوين الـURL المختصرة الخاصة بك 📊
- واجهة برمجة تطبيقات (API): استخدم واجهة برمجة تطبيقات مجانية ومفتوحة المصدر لتقصير العناوين وتحليلها 🛠️
- مفتوح المصدر: Ugurly مفتوح المصدر ومجاني للاستخدام 📖
- خالٍ من الإعلانات: لا إعلانات، لا تتبع، لا تشتت 🚫
- مجاني تمامًا: لا تكاليف خفية، ولا خطط متميزة، ولا قيود 💸
- الاستضافة الذاتية: نشر Ugurly على خادمك الخاص للتحكم الكامل 🏠
للوصول إلى عنوان URL المختصر، استخدم الهيكل الأساسي: https://ugurly.vercel.app/r/:short-code
مثال: https://ugurly.vercel.app/r/google
لعناوين URL المحمية بكلمة مرور، اتبع نفس الهيكل. ستتم إعادة توجيهك إلى صفحة إدخال كلمة المرور.
مثال: https://ugurly.vercel.app/r/google-protected
كلمة المرور: 1234
لتجاوز صفحة إدخال كلمة المرور، أضف كلمة المرور كمعلمة URL:
https://ugurly.vercel.app/r/<short_code>?password=<password>
https://ugurly.vercel.app/r/google-protected?password=1234
ملاحظة: جميع مسارات واجهة برمجة التطبيقات محمية. احصل على مفتاح الـAPI الخاص بك من إعدادات Ugurly.
الرابط الأساسي: https://ugurly.vercel.app/api/v1
الترويسات المطلوبة:
الترويسة | الوصف | مطلوب |
---|---|---|
Authorization | مفتاح الـAPI الخاص بك (Bearer API_KEY) | نعم |
المسار: https://ugurly.vercel.app/api/v1/url/create
الطريقة: POST
الحمولة | نوع البيانات | الوصف | مطلوب |
---|---|---|---|
url | سلسلة | عنوان URL الطويل الذي يجب تقصيره | نعم |
slug | سلسلة | اسم مستعار مخصص لعنوان الـURL المقصر | لا |
password | سلسلة | كلمة المرور للوصول إلى الـURL | لا |
maxClicks | رقم | الحد الأقصى لعدد النقرات المسموح بها للـURL | لا |
المسار: https://ugurly.vercel.app/api/v1/url/:url-id
(استخدم ID، وليس slug)
الطريقة: GET
المسار: https://ugurly.vercel.app/api/v1/urls
الطريقة: GET
|
URLQueryParam | نوع البيانات | الوصف | مطلوب |
---|---|---|---|
limit | رقم | حجم الصفحة للنتائج | لا |
cursor | سلسلة | المؤشر البدئي للترقيم الصفحي | لا |
المسار: https://ugurly.vercel.app/api/v1/url/edit/:url-id
(استخدم ID، وليس slug)
الطريقة: POST
الحمولة | نوع البيانات | الوصف | مطلوب |
---|---|---|---|
url | سلسلة | عنوان URL الطويل المُحدث | نعم |
slug | سلسلة | اسم مستعار مخصص مُحدث للعنوان الـURL | لا |
maxClicks | رقم | الحد الأقصى المُحدث لعدد النقرات المسموح بها للـURL | لا |
password | سلسلة | كلمة المرور المُحدثة للوصول إلى الـURL | لا |
المسار: https://ugurly.vercel.app/api/v1/url/delete/:url-id
(استخدم ID، وليس slug)
الطريقة: DELETE
- TursoDB 🌿
bash
npm install
bash
mv .env.example .env
bash
TURSO_DATABASE_URL="libsql://db-name-user.turso.io"
TURSO_AUTH_TOKEN="longtoken"
# Next Auth
# You can generate a new secret on the command line with:
# openssl rand -base64 32
# https://next-auth.js.org/configuration/options#secret
# NOTE: NEXTAUTH_SECRET is required for production
# NEXTAUTH_SECRET=""
NEXTAUTH_URL="http://localhost:3000"
# Next Auth Discord Provider
DISCORD_CLIENT_ID=""
DISCORD_CLIENT_SECRET=""
# Next Google Auth Provider
GOOGLE_CLIENT_ID="your-app.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET="GOCXXX-XXXX-XXXXXXXXXXXXX"
# Core
# This is used to generated urls server side and client side
NEXT_PUBLIC_REDIRECT_URL="https://ugurly.vercel.app"
bash
npm run dev