8000 GitHub - deveguru/seraf.ir: سراف — بهینه‌ساز تصویر آنلاین، وب‌سرویس API و افزونهٔ وردپرس | Seraf: free batch image optimizer (WebP/AVIF), REST API & WordPress plugin — front-end · GitHub
[go: up one dir, main page]

Skip to content
deveguruPublic

About

سراف — بهینه‌ساز تصویر آنلاین، وب‌سرویس API و افزونهٔ وردپرس | Seraf: free batch image optimizer (WebP/AVIF), REST API & WordPress plugin — front-end

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Seraf — سبک‌تر کردن تصاویر، سریع‌تر کردن سایت‌ها

Website API v1 WebP · AVIF RTL

سراف · فرانت‌اند

بهینه‌ساز رایگان تصویر، وب‌سرویس REST و افزونهٔ وردپرس برای سبک‌تر کردن تصاویر وب
این مخزن فقط شامل بخش فرانت‌اند سایت seraf.ir است.

معرفی • امکانات • پیش‌نمایش • نحوهٔ کار • ساختار • API • وردپرس • پالت رنگی • اجرا


✨ معرفی

سراف سرویسی برای بهینه‌سازی تصاویر است. حجم عکس‌ها را بدون افت محسوس کیفیت کم می‌کند، ابعادشان را مناسب وب می‌کند و آن‌ها را به فرمت‌های مدرن WebP و AVIF تبدیل می‌کند. همهٔ پردازش‌ها روی سرورهای سراف انجام می‌شود.

سه راه برای استفاده وجود دارد:

راه برای چه کسی هزینه
🖼️ بهینه‌ساز آنلاین صفحهٔ اصلی همه، بدون ثبت‌نام — تا ۱۰ تصویر در هر نوبت رایگان
⚡ وب‌سرویس REST برنامه‌نویس‌ها؛ اتصال به هر سایت و هر زبان برنامه‌نویسی از کیف پول یا پلن
🧩 افزونهٔ وردپرس صاحبان سایت‌های وردپرسی؛ بهینه‌سازی خودکار کل کتابخانهٔ رسانه از کیف پول یا پلن

کاربر با شماره موبایل (کد پیامکی) یا نام کاربری و رمز ثبت‌نام می‌کند، کیف پولش را با درگاه بانکی شارژ می‌کند یا پلن ماهانه می‌خرد، یک توکن (کلید API) می‌سازد و با همان توکن از وب‌سرویس یا افزونه استفاده می‌کند.


🚀 امکانات

🖼️ بهینه‌ساز گروهی رایگان

  • کشیدن و رها کردن، انتخاب فایل یا Paste — تا ۱۰ تصویر
  • شروع خودکار پردازش، یکی‌یکی و پشت سر هم روی سرور
  • پیش‌نمایش قبل/بعد با خط کشویی، به‌همراه حجم، فرمت و کیفیت
  • تغییر فرمت، کیفیت یا عرض و بهینه‌سازی دوبارهٔ فوری
  • دانلود تکی یا یکجا به‌صورت ZIP (ساخته‌شده در مرورگر)
  • بدون ذخیرهٔ هیچ فایلی روی سرور

🎨 رابط کاربری

  • طراحی تیره و مدرن با گرادیان‌های متحرک و کارت‌های شیشه‌ای
  • دوزبانه: انگلیسی و فارسی با پشتیبانی کامل راست‌به‌چپ
  • فونت وزیرمتن و اعداد فارسی
  • واکنش‌گرا برای موبایل و تبلت
  • بدون فریم‌ورک و وابستگی — HTML، CSS و JavaScript خالص
  • تعرفه‌ها به‌صورت زنده از API خوانده می‌شوند

⚡ وب‌سرویس

  • فرمت‌های خروجی: original · jpeg · png · webp · avif
  • ورودی با آپلود فایل یا آدرس اینترنتی (URL)
  • پاسخ JSON با لینک یک‌بارمصرف، یا خود فایل (binary)
  • محدودیت نرخ شفاف با Retry-After

👛 کیف پول و پلن‌ها

  • شارژ آنلاین با درگاه بانکی
  • پرداخت به ازای هر تصویر یا خرید پلن ماهانه
  • اگر تصویر کوچک‌تر نشود، هزینه‌ای کسر نمی‌شود
  • پنل کاربری و پنل مدیریت کامل، دوزبانه

📸 پیش‌نمایش

صفحهٔ اصلی

پیش‌نمایش قبل و بعد

پیش‌نمایش قبل/بعد با حجم و کیفیت

امکانات

امکانات سرویس

بخش API

معرفی API با نمونه‌کد

تعرفه‌ها

تعرفه‌های زنده

نمای موبایل
نمای موبایل


🔄 نحوهٔ کار

بهینه‌ساز صفحهٔ اصلی

flowchart LR
    A["🖼️ انتخاب یا رها کردن<br/>تا ۱۰ تصویر"] --> B["📤 ارسال یکی‌یکی<br/>POST /api/v1/guest/optimize"]
    B --> C["⚙️ پردازش روی سرور سراف<br/>Imagick"]
    C --> D["📥 بازگشت فایل بهینه<br/>+ آمار در هدرها"]
    D --> E["👁️ پیش‌نمایش قبل/بعد"]
    E --> F["📦 دانلود تکی یا ZIP"]
    C -. "حذف فوری فایل‌ها" .-> G["🗑️"]
    style A fill:#1a1240,stroke:#a855f7,color:#eef0fb
    style B fill:#1a1240,stroke:#ff3d7f,color:#eef0fb
    style C fill:#0d0f1c,stroke:#22d3ee,color:#eef0fb
    style D fill:#1a1240,stroke:#ff3d7f,color:#eef0fb
    style E fill:#1a1240,stroke:#a855f7,color:#eef0fb
    style F fill:#0d2b22,stroke:#34d399,color:#eef0fb
    style G fill:#07080f,stroke:#9aa1bd,color:#eef0fb
Loading

وب‌سرویس و افزونهٔ وردپرس

sequenceDiagram
    autonumber
    participant U as 👤 کاربر
    participant P as 🧭 پنل سراف
    participant W as 🧩 سایت کاربر / افزونه
    participant S as ⚙️ سرور سراف
    U->>P: ورود با موبایل یا رمز
    U->>P: شارژ کیف پول / خرید پلن
    U->>P: ساخت توکن (کلید API)
    U->>W: وارد کردن توکن در افزونه یا کد
    loop هر تصویر، یکی‌یکی
        W->>S: POST /api/v1/optimize (Bearer token)
        S->>S: بررسی توکن، سهمیه و نرخ
        S->>S: فشرده‌سازی / تبدیل
        S-->>W: فایل بهینه‌شده (binary)
        S->>S: حذف فوری فایل‌ها از سرور
    end
Loading

[!IMPORTANT] افزونهٔ وردپرس هیچ موتور فشرده‌سازی‌ای ندارد. هر تصویر با توکن کاربر به سرور سراف فرستاده و همان‌جا پردازش می‌شود، و نتیجه به سایت کاربر برمی‌گردد. بدون توکن معتبر و اعتبار کافی هیچ پردازشی انجام نمی‌شود.


🗂 ساختار پروژه

seraf.ir/
├── index.html              ← صفحهٔ اصلی (لندینگ + بهینه‌ساز گروهی)
├── static/
│   ├── home.css            ← استایل صفحهٔ اصلی (تم تیره، RTL، واکنش‌گرا)
│   └── home.js             ← ترجمه، تعرفه‌ها، صف پردازش، پیش‌نمایش، سازندهٔ ZIP
├── panel/assets/
│   ├── app.css             ← استایل پنل کاربری و مدیریت (روشن/تیره، RTL)
│   └── app.js              ← تعامل‌های پنل (کپی، تأیید، ورودی مبلغ، شمارش معکوس)
├── serviceworker.js        ← پاک‌کنندهٔ کش قدیمی تا همه صفحهٔ جدید را ببینند
├── .htaccess               ← تغییر مسیر /editor و هدرهای کش (LiteSpeed/Apache)
└── docs/
    ├── API.txt             ← مستندات کامل API (متنی)
    ├── api.html            ← مستندات کامل API (گرافیکی)
    └── screenshots/        ← تصاویر README

[!NOTE] بک‌اند (PHP، پایگاه داده، کیف پول، درگاه پرداخت، پیامک و قالب‌های پنل) در این مخزن نیست. فایل‌های این مخزن روی هاست در ریشهٔ public_html قرار می‌گیرند و با مسیرهای /api/v1/* و /panel/* همان دامنه با بک‌اند ارتباط دارند.

نگاهی به کد فرانت‌اند

بخش توضیح
صف پردازش تصاویر به‌محض اضافه شدن در صف قرار می‌گیرند و یکی‌یکی ارسال می‌شوند. تصویری که در پیش‌نمایش است همیشه اولویت دارد.
تلاش دوباره در پاسخ 503 server_busy به اندازهٔ Retry-After صبر و دوباره ارسال می‌کند؛ قطعی شبکه هم تا سه بار تکرار می‌شود.
تنظیمات زنده تغییر کیفیت، فرمت یا عرض (با تأخیر کوتاه برای کاهش درخواست‌ها) تصویر فعلی را فوراً دوباره بهینه می‌کند.
سازندهٔ ZIP یک نویسندهٔ ZIP کم‌حجم با CRC32، بدون کتابخانهٔ خارجی؛ چون تصاویر از قبل فشرده‌اند، در حالت Store ذخیره می‌شوند.
دوزبانه ویژگی data-i18n روی عناصر، دیکشنری فارسی و تغییر dir؛ زبان در کوکی seraf_lang ذخیره و با پنل هماهنگ می‌شود.
حالت ورود با GET /panel/me بررسی می‌کند کاربر وارد شده یا نه و دکمهٔ «ورود» را به «پنل کاربری» تبدیل می‌کند.

⚡ وب‌سرویس (API)

آدرس پایه: https://seraf.ir/api/v1 · احراز هویت: Authorization: Bearer srf_…

متد مسیر دسترسی کاربرد
GET /v1/status عمومی وضعیت سرویس و فرمت‌ها
GET /v1/plans عمومی پلن‌ها و قیمت‌ها
GET /v1/account توکن موجودی، پلن و محدودیت‌ها
GET /v1/usage توکن گزارش مصرف
POST /v1/optimize توکن بهینه‌سازی تصویر
GET /v1/download/{token} لینک دانلود یک‌بارمصرف
POST /v1/guest/optimize عمومی بهینه‌ساز رایگان صفحهٔ اصلی
curl -X POST https://seraf.ir/api/v1/optimize \
  -H "Authorization: Bearer $SERAF_KEY" \
  -F "image=@photo.jpg" -F "format=webp" -F "quality=80"
{
  "ok": true,
  "data": {
    "status": "ok",
    "input":  { "format": "jpeg", "bytes": 482113 },
    "output": { "format": "webp", "bytes": 98314, "width": 1600, "height": 1067 },
    "saved_percent": 79.61,
    "charged": 50,
    "download_url": "https://seraf.ir/api/v1/download/…"
  }
}

📘 مستندات کامل: docs/api.html (گرافیکی) · docs/API.txt (متنی)
شامل همهٔ پارامترها، کدهای خطا، محدودیت‌ها و نمونه‌کد cURL، PHP، Node.js و Python.


🧩 افزونهٔ وردپرس

  1. در پنل سراف وارد شوید و افزونه را از بخش «افزونه وردپرس» دانلود کنید.
  2. در وردپرس از مسیر «افزونه‌ها ← افزودن ← بارگذاری افزونه» آن را نصب و فعال کنید.
  3. در پنل سراف یک کلید API بسازید.
  4. در وردپرس به «رسانه ← بهینه‌ساز سراف ← تنظیمات» بروید و کلید را وارد کنید.
  5. تصاویر جدید خودکار بهینه می‌شوند؛ کتابخانهٔ فعلی را با «بهینه‌سازی گروهی» پردازش کنید.
ویژگی توضیح
⏱ پردازش آرام یکی‌یکی با مکث قابل تنظیم؛ هاست تحت فشار قرار نمی‌گیرد
🔁 ادامه‌پذیر تصاویر انجام‌شده هرگز دوباره هزینه ندارند
💾 پشتیبان نسخهٔ اصلی نگه داشته می‌شود و با یک کلیک برمی‌گردد
🌐 WebP ساخت نسخهٔ WebP و نمایش خودکار آن روی Apache و LiteSpeed
👛 موجودی زنده نمایش موجودی، سهمیه و میزان صرفه‌جویی در پیشخوان وردپرس

🎨 پالت رنگی

پالت رنگی سراف

نقش رنگ متغیر CSS
پس‌زمینه #07080F --bg
سطح #0D0F1C --bg-2
صورتی (اصلی) #FF3D7F --pink
بنفش #A855F7 گرادیان
فیروزه‌ای #22D3EE --cyan
موفقیت #34D399 --green
متن #EEF0FB --text
متن کم‌رنگ #9AA1BD --muted

گرادیان اصلی: linear-gradient(120deg, #ff3d7f 0%, #a855f7 50%, #22d3ee 100%)


💻 اجرای محلی

صفحهٔ اصلی کاملاً ایستا است و با هر وب‌سرور ساده‌ای اجرا می‌شود:

npx serve .

یا:

python -m http.server 8080

[!TIP] بهینه‌ساز، تعرفه‌ها و وضعیت ورود از مسیرهای /api/v1/* و /panel/* همان دامنه استفاده می‌کنند. برای کارکرد کامل در محیط محلی، این دو مسیر را با یک پراکسی به https://seraf.ir هدایت کنید، یا فایل‌ها را روی هاستی بگذارید که بک‌اند سراف روی آن نصب است.

استقرار روی هاست

فایل مخزن مسیر روی هاست
index.html، serviceworker.js، .htaccess public_html/
static/ public_html/static/
panel/assets/ public_html/panel/assets/

🔐 حریم خصوصی

  • بهینه‌ساز رایگان و حالت binary هیچ فایلی روی سرور نگه نمی‌دارند.
  • لینک‌های دانلود حالت JSON یک‌بارمصرف هستند و حداکثر ۱۰ دقیقه اعتبار دارند.
  • برای گزارش مصرف فقط نام فایل، حجم، فرمت و زمان ثبت می‌شود.

seraf.ir · پنل کاربری · مستندات API · ویرایشگر پیشرفته

ساخته‌شده با ❤️ برای وب سریع‌تر

About

سراف — بهینه‌ساز تصویر آنلاین، وب‌سرویس API و افزونهٔ وردپرس | Seraf: free batch image optimizer (WebP/AVIF), REST API & WordPress plugin — front-end

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0