Files
2025-11-06 20:55:35 +02:00

6.8 KiB

📁 Deployment Scripts - Index

Structura completă de scripturi pentru deployment Windows Service.

📂 Structura Directoarelor

deployment/windows/
├── README.md                    # Documentație completă
├── QUICK_START.md              # Ghid rapid 5 minute
├── INDEX.md                    # Acest fișier
├── scripts/                    # Scripturi PowerShell
│   ├── menu.ps1                # ⭐ Meniu interactiv (START HERE)
│   ├── deploy.ps1              # 🚀 Deployment complet
│   ├── install_service.ps1     # Instalare serviciu Windows
│   ├── uninstall_service.ps1   # Dezinstalare serviciu
│   ├── restart_service.ps1     # Restart rapid serviciu
│   ├── status.ps1              # Status serviciu și logs
│   └── view_logs.ps1           # Viewer logs interactiv
└── tools/                      # Binare (auto-download)
    ├── .gitignore
    └── nssm.exe                # Downloaded by install_service

🚦 Quick Navigation

Dacă vrei să... Rulează
Meniu interactiv menu.ps1
🆕 Instalezi prima dată deploy.ps1
📊 Verifici statusul status.ps1
🔄 Restarți serviciul restart_service.ps1
📝 Vezi logs-uri view_logs.ps1
🗑️ Dezinstalezi uninstall_service.ps1
📖 Citești ghidul README.md sau QUICK_START.md

💡 TIP: Folosește menu.ps1 pentru o experiență user-friendly!


📜 Descriere Scripturi

🚀 deploy.bat (Main Script)

Scop: Deployment complet one-click

Ce face:

  1. Verifică Python și dependențe
  2. Configurează .env (dacă nu există)
  3. Instalează requirements Python
  4. Instalează browsere Playwright
  5. Creează și pornește serviciul Windows
  6. Verifică status final

Rulare:

cd deployment\windows\scripts
deploy.bat

Durată: 2-5 minute (prima dată)

Note:

  • Necesită Administrator
  • Interactiv (așteaptă configurare .env)

⚙️ install_service.bat

Scop: Instalează DOAR serviciul Windows (fără dependențe)

Ce face:

  1. Descarcă NSSM (dacă lipsește)
  2. Verifică .env și bot script
  3. Instalează serviciu cu NSSM
  4. Configurează logging, restart policy
  5. Pornește serviciul

Rulare:

install_service.bat

Use case: După ce ai instalat manual Python + requirements


🗑️ uninstall_service.bat

Scop: Elimină serviciul din Windows

Ce face:

  1. Oprește serviciul (dacă rulează)
  2. Dezinstalează cu NSSM
  3. Verifică eliminare completă

Rulare:

uninstall_service.bat

Note:

  • NU șterge fișiere proiect
  • NU șterge logs
  • Doar elimină serviciul din registry

🔄 restart_service.bat

Scop: Restart rapid serviciu (după modificări cod)

Ce face:

  1. Stop serviciu
  2. Wait 2 secunde
  3. Start serviciu
  4. Verifică status

Rulare:

restart_service.bat

Use case: După git pull sau modificări .env


📊 status.bat

Scop: Status detaliat serviciu + logs

Ce face:

  1. Verifică dacă serviciul există
  2. Afișează status detaliat (sc query)
  3. Afișează configurație (sc qc)
  4. Afișează ultimele 10 linii din logs
  5. Afișează comenzi utile

Rulare:

status.bat

Use case: Quick health check


📝 view_logs.bat

Scop: Viewer interactiv logs

Meniu:

  1. View stdout (toate logs)
  2. View stderr (doar erori)
  3. Tail stdout (live updates)
  4. Tail stderr (live erori)
  5. Open Explorer în folder logs
  6. Șterge toate logs

Rulare:

view_logs.bat

Use case: Debugging, monitoring live


🔧 Configurare Serviciu Windows

Detalii Serviciu

Proprietate Valoare
Service Name BTGOTelegramBot
Display Name BTGO Telegram Trigger Bot
Executable python.exe
Arguments telegram_trigger_bot.py
Working Dir Project root
Start Type Automatic (Delayed)
Restart Policy On failure, 5s delay
Stdout Log logs/telegram_bot_stdout.log
Stderr Log logs/telegram_bot_stderr.log
Log Rotation 10 MB max

Managed by NSSM

NSSM (Non-Sucking Service Manager) este folosit pentru:

  • Simplifică crearea serviciilor din Python scripts
  • Gestionează logging automat
  • Auto-restart la crash
  • Gestiune environment variables

Download: Auto-descărcat de install_service.bat în tools/nssm.exe

Versiune: 2.24 (64-bit)


📋 Workflow Tipic

Prima Instalare (VM nou)

# 1. Clone repo
cd E:\proiecte
git clone <repo> btgo-playwright
cd btgo-playwright

# 2. Configurează .env
copy .env.example .env
notepad .env

# 3. Deploy complet
cd deployment\windows\scripts
deploy.bat

# 4. Verifică status
status.bat

# 5. Test în Telegram
# Trimite /start la bot

Update Cod (după modificări)

# 1. Pull changes
cd E:\proiecte\btgo-playwright
git pull

# 2. Update requirements (dacă s-au modificat)
python -m pip install -r requirements.txt

# 3. Restart serviciu
deployment\windows\scripts\restart_service.bat

# 4. Verifică logs
deployment\windows\scripts\view_logs.bat

Debug Issues

# 1. Verifică status
deployment\windows\scripts\status.bat

# 2. Verifică logs
deployment\windows\scripts\view_logs.bat
# Selectează opțiunea 2 (stderr)

# 3. Testează manual (dacă e nevoie)
net stop BTGOTelegramBot
python telegram_trigger_bot.py
# Vezi output direct în terminal

# 4. Restart serviciu
deployment\windows\scripts\restart_service.bat

Reinstalare Completă

# 1. Dezinstalează
deployment\windows\scripts\uninstall_service.bat

# 2. Șterge logs vechi (opțional)
del /q logs\*.log

# 3. Reinstalează
deployment\windows\scripts\deploy.bat

🛡️ Securitate

Protecție .env:

  • .env este în .gitignore (nu se commitează)
  • Conține credențiale sensibile (bot token, parole BTGO)
  • Setează permissions doar pentru Administrator

User IDs Telegram:

  • TELEGRAM_ALLOWED_USER_IDS restricționează accesul
  • Format: 123456789,987654321 (comma-separated)
  • Nu lăsa gol (permite oricui)

📞 Support

Documentație:

  • README.md - Documentație completă
  • QUICK_START.md - Ghid rapid 5 minute
  • ../../TELEGRAM_BOT_SETUP.md - Setup Telegram
  • ../../CLAUDE.md - Documentație proiect

Troubleshooting:

  1. Verifică status.bat
  2. Verifică view_logs.bat → stderr
  3. Testează manual: python telegram_trigger_bot.py

📄 Changelog

Data Versiune Modificări
2025-11-06 1.0 Initial release - Complete deployment suite

Happy Deploying! 🚀