Files
Claude Agent 62f86250cc refactor(docs): consolidate and cleanup documentation
- Delete 9 deprecated/obsolete docs (~6,300 lines removed)
- Move test PDFs to tests/fixtures/ocr-samples/
- Create docs/DEPLOYMENT.md as principal guide
- Create tests/ocr-validation/README.md
- Update all refs for ultrathin monolith architecture
- Update OCR tests to use relative paths

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 09:14:51 +00:00

4.8 KiB

ROA2WEB Linux Deployment

Deploy ROA2WEB to Windows IIS production server from Linux/LXC (claude-agent).

Quick Deploy (TLDR)

# Din orice director ROA2WEB (main, worktree, sau branch):
# Exemple locații posibile:
#   /workspace/roa2web                           # clone principal
#   /workspace/.worktrees/roa2web/fix/fix-bon    # worktree pentru fix
#   /workspace/.worktrees/roa2web/feature/xxx    # worktree pentru feature

# Deploy complet (frontend + backend)
./deployment/linux/deploy.sh

# Doar frontend
./deployment/linux/deploy.sh frontend

# Doar backend
./deployment/linux/deploy.sh backend

# Test conexiune SSH
./deployment/linux/deploy.sh test

După deploy: Serverul face auto-deploy în maxim 5 minute (scheduled task).

Current Setup (claude-agent LXC)

SSH-ul este deja configurat pe acest LXC:

# Verificare conexiune (ar trebui să funcționeze direct)
ssh roa2web-prod "echo OK"

Configurare existentă (~/.ssh/config):

Host roa2web-prod
    HostName 10.0.20.36
    Port 22122
    User romfast
    IdentityFile ~/.ssh/roa2web_deploy

Prerequisites

  1. Node.js 16+ - pentru build frontend
  2. SSH access - deja configurat pe claude-agent LXC

First-Time Setup (doar dacă SSH nu funcționează)

1. Generate SSH Key

ssh-keygen -t ed25519 -f ~/.ssh/roa2web_deploy -C "roa2web-deploy-lxc"

2. Configure SSH Host

Add to ~/.ssh/config:

Host roa2web-prod
    HostName 10.0.20.36
    Port 22122
    User romfast
    IdentityFile ~/.ssh/roa2web_deploy
    IdentitiesOnly yes
    StrictHostKeyChecking accept-new

3. Add Public Key to Server

Copy the content of ~/.ssh/roa2web_deploy.pub:

cat ~/.ssh/roa2web_deploy.pub

On Windows server (via RDP or SSH):

  1. Connect: ssh romfast@10.0.20.36 -p 22122
  2. Add key to C:\Users\romfast\.ssh\authorized_keys

4. Test Connection

ssh roa2web-prod "echo OK"

Usage

cd /workspace/.worktrees/roa2web/fix/fix-bon

# Full deployment (frontend + backend)
./deployment/linux/deploy.sh

# Frontend only
./deployment/linux/deploy.sh frontend

# Backend only
./deployment/linux/deploy.sh backend

# Test SSH connection
./deployment/linux/deploy.sh test

How It Works

[LXC] npm run build → dist/
         ↓
      Package: deploy-package-TIMESTAMP/
         ├── frontend/
         ├── backend/
         ├── shared/
         └── scripts/
         ↓
      SCP → C:\Temp\deploy-TIMESTAMP\
         ↓
[Server] Check-And-Deploy.ps1 (scheduled task, every 5 min)
         ↓
      Auto-deploy to C:\inetpub\wwwroot\roa2web\

Server Configuration

Setting Value
Host 10.0.20.36
SSH Port 22122
User romfast
Remote Path C:\Temp
Install Path C:\inetpub\wwwroot\roa2web
Logs Path C:\inetpub\wwwroot\roa2web\logs
Scripts Path C:\TEMP\ROA2WEB-Scripts

Permanent Scripts Location

Scripturile de deploy (Check-And-Deploy.ps1, ROA2WEB-Console.ps1) rulează din:

C:\TEMP\ROA2WEB-Scripts\

IMPORTANT: Când modifici scripturile, trebuie să le copiezi și aici:

# După deploy.sh, copiază scripturile actualizate în locația permanentă:
ssh roa2web-prod "powershell -Command \"Copy-Item -Path 'C:\\Temp\\deploy-*\\scripts\\*.ps1' -Destination 'C:\\TEMP\\ROA2WEB-Scripts\\' -Force\""

What Deploy Preserves

Deploy-ul păstrează automat (NU le șterge):

  • .env - Configurația mediului (credențiale, setări)
  • data/ - Directorul cu baze de date SQLite:
    • data/receipts/receipts_prod.db - Bonuri fiscale
    • data/telegram/telegram_prod.db - Sesiuni Telegram
    • data/cache/ - Cache SQLite
    • data/receipts/uploads/ - Fișiere uploadate

Production Logs

# View backend stderr (errors)
ssh roa2web-prod "powershell -Command \"Get-Content 'C:\\inetpub\\wwwroot\\roa2web\\logs\\backend-stderr.log' -Tail 100\""

# View backend stdout (info logs)
ssh roa2web-prod "powershell -Command \"Get-Content 'C:\\inetpub\\wwwroot\\roa2web\\logs\\backend-stdout.log' -Tail 100\""

# Filter OCR errors
ssh roa2web-prod "powershell -Command \"Get-Content 'C:\\inetpub\\wwwroot\\roa2web\\logs\\backend-stderr.log' -Tail 200\"" | grep -i ocr

Troubleshooting

SSH Connection Failed

# Check SSH config
cat ~/.ssh/config

# Test with verbose output
ssh -v roa2web-prod "echo test"

# Check if key exists
ls -la ~/.ssh/roa2web_deploy*

Build Failed

# Check Node.js version
node --version

# Reinstall dependencies
rm -rf node_modules
npm install

Transfer Failed

# Test SCP manually
scp test.txt roa2web-prod:C:/Temp/

# Check Windows firewall (port 22122)