🤗 راهنمای آپلود به 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 جدید
- به huggingface.co/new-space بروید
- اطلاعات زیر را وارد کنید:
Space name: datasourceforcryptocurrency License: MIT Select SDK: Docker - روی Create Space کلیک کنید
مرحله 2: آپلود فایلها
روش A: از طریق Web Interface (سادهتر)
- در صفحه Space خود، روی تب Files کلیک کنید
- روی Add file کلیک کنید
- فایلهای زیر را یک به یک آپلود کنید:
📄 app.py
📄 requirements.txt
📄 Dockerfile
- برای آپلود
index.html:- روی Add file کلیک کنید
- Create a new file را انتخاب کنید
- نام فایل را
templates/index.htmlبگذارید - محتوای فایل را paste کنید
- Commit کنید
روش B: از طریق Git (پیشرفته)
# 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
- پس از آپلود، Hugging Face به صورت خودکار شروع به build میکند
- در تب Logs میتوانید پیشرفت را ببینید
- زمان build: حدود 2-3 دقیقه
- پس از اتمام build، Space شما آماده است!
مرحله 4: تست
- روی لینک Space خود کلیک کنید
- صفحه اصلی باید بارگذاری شود
- تبهای مختلف را امتحان کنید:
- 🔥 ترندها
- 💎 برترینها
- 📰 اخبار
- 📊 احساسات
- ⛓️ بلاکچین
📋 Checklist آپلود
قبل از آپلود، این موارد را چک کنید:
✅ فایل app.py
# مطمئن شوید که این خط وجود دارد:
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
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
علت: وابستگیهای اشتباه یا ناسازگار
راهحل:
# چک کنید که requirements.txt درست است
# فقط این 4 خط باید وجود داشته باشد:
fastapi==0.104.1
uvicorn[standard]==0.24.0
httpx==0.25.2
python-dotenv==1.0.0
مشکل: Application Error
علت: Port اشتباه یا فایلها ناقص
راهحل:
- مطمئن شوید port 7860 است
- بررسی کنید که پوشه
templates/وجود دارد - بررسی کنید که
index.htmlداخلtemplates/است
مشکل: صفحه سفید
علت: مسیر فایل HTML اشتباه است
راهحل:
# در 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 (خلاصه)
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 کنید:
- به Settings بروید
- Visibility را روی Public تنظیم کنید
- 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
📞 کمک بیشتر
اگر مشکلی دارید:
- Logs را بررسی کنید: تب Logs در Space
- تست محلی کنید:
python app.py - فایلها را چک کنید: مطمئن شوید همه موجودند
- Community بپرسید: Hugging Face Discord
موفق باشید! 🚀✨
این داشبورد حالا آماده است تا به کاربران شما سرویس بدهد!