# راه‌اندازی بات روی VPS

## پیش‌نیازها

- یک VPS با سیستم‌عامل Ubuntu 20.04 یا بالاتر
- دسترسی SSH به سرور
- نرم‌افزار انتقال فایل (WinSCP یا Filezilla) یا دانش کار با SCP

---

## مرحله ۱ — آپلود فایل‌های بات روی VPS

روی ویندوز می‌تونی از **WinSCP** استفاده کنی:
1. WinSCP رو باز کن
2. آدرس IP سرور، یوزر (معمولاً root) و پسورد رو وارد کن
3. پوشه `star_shop_bot` رو به `/root/` آپلود کن

یا با دستور SCP از ترمینال:
```bash
scp -r star_shop_bot root@IP_سرور:/root/
```

---

## مرحله ۲ — وصل شدن به VPS

با نرم‌افزار **Putty** (ویندوز) یا ترمینال:
```bash
ssh root@IP_سرور
```

---

## مرحله ۳ — اجرای اسکریپت نصب

```bash
cd /root/star_shop_bot
chmod +x setup.sh update.sh bot.sh
bash setup.sh
```

این اسکریپت به‌صورت خودکار:
- پایتون و pip رو نصب می‌کنه
- محیط مجازی (venv) می‌سازه
- کتابخونه‌های مورد نیاز رو نصب می‌کنه
- سرویس systemd رو می‌سازه تا بات بعد از ری‌استارت سرور هم خودکار بالا بیاد

---

## مرحله ۴ — تنظیم config.py

```bash
nano /opt/star_shop_bot/config.py
```

مقادیر زیر رو پر کن:
```python
BOT_TOKEN = "توکن_باتت_رو_از_BotFather_بگیر"
ADMIN_IDS = [آیدی_عددی_خودت]  # از @userinfobot بگیر
```

برای ذخیره در nano: `Ctrl+X` سپس `Y` سپس Enter

---

## مرحله ۵ — روشن کردن بات

```bash
bash /root/star_shop_bot/bot.sh start
```

برای مطمئن شدن از اجرا:
```bash
bash /root/star_shop_bot/bot.sh status
```

باید ببینی `Active: active (running)`.

---

## دستورات مدیریت روزانه

همه دستورات رو می‌تونی با اسکریپت `bot.sh` اجرا کنی:

```bash
bash /root/star_shop_bot/bot.sh start      # روشن کردن
bash /root/star_shop_bot/bot.sh stop       # خاموش کردن
bash /root/star_shop_bot/bot.sh restart    # ری‌استارت
bash /root/star_shop_bot/bot.sh status     # وضعیت
bash /root/star_shop_bot/bot.sh log        # لاگ زنده (Ctrl+C برای خروج)
bash /root/star_shop_bot/bot.sh log-last   # آخرین ۱۰۰ خط لاگ
bash /root/star_shop_bot/bot.sh backup     # بکاپ دستی از دیتابیس
bash /root/star_shop_bot/bot.sh config     # ویرایش config.py
```

---

## آپدیت بات (نسخه‌های جدید)

وقتی فایل‌های جدید بات رو داری:

1. فایل‌های جدید رو آپلود کن (جای قدیمی)
2. اجرا کن:
```bash
cd /root/star_shop_bot
bash update.sh
```

اسکریپت آپدیت به‌صورت خودکار `config.py` و `shop.db` رو دست نمی‌زنه تا اطلاعاتت پاک نشه.

---

## بکاپ از دیتابیس

دیتابیس بات در مسیر `/opt/star_shop_bot/shop.db` ذخیره می‌شه.
بات خودش هر X ساعت (که از پنل ادمین تنظیم می‌کنی) یه بکاپ می‌فرسته، ولی می‌تونی دستی هم بگیری:

```bash
bash /root/star_shop_bot/bot.sh backup
```

یا با WinSCP فایل `shop.db` رو دانلود کن.

---

## رفع مشکلات رایج

**بات استارت نمی‌شه:**
```bash
bash /root/star_shop_bot/bot.sh log-last
```
اگه خطای `Unauthorized` دیدی → توکن در config.py اشتباهه.
اگه خطای `ModuleNotFoundError` دیدی:
```bash
cd /opt/star_shop_bot && source venv/bin/activate && pip install -r requirements.txt
```

**بعد از ری‌استارت سرور بات خاموشه:**
```bash
systemctl enable star_shop_bot
```

**پورت یا فایروال:**
بات تلگرام با polling کار می‌کنه (نه webhook) — نیازی به باز کردن هیچ پورتی نیست.

---

## هاست‌های پیشنهادی

| هاست | قیمت تقریبی | مناسب برای |
|---|---|---|
| Hetzner (آلمان) | از ۴ یورو/ماه | بهترین قیمت به کیفیت |
| Contabo (آلمان) | از ۵ یورو/ماه | RAM زیاد، ارزان |
| ابرآروان (ایران) | از ۱۰۰ هزار تومان | پینگ کم برای ایران |
| لیارا (ایران) | از ۸۰ هزار تومان | ساده‌ترین برای مبتدی |

کمترین منابع لازم برای این بات: **1 CPU + 512MB RAM + 10GB دیسک**
