Search K
البدء
جرّب قبل التثبيت
استكشف الواجهة الكاملة على demo.snapotter.com - دون الحاجة إلى تسجيل أو تثبيت.
بداية سريعة
bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latestتشغّل هذه الحاوية الواحدة كل ما تحتاجه: مع عدم تعيين DATABASE_URL، تبدأ PostgreSQL و Redis الخاصين بها على واجهة الاسترجاع (الوضع المدمج) وتحتفظ بجميع البيانات في وحدة التخزين SnapOtter-data. إنها أسرع طريقة لتجربة SnapOtter أو الاستضافة الذاتية على مختبر منزلي. لبيئة الإنتاج، شغّل حزمة Docker Compose أدناه، التي تبقي PostgreSQL و Redis في حاوياتهما الخاصة. يعمل الوضع المدمج كـ root (الافتراضي) ويتوقف تلقائيًا بمجرد تعيينك لـ DATABASE_URL.
سيُطلب منك تغيير كلمة مرورك عند أول تسجيل دخول.
تحليلات المنتج المجهولة
يتضمن SnapOtter تحليلات منتج مجهولة افتراضيًا. لإيقافها، افتح Settings → System → Privacy وأطفئ Anonymous Product Analytics. تتوقف فورًا للنسخة بأكملها.
يمكنك أيضًا تعيين متغير البيئة SNAPOTTER_TELEMETRY=0 (يعمل false و off أيضًا) لتعطيل كل القياس عن بُعد للنسخة دون إعادة بناء.
مراقبة الأخطاء مدعومة بـ Sentry، الذي يرعى SnapOtter عبر برنامجه مفتوح المصدر.
للاطلاع على تفاصيل ما يُجمع، راجع ما يجمعه SnapOtter.
تسريع NVIDIA CUDA
أضف --gpus all لإزالة الخلفية، وتكبير الدقة، و OCR، وتحسين الوجوه، والاستعادة المُسرَّعة بـ NVIDIA CUDA:
bash
docker run -d --name SnapOtter -p 1349:1349 --gpus all -v SnapOtter-data:/data snapotter/snapotter:latestيتطلب NVIDIA Container Toolkit. يرجع إلى المعالج المركزي تلقائيًا عندما يكون CUDA غير متاح. تسريع iGPU من Intel/AMD عبر VA-API أو Quick Sync أو OpenCL غير مدعوم لاستدلال الذكاء الاصطناعي حاليًا. راجع وسوم Docker لاختبارات الأداء.
متوفر أيضًا على GHCR
bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data ghcr.io/snapotter-hq/snapotter:latestينشر كلا السجلين نفس الصورة عند كل إصدار.
Docker Compose
yaml
services:
SnapOtter:
image: snapotter/snapotter:latest # or ghcr.io/snapotter-hq/snapotter:latest
ports:
- "1349:1349"
volumes:
- SnapOtter-data:/data
environment:
- AUTH_ENABLED=true
- DEFAULT_USERNAME=admin
- DEFAULT_PASSWORD=admin
- DATABASE_URL=postgres://snapotter:snapotter@postgres:5432/snapotter
- REDIS_URL=redis://redis:6379
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
postgres:
image: postgres:17-alpine
environment:
POSTGRES_USER: snapotter
POSTGRES_PASSWORD: snapotter
POSTGRES_DB: snapotter
volumes:
- SnapOtter-pgdata:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U snapotter"]
interval: 10s
timeout: 5s
retries: 12
redis:
image: redis:8-alpine
command: ["redis-server", "--maxmemory-policy", "noeviction", "--appendonly", "yes"]
volumes:
- SnapOtter-redisdata:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 12
volumes:
SnapOtter-data:
SnapOtter-pgdata:
SnapOtter-redisdata:راجع التهيئة لجميع متغيرات البيئة.
البناء من المصدر
المتطلبات المسبقة: Node.js 22+، و pnpm 9+، و Docker (لـ Postgres + Redis)، و Python 3.10+ (لميزات الذكاء الاصطناعي)، و Git.
bash
git clone https://github.com/snapotter-hq/SnapOtter.git
cd SnapOtter
docker compose -f docker-compose.dev.yml up -d # start Postgres + Redis
pnpm install
pnpm dev- الواجهة الأمامية: http://localhost:1349
- الواجهة الخلفية: http://localhost:13490
ما يمكنك فعله
معالجة الملفات (200+ أداة)
| الوسيط | العدد | أمثلة على الأدوات |
|---|---|---|
| الصور | 105 | تغيير الحجم، والاقتصاص، والضغط، والتحويل، وإزالة الخلفية، وتكبير الدقة، و OCR، والعلامة المائية، والملصقة، والتلوين، وأدوات GIF، وإعدادات التنسيق المسبقة |
| الفيديو | 57 | القص، والاقتصاص، والضغط، والتحويل، والدمج، واستخراج الصوت، والترجمات التلقائية، والفيديو إلى GIF، وتغيير الحجم، والتثبيت، وإعدادات التنسيق المسبقة |
| الصوت | 27 | القص، والدمج، والتحويل، والتسوية، وتقليل الضوضاء، والنسخ النصي، وتحويل درجة النغمة، والتلاشي، وصانع نغمات الرنين، وإعدادات التنسيق المسبقة |
| PDF / المستندات | 42 | الدمج، والتقسيم، والضغط، و OCR، والعلامة المائية، والتنقيح، و Word إلى PDF، و Excel إلى PDF، والتدوير، والحماية، والإصلاح |
| الملفات | 10 | CSV إلى JSON، و JSON إلى XML، ودمج ملفات CSV، وتقسيم CSV، وإنشاء ZIP، واستخراج ZIP، وصانع المخططات، و YAML/JSON |
خطوط الأنابيب
اربط الأدوات في سير عمل متعدد الخطوات وطبّقها على صورة واحدة أو دفعة كاملة:
- افتح Pipelines في الشريط الجانبي.
- أضف خطوات (أي أداة، وأي إعدادات).
- شغّل على ملف واحد - أو دفعة كاملة دفعة واحدة.
- احفظ خط الأنابيب لإعادة استخدامه لاحقًا.
تسمح خطوط الأنابيب بـ 20 خطوة افتراضيًا. عيّن MAX_PIPELINE_STEPS=0 لجعل الحد غير محدود.
مكتبة الملفات
يمكن حفظ كل ملف تعالجه في مكتبة Files الخاصة بك. يتتبع SnapOtter سجل الإصدارات الكامل حتى تتمكن من تتبع كل خطوة معالجة من عملية الرفع الأصلية إلى الإخراج النهائي.
الحفظ صريح: تُحفظ النتائج التي تحفظها في المكتبة حتى تحذفها، بينما تُمحى النتائج التي تعالجها وتتركها غير محفوظة تلقائيًا بعد 72 ساعة (قابلة للتهيئة عبر FILE_MAX_AGE_HOURS).
REST API ومفاتيح API
كل أداة قابلة للوصول عبر HTTP:
bash
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
-H "Authorization: Bearer si_<your-api-key>" \
-F "[email protected]" \
-F 'settings={"width":800,"height":600,"fit":"cover"}'أنشئ مفاتيح API ضمن Settings → API Keys. راجع مرجع REST API لجميع النقاط الطرفية، أو زُر http://localhost:1349/api/docs للمرجع التفاعلي.
متعدد المستخدمين والفِرق
فعّل عدة مستخدمين مع التحكم في الوصول المستند إلى الأدوار:
- المسؤول: وصول كامل - إدارة المستخدمين، والفِرق، والإعدادات، وجميع الملفات/خطوط الأنابيب/مفاتيح API
- المستخدم: استخدام الأدوات، وإدارة ملفاته/خطوط أنابيبه/مفاتيح API الخاصة به
أنشئ فِرقًا ضمن Settings → Teams لتجميع المستخدمين.
عيّن AUTH_ENABLED=true (أو false للمستخدم الواحد/الاستخدام الذاتي دون تسجيل دخول).
