Consolidate 3 separate applications (reports-app, data-entry-app, telegram-bot) into a unified
architecture with single backend and frontend:
Backend Changes:
- Unified FastAPI backend at backend/ with modular structure
- Modules: reports, data_entry, telegram in backend/modules/
- Centralized config.py and main.py with all routers registered
- Single worker mode (--workers 1) for Telegram bot compatibility
- Shared Oracle connection pool and JWT authentication
- Unified requirements.txt and environment configuration
Frontend Changes:
- Single Vue.js SPA with module-based routing
- Unified frontend at src/ with modules in src/modules/{reports,data-entry}/
- Shared components and stores in src/shared/
- Error boundaries for module isolation
- Dual API proxy in Vite for module communication
Infrastructure:
- New unified startup scripts: start-prod.sh, start-test.sh, start-backend.sh
- Environment templates: .env.dev.example, .env.test.example, .env.prod.example
- Updated deployment scripts for Windows IIS
- Simplified SSH tunnel management
Documentation:
- Comprehensive CLAUDE.md with architecture overview
- Module-specific docs in docs/{data-entry,telegram}/
- Architecture decision records in docs/ARCHITECTURE-DECISIONS.md
- Deployment guides consolidated in deployment/windows/docs/
This migration reduces complexity, improves maintainability, and enables easier
deployment while maintaining all existing functionality.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6.2 KiB
6.2 KiB
🔐 Bitvise SSH Server Setup pentru ROA2WEB
Instrucțiuni pentru configurarea cheii SSH în Bitvise SSH Server pe Windows.
🔑 Cheia SSH Publică
📋 Format OpenSSH (încercați primul):
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcRM+WWxoBqCSpaTo+vNCrvCLx1UFmKqqSh6smS4c/lh1Hkku+oiq65iUHwRMu5X9jDXSGUR1Fmig+OgIhoTnT4Hd3v4Fe2zienOFiJ/AZOTE+pgxpwmIrkScGTSv7ZSp4xFcXsFwho8W/Li0P0kyB+kGs2tFYaQM192E5Gx9qjlPGSM55fdksElRXKIrRHE4ARjt5+kMt4WFgUXpVNqhHQFEcz/oW6sC0OkufTbzQ+MHefBIlMNUlNHRxbHc3C6CTuMmzMM847y6rmQlDyScX0tizDhUnQ1UgA3ZyICJp9CVF4weAM6ihZhNTFi7drXiCEihUVLNU+EuEpWdWeVNebqBqlkJT0KXR3IgEQ3zKYKuAmICFO056WI3eKcJWuWEFNDrSYsxo+HydAbqBSqEprJFCUSU90175ngnpY4WoH7CFUbCnGjxEnRXUjUktaCdqYhH0ZjGHSGujK+KGPVxvBi1h7BjE33SEH6PAVZBYmdpGDri69n6H+v6dhaW26scFcc6ldrOcbaRsX7q4M8gFIwotAu6jTuid8FensF/j9yQRDkcOS8OWXHr5z2lZTCSDPik83p8mvvEZ/R7dP60ldwz2INX8rbCxi5frEdijqrwZCq9D2tzUJJgG8h3KUKfd3QfThCyq6AdE9X2+EnmU1yP2SJsolgM7euuDBH0/qQ== roa2web-wsl-marius@Mihai-HXG0G
🔧 Format RFC4716 (dacă primul spune "Input is not valid"):
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "4096-bit RSA, converted by marius@Mihai-HXG0G from OpenSSH"
AAAAB3NzaC1yc2EAAAADAQABAAACAQCcRM+WWxoBqCSpaTo+vNCrvCLx1UFmKqqSh6smS4
c/lh1Hkku+oiq65iUHwRMu5X9jDXSGUR1Fmig+OgIhoTnT4Hd3v4Fe2zienOFiJ/AZOTE+
pgxpwmIrkScGTSv7ZSp4xFcXsFwho8W/Li0P0kyB+kGs2tFYaQM192E5Gx9qjlPGSM55fd
ksElRXKIrRHE4ARjt5+kMt4WFgUXpVNqhHQFEcz/oW6sC0OkufTbzQ+MHefBIlMNUlNHRx
bHc3C6CTuMmzMM847y6rmQlDyScX0tizDhUnQ1UgA3ZyICJp9CVF4weAM6ihZhNTFi7drX
iCEihUVLNU+EuEpWdWeVNebqBqlkJT0KXR3IgEQ3zKYKuAmICFO056WI3eKcJWuWEFNDrS
Ysxo+HydAbqBSqEprJFCUSU90175ngnpY4WoH7CFUbCnGjxEnRXUjUktaCdqYhH0ZjGHSG
ujK+KGPVxvBi1h7BjE33SEH6PAVZBYmdpGDri69n6H+v6dhaW26scFcc6ldrOcbaRsX7q4
M8gFIwotAu6jTuid8FensF/j9yQRDkcOS8OWXHr5z2lZTCSDPik83p8mvvEZ/R7dP60ldw
z2INX8rbCxi5frEdijqrwZCq9D2tzUJJgG8h3KUKfd3QfThCyq6AdE9X2+EnmU1yP2SJso
lgM7euuDBH0/qQ==
---- END SSH2 PUBLIC KEY ----
📋 Pași pentru Bitvise SSH Server
1. 🖥️ Deschide Bitvise SSH Server Control Panel
- Lansează Bitvise SSH Server Control Panel pe serverul Windows
- Ar trebui să fie în System Tray sau în Start Menu
2. 👤 Configurează utilizatorul
În Bitvise SSH Server Control Panel:
- Click pe tab "Users"
- Găsește utilizatorul tău (sau creează unul nou dacă nu există)
- Double-click pe utilizator pentru a-l edita
3. 🔐 Adaugă cheia SSH publică
În fereastra User Properties:
-
Authentication tab:
- Setează "Public key authentication" la "Required" sau "Optional"
-
Public Keys section:
- Click pe "Import" sau "Add"
- Paste cheia publică de mai sus în câmpul text
- Sau salvează cheia într-un fișier
.pubși importă fișierul
-
Virtual filesystem:
- Asigură-te că utilizatorul are acces la directorul de lucru dorit
- De obicei setează Root directory la
C:\sau un folder specific
4. ✅ Salvează configurația
- Click "OK" pentru a salva setările utilizatorului
- Apply Configuration în Control Panel principal
- Restart SSH Server dacă este necesar
🔧 Configurare WSL SSH Tunnel Script
Editează ssh-tunnel-prod.sh cu username-ul corect:
nano /mnt/d/PROIECTE/roa-flask/ssh-tunnel-prod.sh
# Găsește și actualizează:
SSH_USER="your_bitvise_username" # Numele utilizatorului din Bitvise
🧪 Testarea conexiunii
1. Test manual SSH:
ssh -p 22122 -i ~/.ssh/roa_oracle_server your_username@83.103.197.79
2. Test tunnel SSH:
cd /mnt/d/PROIECTE/roa-flask/roa2web
./ssh-tunnel-prod.sh start
3. Test Oracle pool:
source venv/bin/activate
python shared/database/test_pool.py
🎯 Output așteptat
SSH Connection Test:
$ ssh -p 22122 -i ~/.ssh/roa_oracle_server marius@83.103.197.79
Welcome to Bitvise SSH Server!
Microsoft Windows [Version 10.0.19044]
(c) Microsoft Corporation. All rights reserved.
C:\Users\marius>exit
SSH Tunnel Start:
================================
ROA2WEB SSH Tunnel Manager
================================
🔄 Starting SSH tunnel...
Server: 83.103.197.79:22122
Local: 127.0.0.1:1521
Remote: localhost:1521
🔍 Testing SSH connectivity...
✅ SSH connectivity OK
🚀 Creating SSH tunnel...
✅ SSH tunnel started successfully (PID: 12345)
🔍 Testing tunnel connectivity...
✅ Tunnel is working! Port 1521 is accessible
❌ Troubleshooting Bitvise
"Permission denied (publickey)"
- Verifică: Cheia SSH este corect adăugată în User Properties
- Verifică: Authentication method include "Public key"
- Verifică: Username-ul din script este corect
"Connection refused"
- Verifică: Bitvise SSH Server este pornit și funcționează
- Verifică: Portul 22122 este configurat corect în server
- Verifică: Windows Firewall permite conexiuni pe port 22122
"User access denied"
- Verifică: Utilizatorul există în lista Users din Bitvise
- Verifică: Utilizatorul are permisiuni de login (Account enabled)
- Verifică: Virtual filesystem este configurat corect
"Input is not valid" în Bitvise
- 🔧 Soluție 1: Folosește formatul RFC4716 (vezi mai sus)
- 🔧 Soluție 2: Salvează cheia într-un fișier
.pubși importă fișierul în loc să faci paste - 🔧 Soluție 3: Asigură-te că nu ai spații extra la începutul/sfârșitul cheii
- 🔧 Soluție 4: Încearcă să ștergi și să adaugi din nou utilizatorul în Bitvise
Cheia SSH nu este acceptată
- Format cheie: Asigură-te că ai copiat toată cheia, inclusiv header-ul și comment-ul
- Tip cheie: Bitvise suportă RSA, DSA, ECDSA, Ed25519 - folosim RSA 4096
- Import method: Dacă paste nu funcționează, salvează într-un fișier și importă
- Line endings: Verifică că nu sunt caractere ascunse în cheie
📝 Note specifice Bitvise
- User management: Bitvise are propriul sistem de utilizatori, independent de Windows users
- Virtual filesystem: Poți controla la ce directoare are acces utilizatorul SSH
- Port forwarding: Bitvise poate restricționa port forwarding - asigură-te că este permis
- Logging: Verifică log-urile din Bitvise pentru detalii despre conexiuni failed
Configurare Bitvise SSH Server pentru ROA2WEB Development 🔐