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/
|
│ ├── docs/
|
||||||
│ │ ├── vm201-certificat-letsencrypt-iis.md
|
│ │ ├── vm201-certificat-letsencrypt-iis.md
|
||||||
│ │ ├── vm201-dokploy-infrastructure.md # Arhitectură Dokploy + domenii
|
│ │ ├── 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-btgo-playwright-service.md # Scraper BT George (Playwright Python)
|
||||||
│ │ ├── vm201-troubleshooting-backup-nfs.md
|
│ │ ├── vm201-troubleshooting-backup-nfs.md
|
||||||
│ │ └── vm201-troubleshooting-pana-curent-2026-01-11.md
|
│ │ └── vm201-troubleshooting-pana-curent-2026-01-11.md
|
||||||
@@ -307,13 +308,14 @@ ssh claude@100.95.55.51
|
|||||||
|
|
||||||
### VM 201 - Windows 11
|
### VM 201 - Windows 11
|
||||||
**Director:** `vm201-windows/`
|
**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 |
|
| Fișier | Descriere |
|
||||||
|--------|-----------|
|
|--------|-----------|
|
||||||
| `README.md` | Configurație hardware, servicii, rețea, backup |
|
| `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-certificat-letsencrypt-iis.md` | Certificate SSL Let's Encrypt, Win-ACME, SNI |
|
||||||
| `docs/vm201-dokploy-infrastructure.md` | Arhitectură Dokploy + domenii |
|
| `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-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-backup-nfs.md` | Incident backup NFS (2025-10-08) |
|
||||||
| `docs/vm201-troubleshooting-pana-curent-2026-01-11.md` | Incident pană curent |
|
| `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`
|
- **Informații generale** → `vm201-windows/README.md`
|
||||||
- **Configurez site-uri IIS noi (Dokploy)** → `vm201-windows/docs/vm201-dokploy-infrastructure.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`
|
- **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`
|
- **Scraper BT George (btgo-playwright)** → `vm201-windows/docs/vm201-btgo-playwright-service.md`
|
||||||
|
|
||||||
### Dokploy + Traefik (LXC 103)
|
### Dokploy + Traefik (LXC 103)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
- **Host Proxmox:** pvemini (10.0.20.201)
|
- **Host Proxmox:** pvemini (10.0.20.201)
|
||||||
- **Storage:** local-zfs (ZFS pool)
|
- **Storage:** local-zfs (ZFS pool)
|
||||||
- **Status:** Running (onboot: enabled)
|
- **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
|
- **SSL/TLS Termination** - Certificate Let's Encrypt pentru domenii externe
|
||||||
- **SNI (Server Name Indication)** - Multiple certificate pe același IP
|
- **SNI (Server Name Indication)** - Multiple certificate pe același IP
|
||||||
- **Domenii gestionate:**
|
- **Domenii gestionate:**
|
||||||
- roa.romfast.ro
|
- roa.romfast.ro (+ aplicațiile virtuale `/roaupdate` și `/contafinupdate`)
|
||||||
|
- roa2web.romfast.ro
|
||||||
- dokploy.romfast.ro
|
- dokploy.romfast.ro
|
||||||
- gitea.romfast.ro
|
- gitea.romfast.ro
|
||||||
- roa-qr.romfast.ro ← **NOU** (proxy → LXC 103 Traefik → pdf-qr-app)
|
- roa-qr.romfast.ro (proxy → LXC 103 Traefik → pdf-qr-app)
|
||||||
- *.roa.romfast.ro ← **NOU** wildcard (proxy → LXC 103 Traefik → Dokploy apps)
|
- *.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`
|
**Documentație:** Vezi `vm201-certificat-letsencrypt-iis.md`
|
||||||
**Arhitectură Dokploy:** Vezi `vm201-dokploy-infrastructure.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
|
- **WinNUT Client** - Monitorizare vizuală status UPS în timp real
|
||||||
- **Server NUT:** 10.0.20.201:3493 (pvemini)
|
- **Server NUT:** 10.0.20.201:3493 (pvemini)
|
||||||
- **UPS:** nutdev1 (INNO TECH USB UPS)
|
- **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`
|
**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`
|
- **Repo:** `git@gitea.romfast.ro:romfast/btgo-playwright.git`
|
||||||
- **Stack:** Python + `playwright==1.48.0` (Python SDK direct, nu MCP/CLI)
|
- **Stack:** Python + `playwright==1.48.0` (Python SDK direct, nu MCP/CLI)
|
||||||
- **Scop:** Extrage solduri conturi + descarcă CSV tranzacții din `go.bancatransilvania.ro`
|
- **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
|
- WebSockets Protocol
|
||||||
- HTTP Redirect
|
- HTTP Redirect
|
||||||
- URL Rewrite Module
|
- URL Rewrite Module
|
||||||
- **Sites:**
|
- **Sites (verificat 2026-04-25):**
|
||||||
- Default Web Site (roa.romfast.ro)
|
- Default Web Site (roa.romfast.ro) — conține `/roaupdate` → `D:\ROAUPDATE` și `/contafinupdate` → `D:\APPUPDATESERVERAVFP`; restul proxy → 10.0.20.36
|
||||||
- Dokploy (dokploy.romfast.ro)
|
- ROA2WEB (roa2web.romfast.ro) → proxy 10.0.20.36
|
||||||
- Gitea (gitea.romfast.ro)
|
- 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-qr (roa-qr.romfast.ro) → proxy LXC 103 Traefik
|
||||||
- roa-apps (*.roa.romfast.ro) → proxy wildcard LXC 103 Traefik
|
- roa-apps (*.roa.romfast.ro) → proxy wildcard LXC 103 Traefik
|
||||||
|
|
||||||
**Configurare SSL:** Vezi `vm201-certificat-letsencrypt-iis.md`
|
**Configurare SSL:** Vezi `vm201-certificat-letsencrypt-iis.md`
|
||||||
|
**Server update ROA + CONTAFIN:** Vezi `vm201-roa-update-server.md`
|
||||||
|
|
||||||
#### 3. Win-ACME
|
#### 3. Win-ACME
|
||||||
- **Versiune:** v2.2.9.1701
|
- **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ă
|
### Documentație VM 201 Specifică
|
||||||
- **SSL Certificates IIS:** `docs/vm201-certificat-letsencrypt-iis.md`
|
- **SSL Certificates IIS:** `docs/vm201-certificat-letsencrypt-iis.md`
|
||||||
- **Arhitectură Dokploy + Domenii:** `docs/vm201-dokploy-infrastructure.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`
|
- **Scraper BT George (btgo-playwright):** `docs/vm201-btgo-playwright-service.md`
|
||||||
- **Troubleshooting Incident 2025-10-08:** `docs/vm201-troubleshooting-backup-nfs.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`
|
- **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