# 🌐 راهنمای استقرار (Deployment Guide) این فایل شامل دستورالعمل کامل برای استقرار داشبورد کریپتو در پلتفرم‌های مختلف است. --- ## 📋 فهرست 1. [Hugging Face Spaces](#1-hugging-face-spaces) 2. [Railway.app](#2-railwayapp) 3. [Render.com](#3-rendercom) 4. [Oracle Cloud (رایگان)](#4-oracle-cloud-رایگان) 5. [Vercel](#5-vercel) 6. [Docker (محلی)](#6-docker-محلی) 7. [VPS / سرور اختصاصی](#7-vps--سرور-اختصاصی) --- ## 1. Hugging Face Spaces ### 🎯 مزایا - ✅ رایگان - ✅ راه‌اندازی سریع - ✅ URL عمومی - ✅ مناسب برای demo ### 📝 مراحل استقرار #### روش 1: استفاده از Docker (توصیه می‌شود) 1. **ایجاد Space جدید** - به [huggingface.co/spaces](https://huggingface.co/spaces) بروید - روی "Create new Space" کلیک کنید - نام Space را وارد کنید - SDK را روی **Docker** تنظیم کنید 2. **آپلود فایل‌ها** ```bash 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 استفاده می‌شود: ```dockerfile 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. **ثبت نام** - به [railway.app](https://railway.app) بروید - Sign up با GitHub 2. **Deploy از GitHub** ```bash # 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. **تنظیمات (اختیاری)** ```bash # متغیرهای محیطی 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. **ثبت نام** - [render.com](https://render.com) 2. **New Web Service** - Connect GitHub repository - یا Manual Deploy 3. **تنظیمات** ```yaml 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](https://cloud.oracle.com) - نیاز به کارت اعتباری (شارژ نمی‌شود) 2. **ایجاد VM Instance** - Compute > Instances > Create Instance - Shape: VM.Standard.E2.1.Micro (Free) - Image: Ubuntu 22.04 3. **نصب Python** ```bash ssh ubuntu@YOUR_VM_IP sudo apt update sudo apt install python3 python3-pip -y ``` 4. **Deploy پروژه** ```bash # آپلود فایل‌ها 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** ```bash sudo nano /etc/systemd/system/crypto-dashboard.service ``` محتوا: ```ini [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 ``` فعال‌سازی: ```bash 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** ```bash docker build -t crypto-dashboard . ``` 2. **Run Container** ```bash docker run -p 7860:7860 crypto-dashboard ``` 3. **با Docker Compose** ایجاد `docker-compose.yml`: ```yaml version: '3.8' services: crypto-dashboard: build: . ports: - "7860:7860" restart: always ``` اجرا: ```bash docker-compose up -d ``` --- ## 7. VPS / سرور اختصاصی ### 📝 مراحل (Ubuntu/Debian) 1. **نصب Dependencies** ```bash sudo apt update sudo apt install python3 python3-pip nginx -y ``` 2. **آپلود پروژه** ```bash cd /opt sudo git clone YOUR_REPO cd crypto_dashboard sudo pip3 install -r requirements.txt ``` 3. **ایجاد Systemd Service** ```bash sudo nano /etc/systemd/system/crypto-dashboard.service ``` محتوا: ```ini [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 (اختیاری)** ```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. **فعال‌سازی** ```bash 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) ```bash # با Certbot (Let's Encrypt) sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com ``` ### Monitoring ```bash # لاگ‌ها sudo journalctl -u crypto-dashboard -f # وضعیت سرویس sudo systemctl status crypto-dashboard ``` ### Updates ```bash 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 باز کنید **موفق باشید! 🚀**