Really-amin's picture
Upload 15 files
3947f52 verified
|
raw
history blame
9.73 kB

🌐 راهنمای استقرار (Deployment Guide)

این فایل شامل دستورالعمل کامل برای استقرار داشبورد کریپتو در پلتفرم‌های مختلف است.


📋 فهرست

  1. Hugging Face Spaces
  2. Railway.app
  3. Render.com
  4. Oracle Cloud (رایگان)
  5. Vercel
  6. Docker (محلی)
  7. VPS / سرور اختصاصی

1. Hugging Face Spaces

🎯 مزایا

  • ✅ رایگان
  • ✅ راه‌اندازی سریع
  • ✅ URL عمومی
  • ✅ مناسب برای demo

📝 مراحل استقرار

روش 1: استفاده از Docker (توصیه می‌شود)

  1. ایجاد Space جدید

    • به huggingface.co/spaces بروید
    • روی "Create new Space" کلیک کنید
    • نام Space را وارد کنید
    • SDK را روی Docker تنظیم کنید
  2. آپلود فایل‌ها

    git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE
    cd YOUR_SPACE
    
    # کپی فایل‌های پروژه
    cp -r crypto_dashboard/* .
    
    git add .
    git commit -m "Initial commit"
    git push
    
  3. تنظیم Port در فایل Dockerfile مطمئن شوید که port 7860 استفاده می‌شود:

    CMD ["python", "app.py"]
    

روش 2: بدون Docker

  1. ایجاد فایل app.py در روت
  2. ایجاد پوشه templates/ و قرار دادن index.html
  3. ایجاد requirements.txt
  4. Push به repository

⚙️ تنظیمات

در تب Settings:

  • Hardware: CPU basic (رایگان)
  • Port: 7860
  • Sleep Time: 48 hours (برای free tier)

🔗 نتیجه

Space شما در آدرس زیر در دسترس خواهد بود:

https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE

2. Railway.app

🎯 مزایا

  • ✅ Free tier سخاوتمندانه ($5 credit/month)
  • ✅ Deploy خودکار از Git
  • ✅ Custom domain رایگان
  • ✅ Logs و Monitoring

📝 مراحل استقرار

  1. ثبت نام

  2. Deploy از GitHub

    # Push پروژه به GitHub
    git init
    git add .
    git commit -m "Initial commit"
    git push origin main
    
  3. ایجاد Project در Railway

    • New Project
    • Deploy from GitHub repo
    • انتخاب repository
  4. تنظیمات (اختیاری)

    # متغیرهای محیطی
    PORT=7860
    HOST=0.0.0.0
    
  5. Deploy

    • Railway به صورت خودکار deploy می‌کند
    • URL عمومی دریافت می‌کنید

💰 هزینه

  • Free tier: $5 credit/month (کافی برای این پروژه)
  • پس از اتمام: $5-10/month

3. Render.com

🎯 مزایا

  • ✅ Free tier
  • ✅ راه‌اندازی ساده
  • ✅ SSL رایگان
  • ✅ Auto-deploy

📝 مراحل استقرار

  1. ثبت نام

  2. New Web Service

    • Connect GitHub repository
    • یا Manual Deploy
  3. تنظیمات

    Name: crypto-dashboard
    Environment: Python 3
    Build Command: pip install -r requirements.txt
    Start Command: python app.py
    
  4. Environment Variables

    PORT=7860
    
  5. Deploy

    • Create Web Service

⚠️ نکته

Free tier ممکن است پس از مدتی inactive شود (sleep mode)


4. Oracle Cloud (رایگان)

🎯 مزایا

  • ✅ رایگان برای همیشه
  • ✅ 2 VM instances
  • ✅ 1GB RAM هر کدام
  • ✅ 100GB storage

📝 مراحل استقرار

  1. ثبت نام در Oracle Cloud

    • cloud.oracle.com
    • نیاز به کارت اعتباری (شارژ نمی‌شود)
  2. ایجاد VM Instance

    • Compute > Instances > Create Instance
    • Shape: VM.Standard.E2.1.Micro (Free)
    • Image: Ubuntu 22.04
  3. نصب Python

    ssh ubuntu@YOUR_VM_IP
    
    sudo apt update
    sudo apt install python3 python3-pip -y
    
  4. Deploy پروژه

    # آپلود فایل‌ها
    scp -r crypto_dashboard ubuntu@YOUR_VM_IP:~/
    
    # SSH به سرور
    ssh ubuntu@YOUR_VM_IP
    
    cd crypto_dashboard
    pip3 install -r requirements.txt
    
    # اجرا
    python3 app.py
    
  5. نصب به عنوان Service

    sudo nano /etc/systemd/system/crypto-dashboard.service
    

    محتوا:

    [Unit]
    Description=Crypto Dashboard
    After=network.target
    
    [Service]
    User=ubuntu
    WorkingDirectory=/home/ubuntu/crypto_dashboard
    ExecStart=/usr/bin/python3 /home/ubuntu/crypto_dashboard/app.py
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    فعال‌سازی:

    sudo systemctl enable crypto-dashboard
    sudo systemctl start crypto-dashboard
    
  6. باز کردن Port

    • Networking > Virtual Cloud Networks
    • Security Lists > Add Ingress Rule
    • Port: 7860

🔗 دسترسی

http://YOUR_VM_IP:7860

5. Vercel

🎯 مزایا

  • ✅ رایگان
  • ✅ سریع
  • ✅ Custom domain

⚠️ محدودیت

Vercel برای Serverless Functions طراحی شده، برای FastAPI نیاز به تنظیمات اضافی دارد.

📝 نیاز به:

  1. ایجاد vercel.json
  2. استفاده از @vercel/python
  3. تبدیل به Serverless Functions

توصیه: برای این پروژه از Railway یا Render استفاده کنید.


6. Docker (محلی)

📝 مراحل

  1. Build Image

    docker build -t crypto-dashboard .
    
  2. Run Container

    docker run -p 7860:7860 crypto-dashboard
    
  3. با Docker Compose

    ایجاد docker-compose.yml:

    version: '3.8'
    services:
      crypto-dashboard:
        build: .
        ports:
          - "7860:7860"
        restart: always
    

    اجرا:

    docker-compose up -d
    

7. VPS / سرور اختصاصی

📝 مراحل (Ubuntu/Debian)

  1. نصب Dependencies

    sudo apt update
    sudo apt install python3 python3-pip nginx -y
    
  2. آپلود پروژه

    cd /opt
    sudo git clone YOUR_REPO
    cd crypto_dashboard
    sudo pip3 install -r requirements.txt
    
  3. ایجاد Systemd Service

    sudo nano /etc/systemd/system/crypto-dashboard.service
    

    محتوا:

    [Unit]
    Description=Crypto Dashboard API
    After=network.target
    
    [Service]
    Type=simple
    User=www-data
    WorkingDirectory=/opt/crypto_dashboard
    ExecStart=/usr/bin/python3 /opt/crypto_dashboard/app.py
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  4. تنظیم Nginx (اختیاری)

    server {
        listen 80;
        server_name yourdomain.com;
        
        location / {
            proxy_pass http://127.0.0.1:7860;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
  5. فعال‌سازی

    sudo systemctl enable crypto-dashboard
    sudo systemctl start crypto-dashboard
    sudo systemctl enable nginx
    sudo systemctl restart nginx
    

📊 مقایسه پلتفرم‌ها

پلتفرم رایگان راحتی سرعت Custom Domain مناسب برای
Hugging Face ⭐⭐⭐⭐⭐ ⭐⭐⭐ Demo, Testing
Railway 💵 Limited ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ Production
Render ✅ Limited ⭐⭐⭐⭐ ⭐⭐⭐ Production
Oracle Cloud ⭐⭐⭐ ⭐⭐⭐⭐ Production
VPS 💵 ⭐⭐ ⭐⭐⭐⭐⭐ Production

🎯 توصیه بر اساس نیاز

برای Demo و Testing

Hugging Face Spaces 🏆

برای Production با بودجه کم

Oracle Cloud (رایگان) یا Render.com

برای Production حرفه‌ای

Railway.app یا VPS

برای Maximum Performance

VPS اختصاصی با Nginx


🔧 نکات عمومی

SSL Certificate (HTTPS)

# با Certbot (Let's Encrypt)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

Monitoring

# لاگ‌ها
sudo journalctl -u crypto-dashboard -f

# وضعیت سرویس
sudo systemctl status crypto-dashboard

Updates

cd crypto_dashboard
git pull
sudo systemctl restart crypto-dashboard

❓ سوالات متداول

Q: چرا پس از deploy سایت کار نمی‌کند؟ A: Port را چک کنید (باید 7860 باشد) و Logs را بررسی کنید

Q: چگونه Custom Domain اضافه کنم؟ A: در Settings پلتفرم خود، Custom Domain را تنظیم کنید

Q: چرا سرعت کند است؟ A: Cache را فعال کنید و CDN استفاده کنید

Q: چگونه Database اضافه کنم؟ A: SQLite (محلی) یا PostgreSQL (cloud) را اضافه کنید


📞 پشتیبانی

اگر در استقرار مشکل دارید:

  1. Logs را بررسی کنید
  2. Port و Firewall را چک کنید
  3. Dependencies را دوباره نصب کنید
  4. Issue باز کنید

موفق باشید! 🚀