docs(vm201): document ROA + CONTAFIN update server (IIS apps)
Adds vm201-roa-update-server.md describing the two IIS virtual apps under roa.romfast.ro that distribute application updates to ROMFAST clients: - /roaupdate -> D:\ROAUPDATE: per-client VFP XML manifests, _ARHIVE ZIPs for 35+ ROA modules (ROACONT, ROAFACTURARE, ROAGEST, etc.), SVN-backed DB scripts, xmlupdatecreator workflow. - /contafinupdate -> D:\APPUPDATESERVERAVFP: ActiveVFP server with AVFPHandler for *.avfp requests, VFP9 runtime. Also captures the full IIS site inventory (Default Web Site, ROA2WEB, Dokploy, Gitea, roa-qr, roa-apps) verified live on 2026-04-25, and lists the configured client manifests (ROMFAST, ROMPETROL, ARGENTA, etc.). Cross-references added in proxmox/README.md and vm201-windows/README.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,7 @@ proxmox/
|
||||
│ ├── docs/
|
||||
│ │ ├── vm201-certificat-letsencrypt-iis.md
|
||||
│ │ ├── vm201-dokploy-infrastructure.md # Arhitectură Dokploy + domenii
|
||||
│ │ ├── vm201-roa-update-server.md # Server update aplicații ROA + CONTAFIN
|
||||
│ │ ├── vm201-btgo-playwright-service.md # Scraper BT George (Playwright Python)
|
||||
│ │ ├── vm201-troubleshooting-backup-nfs.md
|
||||
│ │ └── vm201-troubleshooting-pana-curent-2026-01-11.md
|
||||
@@ -307,13 +308,14 @@ ssh claude@100.95.55.51
|
||||
|
||||
### VM 201 - Windows 11
|
||||
**Director:** `vm201-windows/`
|
||||
**IP:** DHCP | **Host:** pvemini | **Rol:** Reverse proxy IIS, client aplicații, scraper BT George
|
||||
**IP:** DHCP | **Host:** pvemini | **Rol:** Server update aplicații ROA + CONTAFIN, reverse proxy IIS, client aplicații, scraper BT George
|
||||
|
||||
| Fișier | Descriere |
|
||||
|--------|-----------|
|
||||
| `README.md` | Configurație hardware, servicii, rețea, backup |
|
||||
| `docs/vm201-certificat-letsencrypt-iis.md` | Certificate SSL Let's Encrypt, Win-ACME, SNI |
|
||||
| `docs/vm201-dokploy-infrastructure.md` | Arhitectură Dokploy + domenii |
|
||||
| `docs/vm201-roa-update-server.md` | Server update aplicații ROA (`/roaupdate`) + CONTAFIN AVFP (`/contafinupdate`) |
|
||||
| `docs/vm201-btgo-playwright-service.md` | Scraper BT George — Playwright Python SDK, Windows Service |
|
||||
| `docs/vm201-troubleshooting-backup-nfs.md` | Incident backup NFS (2025-10-08) |
|
||||
| `docs/vm201-troubleshooting-pana-curent-2026-01-11.md` | Incident pană curent |
|
||||
@@ -431,6 +433,7 @@ ssh root@10.0.20.201 "qm snapshot 302 pre-test --description 'Before ROA test'"
|
||||
- **Informații generale** → `vm201-windows/README.md`
|
||||
- **Configurez site-uri IIS noi (Dokploy)** → `vm201-windows/docs/vm201-dokploy-infrastructure.md`
|
||||
- **Script setup IIS automat** → `vm201-windows/scripts/setup-new-iis-sites.ps1`
|
||||
- **Publicare versiune nouă ROA / CONTAFIN către clienți** → `vm201-windows/docs/vm201-roa-update-server.md`
|
||||
- **Scraper BT George (btgo-playwright)** → `vm201-windows/docs/vm201-btgo-playwright-service.md`
|
||||
|
||||
### Dokploy + Traefik (LXC 103)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
- **Host Proxmox:** pvemini (10.0.20.201)
|
||||
- **Storage:** local-zfs (ZFS pool)
|
||||
- **Status:** Running (onboot: enabled)
|
||||
- **Rol:** Client aplicații Windows, SQL*Plus client, Reverse proxy IIS, Monitorizare UPS, Scraper BT George (btgo-playwright)
|
||||
- **Rol:** Server update aplicații ROA + CONTAFIN, Reverse proxy IIS, Client aplicații Windows, SQL*Plus client, Monitorizare UPS, Scraper BT George (btgo-playwright)
|
||||
|
||||
---
|
||||
|
||||
@@ -57,16 +57,56 @@ ssh root@10.0.20.201 "qm config 201 | grep -E 'efidisk|virtio'"
|
||||
- **SSL/TLS Termination** - Certificate Let's Encrypt pentru domenii externe
|
||||
- **SNI (Server Name Indication)** - Multiple certificate pe același IP
|
||||
- **Domenii gestionate:**
|
||||
- roa.romfast.ro
|
||||
- roa.romfast.ro (+ aplicațiile virtuale `/roaupdate` și `/contafinupdate`)
|
||||
- roa2web.romfast.ro
|
||||
- dokploy.romfast.ro
|
||||
- gitea.romfast.ro
|
||||
- roa-qr.romfast.ro ← **NOU** (proxy → LXC 103 Traefik → pdf-qr-app)
|
||||
- *.roa.romfast.ro ← **NOU** wildcard (proxy → LXC 103 Traefik → Dokploy apps)
|
||||
- roa-qr.romfast.ro (proxy → LXC 103 Traefik → pdf-qr-app)
|
||||
- *.roa.romfast.ro wildcard (proxy → LXC 103 Traefik → Dokploy apps)
|
||||
|
||||
**Site-uri IIS active (verificat 2026-04-25):**
|
||||
|
||||
| Site | Binding | Path fizic | Rol |
|
||||
|------|---------|------------|-----|
|
||||
| Default Web Site | `roa.romfast.ro` :80/:443 + `*` :81 | `C:\inetpub\wwwroot` | Catch-all roa.romfast.ro → 10.0.20.36; conține `/roaupdate` și `/contafinupdate` |
|
||||
| ROA2WEB | `roa2web.romfast.ro` :80/:443 | `C:\inetpub\roa2web` | Reverse proxy → 10.0.20.36 (web.config-only) |
|
||||
| Dokploy | `dokploy.romfast.ro` :80/:443 | `C:\inetpub\dokploy` | Proxy → LXC 103 Traefik (Dokploy UI) |
|
||||
| Gitea | `gitea.romfast.ro` :80/:443 | `C:\inetpub\gitea` | Proxy → LXC 106 Gitea |
|
||||
| roa-qr | `roa-qr.romfast.ro` :80/:443 | `C:\inetpub\roa-qr` | Proxy → LXC 103 Traefik (pdf-qr-app) |
|
||||
| roa-apps | `*.roa.romfast.ro` :80/:443 | `C:\inetpub\roa-apps` | Wildcard proxy → LXC 103 Traefik (Dokploy apps) |
|
||||
|
||||
**Documentație:** Vezi `vm201-certificat-letsencrypt-iis.md`
|
||||
**Arhitectură Dokploy:** Vezi `vm201-dokploy-infrastructure.md`
|
||||
**Server update ROA + CONTAFIN:** Vezi `vm201-roa-update-server.md`
|
||||
|
||||
#### 3. Monitorizare UPS
|
||||
#### 3. Server Update Aplicații ROA + CONTAFIN
|
||||
- **Sub Default Web Site (`roa.romfast.ro`):**
|
||||
- `/roaupdate` → `D:\ROAUPDATE` — distribuie ZIP-urile de update pentru
|
||||
modulele ROA (ROACONT, ROAFACTURARE, ROAGEST, ROAIMOB, ROARES, ROANOR,
|
||||
ROASAL, etc. — peste 35 module) plus scripturi DB versionate în SVN.
|
||||
- `/contafinupdate` → `D:\APPUPDATESERVERAVFP` — server ActiveVFP (AVFP)
|
||||
pentru update-urile aplicației CONTAFIN (handler `*.avfp` mapat în IIS).
|
||||
- **Mecanism update:** stația clientului citește
|
||||
`https://roa.romfast.ro/roaupdate/<CLIENT>.xml` (manifest VFP cu versiuni
|
||||
și `fileurl` către `_ARHIVE\<MODUL>\<MODUL>-x.y.z.ZIP`), compară cu
|
||||
versiunile locale și descarcă diferențele.
|
||||
- **Clienți configurați:** ROMFAST, ROMPETROL, ARGENTA, AUTOMOTIVE, CLEVER,
|
||||
CONPRESS, EMS, EUROPEANMETALSERVICES, IMA, ROMCONSTRUCT, SIGMA, VADECO,
|
||||
VENDING, ACN, AVIS, EDUARD, FRUVIMED, METACOM, METALICA, POLARIS,
|
||||
PRINTCONCEPT, SOUTH, STEAUANORDULUI, UTMIDIA, VINRAI, VOICU + DEMOROA,
|
||||
DEVROA, CUSTOMER_4859/4863/4880/4886/4995. Lista completă în
|
||||
`D:\ROAUPDATE\*.xml`.
|
||||
- **Build/publicare:** `xmlupdatecreator.exe` regenerează manifestele;
|
||||
`tasks.bat` face `svn update` pe scripturile DB
|
||||
(`D:\ROAUPDATE\DATABASE\SCRIPTURI` și `SCRIPTURI_CLAR`).
|
||||
- **Raportare erori clienți:** endpoint extern
|
||||
`romfast.dnsalias.com:3000/errors/create_xml` (configurat în
|
||||
`D:\ROAUPDATE\settings.ini`).
|
||||
|
||||
**Documentație:** Vezi `docs/vm201-roa-update-server.md` (structură folder,
|
||||
format manifest, workflow publicare, riscuri backup).
|
||||
|
||||
#### 4. Monitorizare UPS
|
||||
- **WinNUT Client** - Monitorizare vizuală status UPS în timp real
|
||||
- **Server NUT:** 10.0.20.201:3493 (pvemini)
|
||||
- **UPS:** nutdev1 (INNO TECH USB UPS)
|
||||
@@ -74,7 +114,7 @@ ssh root@10.0.20.201 "qm config 201 | grep -E 'efidisk|virtio'"
|
||||
|
||||
**Documentație:** Vezi `ups/docs/INSTALARE-WINNUT.md`
|
||||
|
||||
#### 4. Scraper Banca Transilvania George (btgo-playwright)
|
||||
#### 5. Scraper Banca Transilvania George (btgo-playwright)
|
||||
- **Repo:** `git@gitea.romfast.ro:romfast/btgo-playwright.git`
|
||||
- **Stack:** Python + `playwright==1.48.0` (Python SDK direct, nu MCP/CLI)
|
||||
- **Scop:** Extrage solduri conturi + descarcă CSV tranzacții din `go.bancatransilvania.ro`
|
||||
@@ -110,14 +150,16 @@ ssh root@10.0.20.201 "qm config 201 | grep -E 'efidisk|virtio'"
|
||||
- WebSockets Protocol
|
||||
- HTTP Redirect
|
||||
- URL Rewrite Module
|
||||
- **Sites:**
|
||||
- Default Web Site (roa.romfast.ro)
|
||||
- Dokploy (dokploy.romfast.ro)
|
||||
- Gitea (gitea.romfast.ro)
|
||||
- **Sites (verificat 2026-04-25):**
|
||||
- Default Web Site (roa.romfast.ro) — conține `/roaupdate` → `D:\ROAUPDATE` și `/contafinupdate` → `D:\APPUPDATESERVERAVFP`; restul proxy → 10.0.20.36
|
||||
- ROA2WEB (roa2web.romfast.ro) → proxy 10.0.20.36
|
||||
- Dokploy (dokploy.romfast.ro) → proxy LXC 103 Traefik
|
||||
- Gitea (gitea.romfast.ro) → proxy LXC 106
|
||||
- roa-qr (roa-qr.romfast.ro) → proxy LXC 103 Traefik
|
||||
- roa-apps (*.roa.romfast.ro) → proxy wildcard LXC 103 Traefik
|
||||
|
||||
**Configurare SSL:** Vezi `vm201-certificat-letsencrypt-iis.md`
|
||||
**Server update ROA + CONTAFIN:** Vezi `vm201-roa-update-server.md`
|
||||
|
||||
#### 3. Win-ACME
|
||||
- **Versiune:** v2.2.9.1701
|
||||
@@ -357,6 +399,7 @@ ssh root@10.0.20.201 "qm delsnapshot 201 pre-update-snapshot"
|
||||
### Documentație VM 201 Specifică
|
||||
- **SSL Certificates IIS:** `docs/vm201-certificat-letsencrypt-iis.md`
|
||||
- **Arhitectură Dokploy + Domenii:** `docs/vm201-dokploy-infrastructure.md`
|
||||
- **Server Update ROA + CONTAFIN:** `docs/vm201-roa-update-server.md`
|
||||
- **Scraper BT George (btgo-playwright):** `docs/vm201-btgo-playwright-service.md`
|
||||
- **Troubleshooting Incident 2025-10-08:** `docs/vm201-troubleshooting-backup-nfs.md`
|
||||
- **Troubleshooting Pană Curent 2026-01-11:** `docs/vm201-troubleshooting-pana-curent-2026-01-11.md`
|
||||
|
||||
295
proxmox/vm201-windows/docs/vm201-roa-update-server.md
Normal file
295
proxmox/vm201-windows/docs/vm201-roa-update-server.md
Normal file
@@ -0,0 +1,295 @@
|
||||
# VM 201 — Server Update Aplicații ROA + CONTAFIN
|
||||
|
||||
## Obiectiv
|
||||
|
||||
VM 201 găzduiește pe IIS două puncte de distribuție pentru update-urile
|
||||
aplicațiilor ROMFAST către clienți:
|
||||
|
||||
- **`roa.romfast.ro/roaupdate`** — distribuție ZIP-uri + scripturi DB pentru
|
||||
modulele ROA (peste 35 module: ROACONT, ROAFACTURARE, ROAGEST, etc.).
|
||||
- **`roa.romfast.ro/contafinupdate`** — server ActiveVFP (AVFP) pentru
|
||||
update-uri aplicație CONTAFIN.
|
||||
|
||||
Aceste două aplicații virtuale trăiesc sub site-ul **Default Web Site**
|
||||
(`roa.romfast.ro`) și au path-uri fizice pe **D:\\** (separate de IIS root).
|
||||
|
||||
---
|
||||
|
||||
## Layout IIS pe VM 201 (recap)
|
||||
|
||||
```
|
||||
Default Web Site (roa.romfast.ro) → C:\inetpub\wwwroot (gol, doar landing IIS)
|
||||
├── /contafinupdate [Application] → D:\APPUPDATESERVERAVFP (AVFP)
|
||||
├── /roaupdate [Application] → D:\ROAUPDATE (ZIP + XML)
|
||||
└── /* (catch-all) → proxy → 10.0.20.36 (ROA Windows prod)
|
||||
|
||||
ROA2WEB (roa2web.romfast.ro) → C:\inetpub\roa2web (web.config-only proxy → 10.0.20.36)
|
||||
Dokploy (dokploy.romfast.ro) → proxy LXC 103 Traefik
|
||||
Gitea (gitea.romfast.ro) → proxy LXC 106
|
||||
roa-qr (roa-qr.romfast.ro) → proxy LXC 103 Traefik (pdf-qr-app)
|
||||
roa-apps (*.roa.romfast.ro) → proxy LXC 103 Traefik (Dokploy apps)
|
||||
Default Web Site → port 81 (binding intern)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## /roaupdate — Distribuție Module ROA
|
||||
|
||||
**Path fizic:** `D:\ROAUPDATE`
|
||||
**URL public:** `https://roa.romfast.ro/roaupdate/`
|
||||
**Web.config:** Windows authentication + directory browse activat
|
||||
|
||||
### Mecanism Update
|
||||
|
||||
1. Aplicația ROA pe stația clientului (instalată din `ROASTART`) descarcă
|
||||
`https://roa.romfast.ro/roaupdate/<CLIENT>.xml`.
|
||||
2. XML-ul listează modulele și versiunile curente pentru clientul respectiv,
|
||||
plus URL-ul ZIP în `_ARHIVE`.
|
||||
3. Stația compară versiunile cu cele instalate local.
|
||||
4. Pentru fiecare modul cu versiune nouă, descarcă
|
||||
`https://roa.romfast.ro/roaupdate/_ARHIVE/<MODUL>/<MODUL>-x.y.z.ZIP`,
|
||||
dezarhivează și înlocuiește binarele locale.
|
||||
|
||||
### Structura `D:\ROAUPDATE`
|
||||
|
||||
| Element | Conținut |
|
||||
|---------|----------|
|
||||
| `<CLIENT>.xml` | Manifest update per client (vezi mai jos) |
|
||||
| `ROASTART_<CLIENT>.xml` | Manifest pentru bootstrap-ul `ROASTART` (COMUNROA, ROAPRINT, USERREPORTS) |
|
||||
| `_ARHIVE/<MODUL>/` | ZIP-urile efective per versiune (ex: `_ARHIVE\ROACONT\ROACONT-2.11.49.ZIP`) |
|
||||
| `_UPDATE/` | Buffer de pregătire build-uri noi (LastWrite recent = build activ) |
|
||||
| `<MODUL>/` | Sursele/proiectele VFP per modul (ex: `ROACONT`, `ROAFACTURARE`, `ROARES`) |
|
||||
| `DATABASE/SCRIPTURI/`, `DATABASE/SCRIPTURI_CLAR/` | Scripturi SQL versiunate în SVN — pull cu TortoiseSVN |
|
||||
| `xmlupdatecreator.exe` | Tool VFP de generare a XML-urilor de manifest |
|
||||
| `tasks.bat` | Job orchestrare: `svn update` pe `SCRIPTURI` + `SCRIPTURI_CLAR`, lansare `tasks\tasks.exe` |
|
||||
| `settings.ini` | Endpoint raportare erori (`romfast.dnsalias.com:3000/errors/create_xml`) |
|
||||
| `who9.exe`, `romfast_suport.exe` | Utilitare auxiliare (suport remote + diagnostic VFP9) |
|
||||
| `firmanoua.zip`, `ROAREGISTRATURA.zip` | Pachete inițializare clienți noi |
|
||||
|
||||
### Format Manifest Client
|
||||
|
||||
Exemplu fragment din `ROMPETROL.xml`:
|
||||
|
||||
```xml
|
||||
<crsxmloutnew>
|
||||
<item>ROACONT</item>
|
||||
<version>2.11.49</version>
|
||||
<fileurl>\_ARHIVE\ROACONT\ROACONT-2.11.49.ZIP</fileurl>
|
||||
<usermsg/>
|
||||
</crsxmloutnew>
|
||||
```
|
||||
|
||||
`<usermsg>` — mesaj opțional afișat user-ului în timpul update-ului
|
||||
(ex: instrucțiuni manuale, restart obligatoriu).
|
||||
|
||||
### Module ROA Distribuite (extras din `ROMFAST.xml`)
|
||||
|
||||
```
|
||||
ROAAPROV ROAAUTO ROACOMENZI ROACONT ROACONTRACTE
|
||||
ROADECL ROADEF ROADEFSALARII ROADEVIZE ROAFACTURARE
|
||||
ROAFURNIZORI ROAGEST ROAGRESTAURANT ROAHOTEL ROAHOTELCONFIG
|
||||
ROAIMOB ROAINCHIDSAL ROAJURIDIC ROALUCRARI ROAMANAGER
|
||||
ROAMASINI ROANOR ROAOBINV ROAOFERTA ROAOFERTARE
|
||||
ROAPRETURI ROAPRODUCTIE ROAREGISTRATURA ROARES ROARESTAURANT
|
||||
ROARETAIL ROASAL ROASALSPEC ROASITFIN ROASITOP
|
||||
ROASUPORT ROAVIN
|
||||
```
|
||||
|
||||
Modulul `ROASTART` (bootstrap) este publicat separat prin
|
||||
`ROASTART_<CLIENT>.xml` și include: `COMUNROA`, `ROAPRINT`,
|
||||
`<CLIENT>_USERREPORTS`.
|
||||
|
||||
### Clienți Configurați (extras manifeste)
|
||||
|
||||
Manifeste per client găsite în `D:\ROAUPDATE`:
|
||||
|
||||
```
|
||||
ABCVAL ACN ARGENTA AUTOHAUS AUTOMOTIVE
|
||||
AVIS CAMBRIDGE CLEVER CONPRESS CONPRESSHOLDING
|
||||
EDUARD EMS EUROPEANMETALSERVICES FRUVIMED HANULPIRATILOR
|
||||
IDEEA IMA METACOM METACOMBUSINESSSRL METALICA
|
||||
METALICAD.G.SRL POLARIS PRINTCONCEPT ROMCONSTRUCT ROMFAST
|
||||
ROMPETROL SIGMA SOUTH STEAUANORDULUI UTMIDIA
|
||||
VADECO VENDING VENDINGMASTERSRL VINRAI VOICU
|
||||
DEMOROA DEVROA DEVROA2
|
||||
CUSTOMER_4859 CUSTOMER_4863 CUSTOMER_4880 CUSTOMER_4886 CUSTOMER_4995
|
||||
```
|
||||
|
||||
### Scripturi DB (SVN)
|
||||
|
||||
`tasks.bat` apelează TortoiseSVN pentru a aduce ultimele scripturi:
|
||||
|
||||
```bat
|
||||
TortoiseProc.exe /command:update /path:D:\ROAUPDATE\DATABASE\SCRIPTURI\
|
||||
TortoiseProc.exe /command:update /path:D:\ROAUPDATE\DATABASE\SCRIPTURI_CLAR\
|
||||
START D:\ROAUPDATE\DATABASE\SCRIPTURI_CLAR\2026
|
||||
START D:\ROAUPDATE\tasks\tasks.exe
|
||||
```
|
||||
|
||||
Scripturile sunt versionate într-un repo SVN extern (vezi configul
|
||||
TortoiseSVN local pentru URL).
|
||||
|
||||
### Workflow Publicare Versiune Nouă
|
||||
|
||||
1. Build modul VFP în `D:\ROAUPDATE\<MODUL>\`.
|
||||
2. Generează ZIP în `_ARHIVE\<MODUL>\<MODUL>-x.y.z.ZIP`.
|
||||
3. Rulează `xmlupdatecreator.exe` pentru regenerarea manifestului
|
||||
`<CLIENT>.xml` cu noua versiune.
|
||||
4. Pentru update-uri DB: commit scripturi în SVN (la SCRIPTURI sau
|
||||
SCRIPTURI_CLAR), apoi `tasks.bat` la următoarea rulare aduce update-ul
|
||||
pe server.
|
||||
5. Clienții văd noua versiune la următorul check (la pornire ROA sau
|
||||
manual din meniu).
|
||||
|
||||
---
|
||||
|
||||
## /contafinupdate — Server ActiveVFP pentru CONTAFIN
|
||||
|
||||
**Path fizic:** `D:\APPUPDATESERVERAVFP`
|
||||
**URL public:** `https://roa.romfast.ro/contafinupdate/`
|
||||
**Stack:** ActiveVFP (Visual FoxPro server-side) + IIS handler `AVFPHandler`
|
||||
|
||||
### Configurare AVFP
|
||||
|
||||
`Web.Config` mapează toate request-urile `*.avfp` (și catch-all `*`) către
|
||||
`AVFPHandler`, plus modulul `MazeComputer.AspManifestHelpers` pentru
|
||||
procesarea manifestelor:
|
||||
|
||||
```xml
|
||||
<handlers>
|
||||
<add verb="*" path="*.avfp" name="AVFPHandler" type="AVFPHandler" />
|
||||
<add verb="*" path="*" name="AVFPRESTHandler" type="AVFPHandler" />
|
||||
</handlers>
|
||||
<defaultDocument>
|
||||
<files>
|
||||
<clear />
|
||||
<add value="default.avfp" />
|
||||
</files>
|
||||
</defaultDocument>
|
||||
<system.web>
|
||||
<identity impersonate="true" />
|
||||
</system.web>
|
||||
```
|
||||
|
||||
### `appupdateserver.ini`
|
||||
|
||||
Configurarea conexiunilor către sursa de update:
|
||||
|
||||
```ini
|
||||
[general]
|
||||
host=ROA_CENTRAL
|
||||
user=soft_serii
|
||||
password=***
|
||||
downloadpath=d:\_CONTAFINUPDATE
|
||||
roadownloadpath=d:\ROAUPDATE\_UPDATE
|
||||
|
||||
host_clienti=roa_romfast
|
||||
user_clienti=romfast
|
||||
password_clienti=***
|
||||
|
||||
host_soft=ROA_CENTRAL
|
||||
user_soft=soft
|
||||
password_soft=***
|
||||
```
|
||||
|
||||
(Parolele reale sunt în fișierul de pe VM; nu sunt incluse aici.)
|
||||
|
||||
### Componente Cheie
|
||||
|
||||
| Fișier | Rol |
|
||||
|--------|-----|
|
||||
| `default.avfp` | Entry-point AVFP (default document) |
|
||||
| `activevfp.dll` (+ `.manifest`) | Handler AVFP nativ |
|
||||
| `vfp9t.dll`, `VFP9RENU.DLL`, `vfp2c32.fll`, `json.fll` | Runtime VFP9 + extensii |
|
||||
| `msvcr71.dll` | Runtime VC necesar VFP9 |
|
||||
| `prg/`, `bin/`, `data/`, `reports/` | Cod, binare, date, rapoarte AVFP |
|
||||
| `Web.Config` | Mapare handler AVFP |
|
||||
| `setup603.cmd` | Setup AVFP 6.0.3 (instalare runtime + handler) |
|
||||
| `log.txt` | Log activitate (rotated manual) |
|
||||
|
||||
---
|
||||
|
||||
## Operațiuni Curente
|
||||
|
||||
### Verificare Stare Update Server (din Proxmox)
|
||||
|
||||
```bash
|
||||
# Status IIS + applicații
|
||||
ssh root@10.0.20.201 "qm guest exec 201 --timeout 30 -- powershell -Command \
|
||||
\"Import-Module WebAdministration; Get-WebApplication\""
|
||||
|
||||
# Modulele ROA cu update recent (ultima săptămână)
|
||||
ssh root@10.0.20.201 "qm guest exec 201 --timeout 30 -- powershell -Command \
|
||||
\"Get-ChildItem 'D:\\ROAUPDATE' | Where-Object { \$_.LastWriteTime -gt (Get-Date).AddDays(-7) } | \
|
||||
Select-Object Name, LastWriteTime\""
|
||||
|
||||
# Verificare manifest client (din browser sau curl)
|
||||
curl -s https://roa.romfast.ro/roaupdate/ROMFAST.xml | head -50
|
||||
```
|
||||
|
||||
### Test Conectivitate Client
|
||||
|
||||
De pe stația clientului (sau VM 201 însăși):
|
||||
|
||||
```powershell
|
||||
# Test acces manifest
|
||||
Invoke-WebRequest -Uri "https://roa.romfast.ro/roaupdate/ROMFAST.xml" -UseBasicParsing |
|
||||
Select-Object StatusCode, @{n="Length";e={$_.Content.Length}}
|
||||
|
||||
# Test descărcare ZIP
|
||||
Invoke-WebRequest -Uri "https://roa.romfast.ro/roaupdate/_ARHIVE/ROACONT/ROACONT-2.11.49.ZIP" `
|
||||
-OutFile "$env:TEMP\test.zip" -UseBasicParsing
|
||||
```
|
||||
|
||||
### Restart IIS (după modificări majore)
|
||||
|
||||
```bash
|
||||
ssh root@10.0.20.201 "qm guest exec 201 --timeout 30 -- cmd /c iisreset"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Securitate și Acces
|
||||
|
||||
- **/roaupdate** rulează cu `authentication mode="Windows"` în web.config.
|
||||
Dacă se decide accesul anonim pentru clienți (caz uzual), trebuie
|
||||
verificat că IIS Anonymous Authentication este activ pe folder.
|
||||
- **/contafinupdate** folosește `identity impersonate=true` — handler-ul AVFP
|
||||
rulează cu identitatea utilizatorului IIS curent.
|
||||
- **TLS:** terminat la nivel de IIS pe `roa.romfast.ro` (certificat Let's
|
||||
Encrypt — vezi `vm201-certificat-letsencrypt-iis.md`).
|
||||
- **Endpoint raportare erori:** `romfast.dnsalias.com:3000/errors/create_xml`
|
||||
(din `D:\ROAUPDATE\settings.ini`) — primește XML-uri de eroare de la
|
||||
clienți. Nu e găzduit pe VM 201; verifică separat dacă serviciul rulează.
|
||||
|
||||
---
|
||||
|
||||
## Riscuri și Atenționări
|
||||
|
||||
- **Backup `D:\ROAUPDATE` și `D:\APPUPDATESERVERAVFP`:** ambele sunt pe
|
||||
discul `D:`. Backup-ul Proxmox VZDump al VM 201 le acoperă (snapshot
|
||||
întreg disk virtio0). Dar pentru recovery rapid al unei versiuni
|
||||
individuale (`_ARHIVE\<MODUL>\<MODUL>-x.y.z.ZIP` șters accidental) e
|
||||
util un backup separat al folderului.
|
||||
- **SVN dependency:** scripturile DB sunt în SVN extern. Dacă serverul SVN
|
||||
cade, `tasks.bat` eșuează la `svn update`. Verifică URL-ul SVN configurat
|
||||
în TortoiseSVN local.
|
||||
- **VFP9 runtime:** `D:\APPUPDATESERVERAVFP` depinde de `vfp9t.dll` și
|
||||
`msvcr71.dll`. Nu redenumi/șterge.
|
||||
- **Manifest XML cu encoding `Windows-1252`** — la editare manuală păstrează
|
||||
encoding-ul (nu salva ca UTF-8) altfel parser-ul VFP de pe stația
|
||||
clientului poate ceda.
|
||||
|
||||
---
|
||||
|
||||
## Referințe
|
||||
|
||||
- README VM 201: `../README.md`
|
||||
- IIS SSL / Let's Encrypt: `vm201-certificat-letsencrypt-iis.md`
|
||||
- Arhitectură domenii Dokploy: `vm201-dokploy-infrastructure.md`
|
||||
- Aplicație CONTAFIN AVFP: documentație externă (ActiveVFP framework)
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizare:** 2026-04-25
|
||||
**Autor:** Marius Mutu
|
||||
Reference in New Issue
Block a user