Really-amin's picture
Upload Short Hunter datasource gateway
99e6ac3 verified
|
Raw
History Blame Contribute Delete
10.2 kB
# 🌐 راهنمای استقرار (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 باز کنید
**موفق باشید! 🚀**