# 🤗 راهنمای آپلود به Hugging Face Spaces ## 📦 فایل‌های مورد نیاز برای آپلود برای استقرار در Hugging Face Spaces، شما فقط به **4 فایل** نیاز دارید: ### ✅ فایل‌های ضروری: ``` 1. 📄 app.py ← Backend API 2. 📄 requirements.txt ← وابستگی‌ها 3. 📄 Dockerfile ← تنظیمات Docker 4. 📂 templates/ └── 📄 index.html ← رابط کاربری ``` ### ❌ فایل‌های غیرضروری (نیازی به آپلود ندارند): ``` - README.md (اختیاری - برای مستندات) - QUICKSTART.md (مستندات) - COMPARISON.md (مستندات) - DEPLOYMENT.md (مستندات) - START_HERE.md (مستندات) - test.py (فقط برای تست محلی) - Makefile (فقط برای development) - .env.example (نمونه تنظیمات) - .gitignore (Git) ``` --- ## 🚀 مراحل دقیق آپلود ### مرحله 1: ایجاد Space جدید 1. به [huggingface.co/new-space](https://huggingface.co/new-space) بروید 2. اطلاعات زیر را وارد کنید: ``` Space name: datasourceforcryptocurrency License: MIT Select SDK: Docker ``` 3. روی **Create Space** کلیک کنید --- ### مرحله 2: آپلود فایل‌ها #### روش A: از طریق Web Interface (ساده‌تر) 1. در صفحه Space خود، روی تب **Files** کلیک کنید 2. روی **Add file** کلیک کنید 3. فایل‌های زیر را یک به یک آپلود کنید: ``` 📄 app.py 📄 requirements.txt 📄 Dockerfile ``` 4. برای آپلود `index.html`: - روی **Add file** کلیک کنید - **Create a new file** را انتخاب کنید - نام فایل را `templates/index.html` بگذارید - محتوای فایل را paste کنید - **Commit** کنید #### روش B: از طریق Git (پیشرفته) ```bash # 1. Clone کردن Space git clone https://huggingface.co/spaces/YOUR_USERNAME/datasourceforcryptocurrency cd datasourceforcryptocurrency # 2. کپی فایل‌ها cp /path/to/crypto_dashboard/app.py . cp /path/to/crypto_dashboard/requirements.txt . cp /path/to/crypto_dashboard/Dockerfile . mkdir templates cp /path/to/crypto_dashboard/templates/index.html templates/ # 3. Commit و Push git add . git commit -m "Initial commit" git push ``` --- ### مرحله 3: بررسی Build 1. پس از آپلود، Hugging Face به صورت خودکار شروع به build می‌کند 2. در تب **Logs** می‌توانید پیشرفت را ببینید 3. زمان build: حدود 2-3 دقیقه 4. پس از اتمام build، Space شما آماده است! --- ### مرحله 4: تست 1. روی لینک Space خود کلیک کنید 2. صفحه اصلی باید بارگذاری شود 3. تب‌های مختلف را امتحان کنید: - 🔥 ترندها - 💎 برترین‌ها - 📰 اخبار - 📊 احساسات - ⛓️ بلاکچین --- ## 📋 Checklist آپلود قبل از آپلود، این موارد را چک کنید: ### ✅ فایل app.py ```python # مطمئن شوید که این خط وجود دارد: if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=7860) ``` ### ✅ فایل requirements.txt ``` fastapi==0.104.1 uvicorn[standard]==0.24.0 httpx==0.25.2 python-dotenv==1.0.0 ``` ### ✅ فایل Dockerfile ```dockerfile FROM python:3.10-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . RUN mkdir -p templates CMD ["python", "app.py"] ``` ### ✅ ساختار فایل‌ها ``` your-space/ ├── app.py ├── requirements.txt ├── Dockerfile └── templates/ └── index.html ``` --- ## 🔧 عیب‌یابی ### مشکل: Build Failed **علت**: وابستگی‌های اشتباه یا ناسازگار **راه‌حل**: ```bash # چک کنید که requirements.txt درست است # فقط این 4 خط باید وجود داشته باشد: fastapi==0.104.1 uvicorn[standard]==0.24.0 httpx==0.25.2 python-dotenv==1.0.0 ``` --- ### مشکل: Application Error **علت**: Port اشتباه یا فایل‌ها ناقص **راه‌حل**: 1. مطمئن شوید port 7860 است 2. بررسی کنید که پوشه `templates/` وجود دارد 3. بررسی کنید که `index.html` داخل `templates/` است --- ### مشکل: صفحه سفید **علت**: مسیر فایل HTML اشتباه است **راه‌حل**: ```python # در app.py بررسی کنید: html_path = os.path.join(os.path.dirname(__file__), "templates", "index.html") if os.path.exists(html_path): return FileResponse(html_path) ``` --- ### مشکل: API Error **علت**: CoinGecko rate limit یا network issue **راه‌حل**: - Cache به صورت خودکار فعال است - Fallback data برای زمان خطا موجود است - صبر کنید و Refresh کنید --- ## 🎯 نکات مهم ### 1. حجم فایل‌ها ``` ✅ کل پروژه: ~200KB (خیلی کم!) ✅ Build time: 2-3 دقیقه ✅ Memory usage: ~50-100MB ``` ### 2. Performance ``` ✅ Cold start: 3-5 ثانیه ✅ API response: 100-300ms (با cache: <50ms) ✅ Auto-refresh: هر 30 ثانیه ``` ### 3. محدودیت‌های Free Tier ``` ⚠️ Sleep بعد از 48 ساعت بدون استفاده ⚠️ ممکن است گاهی کند شود ✅ برای demo و testing عالی است ``` --- ## 📸 نمونه تصاویر ### قبل از Build: ``` Space Status: Building... Logs: Installing dependencies... ``` ### بعد از Build: ``` Space Status: Running ✓ URL: https://huggingface.co/spaces/USERNAME/SPACE ``` --- ## 🌟 بهترین روش‌ها ### 1. نام‌گذاری Space ``` ✅ استفاده از حروف کوچک و خط فاصله ✅ نام توصیفی ❌ استفاده از کاراکترهای خاص ``` ### 2. مستندات ``` ✅ README.md را در Space اضافه کنید ✅ توضیحات فارسی بنویسید ✅ نمونه استفاده قرار دهید ``` ### 3. Updates ``` ✅ هر تغییر، commit و push کنید ✅ از Git branching استفاده کنید ✅ تست کنید قبل از push ``` --- ## 🎓 مثال کامل ### فایل app.py (خلاصه) ```python from fastapi import FastAPI app = FastAPI(title="Crypto Dashboard") @app.get("/") async def root(): return FileResponse("templates/index.html") if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=7860) ``` ### ساختار نهایی در Hugging Face: ``` datasourceforcryptocurrency/ ├── 📄 app.py (Backend) ├── 📄 requirements.txt (Dependencies) ├── 📄 Dockerfile (Docker config) ├── 📄 README.md (اختیاری) └── 📂 templates/ └── 📄 index.html (Frontend) ``` --- ## ✅ Checklist نهایی قبل از publish کردن Space: - [ ] همه فایل‌های ضروری آپلود شده‌اند - [ ] requirements.txt صحیح است (فقط 4 پکیج) - [ ] Dockerfile به درستی تنظیم شده - [ ] templates/index.html موجود است - [ ] Build موفقیت‌آمیز بود - [ ] Space به درستی کار می‌کند - [ ] تمام تب‌ها تست شده‌اند - [ ] API endpoints پاسخ می‌دهند --- ## 🚀 آماده برای Launch! حالا می‌توانید Space خود را public کنید: 1. به Settings بروید 2. Visibility را روی **Public** تنظیم کنید 3. Share کنید: `https://huggingface.co/spaces/YOUR_USERNAME/SPACE` --- ## 🎊 تبریک! Space شما آماده است! 🎉 **لینک مستقیم:** ``` https://huggingface.co/spaces/Really-amin/datasourceforcryptocurrency ``` **API Documentation:** ``` https://huggingface.co/spaces/Really-amin/datasourceforcryptocurrency/docs ``` --- ## 📞 کمک بیشتر اگر مشکلی دارید: 1. **Logs را بررسی کنید**: تب Logs در Space 2. **تست محلی کنید**: `python app.py` 3. **فایل‌ها را چک کنید**: مطمئن شوید همه موجودند 4. **Community بپرسید**: Hugging Face Discord --- **موفق باشید! 🚀✨** این داشبورد حالا آماده است تا به کاربران شما سرویس بدهد!