- Add A-Z alphabetical filter keyboard for clients and suppliers lists (same pattern as company selection, without emoji) - Increase clients/suppliers list pagination from 10 to 20 items per page - Remove emoji from company A-Z filter button for consistency - Add 6 new callback handlers: clients_alpha_menu, clients_alpha:LETTER, clients_alpha_page:PAGE:LETTER, and supplier equivalents - Dashboard service and models updates - Telegram bot: email handlers, auth, DB operations, internal API improvements - Frontend: dashboard cards updates (CashFlow, Clienti, Furnizori, Treasury) - Frontend: SolduriCompactCard and CollapsibleCard improvements - DashboardView enhancements - start.sh and run-with-restart.sh script updates - IIS web.config and service worker updates Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ROA2WEB - Windows Deployment
Arhitectură: Ultrathin Monolith | Serviciu: ROA2WEB-Backend (port 8000)
Quick Start
1. Instalare Server Nou
# Pe Windows Server (PowerShell Administrator)
cd C:\path\to\deployment\windows\scripts
.\Install-ROA2WEB.ps1
2. Configurare
notepad C:\inetpub\wwwroot\roa2web\backend\.env
# Module control:
MODULE_REPORTS_ENABLED=true
MODULE_DATA_ENTRY_ENABLED=true
MODULE_TELEGRAM_ENABLED=true
3. Start
Start-Service ROA2WEB-Backend
Deployment (Actualizări)
Opțiunea A: Din Windows (Publish-And-Deploy.ps1)
# Pe mașina de dezvoltare Windows
cd deployment\windows\scripts
.\Publish-And-Deploy.ps1
# Non-interactiv:
.\Publish-And-Deploy.ps1 -NonInteractive -Action Build -Component All
Opțiunea B: Din Linux/LXC (deploy.sh)
# Pe mașina de dezvoltare Linux
cd deployment/linux
./deploy.sh # Full deploy (frontend + backend)
./deploy.sh frontend # Doar frontend
./deploy.sh backend # Doar backend
./deploy.sh test # Test conexiune SSH
Ambele metode:
- Build frontend (npm) + copiere backend
- Transfer la server (
C:\Temp\deploy-YYYYMMDD-HHmmss\) - Server-ul auto-deploy în 5 minute (sau manual)
Management
Consolă Interactivă (Recomandat)
.\ROA2WEB-Console.ps1
Comenzi Rapide
# Service
Start-Service ROA2WEB-Backend
Stop-Service ROA2WEB-Backend
Restart-Service ROA2WEB-Backend
Get-Service ROA2WEB-Backend
# Status & Health
.\ROA2WEB-Console.ps1 -NonInteractive -Action Status
Invoke-WebRequest http://localhost:8000/health
# Logs
Get-Content C:\inetpub\wwwroot\roa2web\logs\backend-stdout.log -Tail 50
Get-Content C:\inetpub\wwwroot\roa2web\logs\backend-stderr.log -Tail 20
# Deploy manual
.\ROA2WEB-Console.ps1 -NonInteractive -Action DeployAll -PackagePath "C:\Temp\deploy-XXXXXXXX"
Structura Server
C:\inetpub\wwwroot\roa2web\
├── backend\ # FastAPI (Reports, Data Entry, Telegram modules)
│ └── .env # Configurare (MODULE_*_ENABLED flags)
├── frontend\ # Vue.js SPA + web.config
├── shared\ # Module Python partajate (auth, db)
├── logs\ # backend-stdout.log, backend-stderr.log
└── backups\ # Backup-uri automate
Arhitectură
Client → IIS (80/443)
│
├─ /roa2web/api/* → ROA2WEB-Backend (localhost:8000)
│ ├── Reports Module → Oracle DB
│ ├── Data Entry Module → SQLite
│ └── Telegram Module
│
└─ /roa2web/* → Frontend (Vue.js SPA)
Single Service: ROA2WEB-Backend pe port 8000
Module Control: Via .env flags (fără restart cod)
Workflow Deployment
DEV MACHINE WINDOWS SERVER
─────────── ──────────────
Publish-And-Deploy.ps1
sau ───► C:\Temp\deploy-*\
deploy.sh (Linux) │
▼
Check-And-Deploy.ps1
(scheduled task, 5 min)
│
▼
ROA2WEB-Console.ps1
├── Stop Service
├── Backup
├── Deploy Files
├── Start Service
└── Health Check
│
▼
✅ PRODUCTION RUNNING
Data Preserved During Deploy
During deployment, the following are automatically preserved (not overwritten):
Files Preserved
| Item | Location | Description |
|---|---|---|
.env |
backend/.env |
Environment configuration |
data/ |
backend/data/ |
All SQLite databases and uploads |
Data Directory Structure
backend/data/
├── receipts/ # Data Entry module
│ ├── receipts*.db # SQLite database (bonuri, aprobări, workflow)
│ └── uploads/ # User-uploaded files (PDF/images)
├── telegram/ # Telegram Bot module
│ └── telegram*.db # Bot auth/session data
└── cache/ # Reports module
└── roa2web_cache*.db # L2 cache (can be regenerated)
Preservation Mechanism
The ROA2WEB-Console.ps1 script:
- Before deploy: Copies
data/to%TEMP%\roa2web-data-backup-* - During deploy: Deletes and replaces entire
backend/folder - After deploy: Restores
data/from backup
Safe to lose (regenerated automatically):
cache/*.db- Reports cache, rebuilt on first query
Critical data (must be preserved):
receipts/*.db- User data, approvals, workflow statestelegram/*.db- Bot authentication tokens
Manual Backup
# Create manual backup before major operations
Copy-Item -Path "C:\inetpub\wwwroot\roa2web\backend\data" `
-Destination "C:\backups\roa2web-data-$(Get-Date -Format 'yyyyMMdd')" `
-Recurse
Troubleshooting
| Problemă | Verificare | Soluție |
|---|---|---|
| Service nu pornește | Get-Content ...\backend-stderr.log -Tail 30 |
Verifică .env, port 8000 |
| API 502/504 | Invoke-WebRequest http://localhost:8000/health |
Restart service |
| Frontend nu se încarcă | iisreset |
Verifică IIS, web.config |
| Auto-deploy nu merge | Get-ScheduledTask ROA2WEB-AutoDeploy |
.\Setup-AutoDeploy.ps1 |
Fișiere web.config
| Fișier | Scop | Când se folosește |
|---|---|---|
public/web.config |
Sub-aplicație IIS (/roa2web) | La fiecare deploy (via Vite) |
deployment/windows/config/web.config |
Server IIS complet | La instalare nouă |
Notă: Ambele au configurat no-cache pentru API (backend gestionează cache-ul).
Documentație Detaliată
- HTTPS Setup:
docs/HTTPS_SETUP.md - 2-Tier IIS:
docs/TWO-TIER-IIS-DEPLOYMENT.md - Telegram Bot:
docs/TELEGRAM-BOT-DEPLOYMENT.md
Cerințe Sistem
| Resursă | Minim | Recomandat |
|---|---|---|
| OS | Windows Server 2016 | Windows Server 2019+ |
| RAM | 4 GB | 8 GB (16 GB cu OCR) |
| CPU | 2 cores | 4 cores |
| Python | 3.11+ | 3.11+ |
| IIS | URL Rewrite + ARR | URL Rewrite + ARR |
ROA2WEB - Ultrathin Monolith Architecture Last Updated: 2025-01-22