Paigaldus- ja seadistus-skriptid testimismasina (Linux / macOS / Windows) kiireks ülesseadmiseks testimistöö jaoks.
Skriptid jagunevad kahte rühma:
- Web eID näidisrakendused — PHP, Java, .NET (main-haru ja harude testimine)
- Muud seadistused ja juhendid — VMware shared folder, masina ärkvel hoidmine (keep-awake), PuTTY SSH-võti
Mis tahes *-remote* Python-skripti (setup-web-eid-dotnet-remote.py, setup-web-eid-dotnet-branch-remote.py) enne käivitust:
- Windows:
notepad %USERPROFILE%\ngrok-auth-token.txt - macOS / Linux:
nano ~/ngrok-auth-token.txt - Sisu: ainult token (üks rida, ilma
ngrok config add-authtokenkäsuta ega jutumärkideta), salvesta. - Token: https://dashboard.ngrok.com/get-started/your-authtoken (tasuta konto)
- Pärast esimest jooksu kustuta fail käsitsi (token elab edaspidi
ngrok.yml-is):del %USERPROFILE%\ngrok-auth-token.txt/rm ~/ngrok-auth-token.txt. - Üksikasjalikud env-muutuja ja paste-i alternatiivid on iga remote-skripti sektsioonis allpool.
Web eID näidisrakendused (üksikasjad)
- Main-haru skriptid — PHP, Java, .NET (lokaalne + remote)
- Harude testimise skriptid — .NET / PHP / Java haru-skriptid (Ubuntu, Windows, macOS)
- .NET haru-testimine, Windows / macOS, remote ngrok — vt 🔖 Enne alustamist kasti üleval.
- Live-logi aken — sulgemine, taas-avamine, peatamine
⚠️ VMware Ubuntu VM-il PHP + Java koos (teadaolev konflikt)
Web eID rakendus (web-eid-app) (üksikasjad)
web-eid-app-build-ubuntu.sh— natiivrakenduse ehitus (Docker + lokaalne) ja kaarditest
Muud seadistused ja juhendid (üksikasjad)
- VMware Shared Folder
- Keep awake — Ubuntu/GNOME, macOS, Windows 10/11
- PuTTY SSH-võtmega ühendus (Windows)
Märkus: alamskriptid on
<details>plokkides — kliki noolt nime ees, et avada.
Skriptid kloonivad web-eid
GitHub-projektist vastava web-eid-authtoken-validation-* repo,
ehitavad näiterakenduse ja käivitavad. Kõik avavad lõpus eraldi
terminaliakna live-logiga (rakenduse päringud, sertide laadimine,
OCSP/TSA tegevused reaalajas).
Repo main-harust ehitatud rakendused — sobivad reliisi-testimiseks.
| Skript | Otstarve | Platvorm |
|---|---|---|
setup-web-eid-php.sh |
Web eID PHP näiterakendus (lokaalne) | Ubuntu |
setup-web-eid-php-remote.sh |
Web eID PHP näiterakendus + ngrok (avalik HTTPS) | Ubuntu |
setup-web-eid-java.sh |
Web eID Java näiterakendus (ngrok-iga) | Ubuntu, macOS |
setup-web-eid-dotnet.sh |
Web eID .NET näiterakendus (lokaalne) | Ubuntu |
setup-web-eid-dotnet-remote.sh |
Web eID .NET näiterakendus + ngrok (avalik HTTPS) | Ubuntu |
setup-web-eid-dotnet.py (+ .cmd) |
Web eID .NET näiterakendus (Python-skript; lokaalne) | Windows, macOS |
setup-web-eid-dotnet-remote.py (+ .cmd) |
Web eID .NET näiterakendus + ngrok (Python; avalik HTTPS) | Windows, macOS |
PHP — Ubuntu (lokaalne, HTTPS localhost)
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-php.sh
chmod +x setup-web-eid-php.sh
bash setup-web-eid-php.shPHP — Ubuntu (remote, ngrok-tunneliga)
Sama PHP näiterakendus, aga avalikult internetist kättesaadav ngrok-iga — sobib näiteks PR-i jagamiseks arendajaga kaugteel või mobiilseadmest testimiseks.
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-php-remote.sh
chmod +x setup-web-eid-php-remote.sh
bash setup-web-eid-php-remote.shErinevus lokaalsest skriptist:
- Paigaldab lisaks ngrok-i ja küsib auth tokenit (https://dashboard.ngrok.com/get-started/your-authtoken)
- ngrok tunneldab Apache HTTPS-i (port 443) avalikku URL-i
example/src/app.conf.phporigin_urluuendatakse iga jooksu ajal ngrok URL-iks (Web eID library nõuab vastavust)
Java — Ubuntu
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-java.sh
chmod +x setup-web-eid-java.sh
bash setup-web-eid-java.shEeldused: Java-skript vajab ngrok auth tokenit (küsitakse sammus 3/7). Tee endale tasuta konto ja kopeeri token: https://dashboard.ngrok.com/get-started/your-authtoken
Java — macOS
curl -O https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-java.sh
chmod +x setup-web-eid-java.sh
bash setup-web-eid-java.shEeldused: ngrok auth token (vt Java — Ubuntu).
Java — repo struktuur ja ehituse väljund
Skript kloonib repo ~/projects/web-eid/ alla ja teeb selle sees kaks
eraldi ehitust (sammud 5/7 ja 6/7):
web-eid/ ← repo juur
├── pom.xml ┐
├── src/ │ TEEK (eu.webeid.security:authtoken-validation)
│ ├── main/java/ │
│ └── test/java/ ┘
├── target/ ← teegi build-väljund (mvn install paneb siia .jar-id)
│ └── authtoken-validation-1.2.3.jar
├── example/ ← NÄIDISRAKENDUS
│ ├── pom.xml ┐
│ ├── src/ │ eu.webeid.example:web-eid-springboot-example
│ └── target/ ┘
│ └── web-eid-springboot-example-1.2.3.jar
├── LICENSE
└── README.md
NB! Versioon
1.2.3näites on näitlik — sinu repo tegelikus väljundis on praeguse haru versioon (vaatapom.xml<version>välja võitarget/kausta failide nime).
Kuidas seda kontrollida:
# Mis on teegi target-i sees?
ls ~/projects/web-eid/target/
# Peaks olema: authtoken-validation-X.Y.Z.jar (+ sources, javadoc, classes/, test-classes/, surefire-reports/...)
# Mis on näidisrakenduse target-i sees?
ls ~/projects/web-eid/example/target/
# Peaks olema: web-eid-springboot-example-X.Y.Z.jar (Spring Boot fat JAR)Ehituse logi (live-vaade eraldi terminaliaknas kuvatakse ehituse ajal automaatselt) on samuti vaadeldav käsitsi:
less -R ~/tools/build.log.NET — Ubuntu (lokaalne, HTTPS localhost:44391)
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet.sh
chmod +x setup-web-eid-dotnet.sh
bash setup-web-eid-dotnet.shSkript käivitab dotnet run-i vaikimisi Development-režiimis
(ASPNETCORE_ENVIRONMENT default-väärtus). See režiim toetab test
ID-kaartidega testimist (~/.digidocpp/tsl/EE_T.xml lubab test-CA-d).
Vajadusel küsib skript sudo parooli (libdigidocpp-csharp paigaldamiseks).
.NET — Windows / macOS (Python-skriptiga, lokaalne)
Cross-platform Python-skript, mis paigaldab .NET 8 SDK, Git-i ja
DigiDoc4 Client-i (kui pole), kloonib repo, patchib .csproj-i ja
käivitab näiterakenduse https://localhost:44391. Sõltuvused: ainult
Python 3.8+ standard-teek (EI vaja pip install-i).
Töövoog:
Windows-i kasutaja: topeltklikk setup-web-eid-dotnet.cmd
→ kontrollib Python (paigaldab winget-iga kui pole)
→ käivitab setup-web-eid-dotnet.py
macOS-i kasutaja: python3 setup-web-eid-dotnet.py (otse terminalis)
Windows:
:: Lae alla mõlemad failid (curl töötab nii cmd-aknas kui PowerShell-is,
:: Windows 10/11-l on curl.exe sisseehitatud)
curl -o setup-web-eid-dotnet.cmd https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet.cmd
curl -o setup-web-eid-dotnet.py https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet.py
:: Vaikimisi: dev-profile (test ID-kaardid, ASPNETCORE_ENVIRONMENT=Development)
.\setup-web-eid-dotnet.cmd
:: VOI: prod-profile (live ID-kaardid, ASPNETCORE_ENVIRONMENT=Production)
.\setup-web-eid-dotnet.cmd --profile prodKui Python pole paigaldatud, .cmd küsib Paigaldada Python nuud [Y/N] ja
paigaldab automaatselt winget-iga. Pärast Pythoni installi kuvab
"sulge see aken, ava uus" sõnumi (PATH-i värskendus). Topeltkliki .cmd-l
uuesti.
macOS:
# Lae alla ainult .py (cmd pole vaja)
curl -O https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet.py
# Vaikimisi: dev-profile (test ID-kaardid)
python3 setup-web-eid-dotnet.py
# VOI: prod-profile (live ID-kaardid)
python3 setup-web-eid-dotnet.py --profile prodSkript:
- Kontrollib + paigaldab .NET 8 SDK (
winget install Microsoft.DotNet.SDK.8Windowsil,brew install --cask dotnet-sdkMac-il) - Kontrollib + paigaldab Git
- Kontrollib libdigidocpp dev-teeki ja paigaldab uusima
libdigidocpp*x64.msiGitHub releases-ist (https://github.com/open-eid/libdigidocpp/releases). NB! See EI OLE sama mis DigiDoc4 Client (kasutaja-tarkvara) —libdigidocppon developer-teek, mida vajab .NET näiterakendus - Kloonib
web-eid-authtoken-validation-dotnetmain-haru - Patchib
.csproj:PackageReference WebEid.Security→ProjectReference(lokaalne lähtekood) - Kopeerib
C:\Program Files\libdigidocpp\include\digidocpp_csharp\*.cs→ projektiDigiDoc/(enne build-i, kuna .cs failid kompileeritakse projekti) - Seadistab HTTPS dev-sertifikaadi (
dotnet dev-certs https --trust).⚠️ Windowsil avaneb turvadialoog "Security Warning — Install certificate?":- Vajuta "Yes" — sertifikaat lisatakse Windows-i Trusted Root-i,
https://localhost:44391töötab ilma brauseri-hoiatusteta, Web eID extension saab korrektselt töötada. - Kui klõpsad "No" — paigaldus on katki: brauser näitab
"Your connection is not private" hoiatust ja Web eID extension võib
keelduda HTTPS-päringust. Sertifikaat on self-signed AINULT
localhost-i jaoks (sinu enda masin), pole turvaohtu — vajuta julgelt Yes.
- Vajuta "Yes" — sertifikaat lisatakse Windows-i Trusted Root-i,
- Dev-profile: loob test-TSL flag-faili (
%APPDATA%\digidocpp\tsl\EE_T.xmlWindowsil,~/.digidocpp/tsl/EE_T.xmlmacOS-il). Prod-profile: EE_T.xml-i ei loo (live-kaardid kasutavad live TSL-i). - Ehitab —
dotnet restore+dotnet build - Kopeerib pärast build-i ülejäänud libdigidocpp failid (DLL-id +
schema/kaust) →bin\Debug\net8.0\(vastab ametliku juhendi sammulexcopy /sja "Also copy folder schema"). Prod-profile: lisaks loobbin\Debug\net8.0\digidocpp.confts.url-iga (Variant 2 ametlikust juhendist — Eesti eID test-TSA URL, mis ei vaja SK-tasulist kontot). Käivitabdotnet run --no-buildkoosASPNETCORE_ENVIRONMENT=Development(dev) võiProduction(prod) ja avab brauseri.
Profiilide erinevus:
| Aspekt | --profile dev (vaikimisi) |
--profile prod |
|---|---|---|
| ASP.NET keskkond | Development |
Production |
| ID-kaardid | Test-kaardid (JÕEORG jms) | Live-kaardid |
| Trusted CA-d | Certificates/Dev/*.cer (test) |
Certificates/Prod/*.cer (live) |
| TSL | Test-TSL (EE_T.xml flag) |
Live-TSL |
| TSA URL | http://demo.sk.ee/tsa (test) |
Eesti eID test-TSA URL (tasuta, ilma SK-lepinguta) |
| Source-patch DigiDocConfiguration.cs | ei | ei (kasutab Variant 2 — digidocpp.conf) |
Hoiatus prod-profile-i kohta: vaikimisi kasutatav TSA URL on test-TSA — sobib testimiseks, aga päris-produktsiooni jaoks vaja SK-tasulist TSA-kontot ja URL tuleb vahetada lepingu-kohasele (nt https://eid.sk.ee/tsa). Konkreetne URL ja seadistus on dokumenteeritud libdigidocpp wiki-s.
.NET — Windows / macOS (Python-skriptiga + ngrok, remote)
Sarnaselt lokaalsele Python-skriptile, aga ngrok-tunneliga — sobib näiteks testimiseks teisest masinast, mobiilseadmest või PR-i jagamiseks arendajaga kaugteel.
⚠️ TÄHELEPANU TEST-KAARDI KASUTAJALE:Remote-skripti logist näed alati
Hosting environment: Production— see on õige, mitte bug. ÄRA võta selle pärast live-kaarti, kui sul on test-kaart.Remote-skriptis
--profiletähendab KAARDITÜÜPI, mitte ASP.NET-i environment-it:
--profile dev= test-kaart (JÕEORG jms) — VAIKIMISI--profile prod= live-kaart (päris isiklik ID)ASP.NET Hosting environment on remote-modes alati Production — ngrok-i
UseForwardedHeaders()middleware vajab seda. Skript teeb source-patchid, mis sunnivad test-CA-d ja test-TSL-i tööle Production-mode-s.Niisiis: test-kaart →
--profile dev(vaikimisi). Logist näed Production, aga autentimine töötab test-kaardiga.
Windows:
:: Lae alla mõlemad failid
curl -o setup-web-eid-dotnet-remote.cmd https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-remote.cmd
curl -o setup-web-eid-dotnet-remote.py https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-remote.py
:: Vaikimisi: dev-profile (test-kaardid + source-patchid)
.\setup-web-eid-dotnet-remote.cmd
:: VOI: prod-profile (live-kaardid + digidocpp.conf ts.url-iga)
.\setup-web-eid-dotnet-remote.cmd --profile prodmacOS:
curl -O https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-remote.py
python3 setup-web-eid-dotnet-remote.py # dev
python3 setup-web-eid-dotnet-remote.py --profile prod # prodEeldused: ngrok auth token (tasuta konto): https://dashboard.ngrok.com/get-started/your-authtoken. Skript pakub kolme viisi tokeni sisestamiseks (skript proovib järjekorras):
-
Tokeni-fail (SOOVITUSLIK — paste-i probleeme pole, töötab cmd-aknast väljaspool tehtud failiga):
- Enne skripti käivitamist salvesta token faili:
notepad %USERPROFILE%\ngrok-auth-token.txt - Pane sinna AINULT token (üks rida, mitte
ngrok config add-authtoken ...käsku ega jutumärke), salvesta, sulge. - Käivita skript — leiab faili automaatselt sammus 5.
- Pärast esimest jooksu kustuta fail käsitsi (token elab edaspidi
ngrok.yml-is):del %USERPROFILE%\ngrok-auth-token.txt
- Enne skripti käivitamist salvesta token faili:
-
NGROK_AUTH_TOKENenv-muutuja (kehtib AINULT selles cmd-aknas, kuni see suletakse)::: cmd set NGROK_AUTH_TOKEN=2xxxxxxxxxxxxxxxxxxxx .\setup-web-eid-dotnet-remote.cmd
# PowerShell $env:NGROK_AUTH_TOKEN='2xxxxxxxxxxxxxxxxxxxx' .\setup-web-eid-dotnet-remote.cmd
-
Käsitsi paste konsooli (kõige ebausaldusväärsem — Windows cmd-i paste-i käitumine on vastuoluline):
- Skript küsib paste-iga
- Paremklikk cmd-aknas / Ctrl+V Windows Terminal-is, siis Enter
Kus token tegelikult salvestub: C:\Users\<sina>\AppData\Local\ngrok\ngrok.yml. Skript ise tokenit kuhugi mujale ei salvesta. Eemaldamiseks: kustuta see fail.
Erinevus lokaalsest Python-skriptist:
- Paigaldab lisaks ngrok-i (otse-download GitHub-i releases-ist, mitte winget)
- Küsib ngrok auth-tokenit (skripti sees, mitte eraldi aknas)
- Rakendus kuulab HTTP-na
0.0.0.0:8080— ngrok teeb HTTPS-i ASPNETCORE_ENVIRONMENT=Productionalati (ngrok-iUseForwardedHeaders()jaoks)appsettings.jsonOriginUrluuendatakse iga jooksu ajal ngrok URL-iks--profile devkorral kaks source-patchi (vajalik, kuna Production-mode pole loomulik test-kaartide jaoks):Startup.cs:LoadTrustedCaCertificatesFromDisk(true)— sunnib test-CA-d ka Production-modesDigiDocConfiguration.cs: laiendabif-tingimustWEBEID_USE_TEST_TSLenv-muutujaga — sunnib test-TSL-i
--profile prodkorral source-patche EI tehta +bin\Debug\net8.0\digidocpp.confts.url-iga (Variant 2)
Remote-skriptis --profile tähendab kaarditüüpi, mitte ASP.NET-i Hosting environment-it. ASP.NET-i Hosting environment on remote-modes ALATI Production (ngrok-i UseForwardedHeaders() middleware vajab seda — Dev-modes oleks UseHttpsRedirection() aktiivne ja lõhuks ngrok-tunneli HTTP→HTTPS redirect-loop-iga).
--profile |
Kaardid | ASP.NET Hosting env | Kuidas test-kaardid prod-modes tööle saavad |
|---|---|---|---|
dev |
Test-kaardid (JÕEORG jms) | Production (alati remote-modes) | Source-patchid Startup.cs (LoadTrustedCaCertificatesFromDisk(true)) + DigiDocConfiguration.cs env-flag WEBEID_USE_TEST_TSL=true |
prod |
Live-kaardid (päris ID) | Production (alati remote-modes) | Loomulik (Cert/Prod/*.cer + live TSL); digidocpp.conf ts.url-iga |
Niisiis: kui logist näed Hosting environment: Production ka --profile dev-iga — see on õige käitumine, mitte bug.
Akna käitumine:
- Sama cmd-aken hoiab nii
dotnet run-i kui ngrok-tunneli (PID Python-protsessis salvestatud) - Ctrl+C peatab MÕLEMAD (app + ngrok) — puhas väljumine
- Brauser avaneb 8 sek pärast app-i käivitust ngrok URL-ile
.NET — Ubuntu (remote, ngrok-tunneliga)
Sama .NET näiterakendus, aga avalikult internetist kättesaadav ngrok-iga — sobib näiteks veebibrauseri-eksperdi remote-testimiseks mobiilseadmest.
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-remote.sh
chmod +x setup-web-eid-dotnet-remote.sh
bash setup-web-eid-dotnet-remote.shErinevus lokaalsest skriptist:
- Paigaldab lisaks ngrok-i ja küsib auth tokenit (https://dashboard.ngrok.com/get-started/your-authtoken)
- Rakendus kuulab HTTP-na
0.0.0.0:8080— ngrok teeb HTTPS-i ASPNETCORE_ENVIRONMENT=Production(kohustuslik, etUseForwardedHeadersloeks ngrok-iX-Forwarded-Protoheader-it)- Test ID-kaardi tugi tuleb kahest patch-ist:
Startup.cs:LoadTrustedCaCertificatesFromDisk(true)— auth jaoks~/.digidocpp/digidocpp.conf(test-TSL URL + cert + TSA) — signimise jaoks
appsettings.jsonOriginUrluuendatakse iga jooksu ajal ngrok URL-iks
Repo arendusharust ehitatud rakendused — kasutatakse PR-ide testimiseks enne main-i ühendamist. Skript küsib (või võtab argumendiks) haru-nime, kloonib selle, ehitab valitud haru WebEid library lokaalselt ja kasutab seda example-app-i ehitamiseks. Iga keele jaoks veidi erinev pakkimine:
- .NET: ehitatakse lokaalseks NuGet-paketiks versiooniga
1.2.0-beta1(eristub upstream-i 1.2.0-st) - Java: installitakse lokaalsesse Maven cache'i, example-app kasutab automaatselt installitud versiooni
- PHP:
composer.jsonrepositoriesblokis lisatakse git tüüpi upstream-link, version constraint muudetaksedev-<HARU>-ks
| Skript | Otstarve | Platvorm |
|---|---|---|
setup-web-eid-java-branch.sh |
Web eID Java näide suvalisest harust + ngrok | Ubuntu, macOS |
setup-web-eid-dotnet-branch.sh |
Web eID .NET näide suvalisest harust (lokaalne) | Ubuntu |
setup-web-eid-dotnet-branch-remote.sh |
Web eID .NET näide suvalisest harust + ngrok | Ubuntu |
setup-web-eid-dotnet-branch.py (+ .cmd) |
Web eID .NET näide suvalisest harust (Python-skript; lokaalne) | Windows, macOS |
setup-web-eid-dotnet-branch-remote.py (+ .cmd) |
Web eID .NET näide suvalisest harust (Python-skript; + ngrok) | Windows, macOS |
setup-web-eid-php-branch.sh |
Web eID PHP näide suvalisest harust (lokaalne) | Ubuntu |
setup-web-eid-php-branch-remote.sh |
Web eID PHP näide suvalisest harust + ngrok | Ubuntu |
.NET haru-testimine — Ubuntu (lokaalne)
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-branch.sh
chmod +x setup-web-eid-dotnet-branch.sh
# Interaktiivne: kuvab harude nimekirja ja küsib valikut
bash setup-web-eid-dotnet-branch.sh
# Konkreetne haru nimetus (asenda WE2-123 oma haru-nimega)
bash setup-web-eid-dotnet-branch.sh --branch WE2-123Skript:
- Tõmbab
web-eid-authtoken-validation-dotnetrepo - Laseb valida haru (interaktiivne nimekiri või
--branchargument) - Ehitab
WebEid.Securityprojekti lokaalseks NuGet-paketiks versiooniga1.2.0-beta1(eristub upstream-i 1.2.0-st) - Uuendab example-app-i
.csproj-i: viite vahetatakse PackageReferenceWebEid.Security 1.2.0-beta1peale - Ehitab + käivitab example-app-i lokaalselt (
https://localhost:44391) - Pärast valmimist näitab:
- DLL sisemine versioon (
strings WebEid.Security.dll | grep beta) — kinnitab et lokaalne pakett on tegelikult kasutusel - Git haru + commit hash — auditeeritav
- DLL sisemine versioon (
Kasulik, kui pead testima konkreetse arendaja PR-i enne main-i ühendamist.
.NET haru-testimine — Ubuntu (remote, ngrok-tunneliga)
Sama haru-testimine, aga ngrok-tunneliga — sobib näiteks PR-i jagamiseks arendajaga kaugteel või mobiilseadmest testimiseks.
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-branch-remote.sh
chmod +x setup-web-eid-dotnet-branch-remote.sh
bash setup-web-eid-dotnet-branch-remote.sh
# Konkreetne haru nimetus (asenda WE2-123 oma haru-nimega):
bash setup-web-eid-dotnet-branch-remote.sh --branch WE2-123Erinevus lokaalsest haru-skriptist (sama loogika nagu
setup-web-eid-dotnet-remote.sh-s):
- Paigaldab lisaks ngrok-i ja küsib auth tokenit
- Rakendus kuulab HTTP-na
0.0.0.0:8080— ngrok teeb HTTPS-i ASPNETCORE_ENVIRONMENT=Production+WEBEID_USE_TEST_TSL=true- Test ID-kaardi tugi tuleb kahest source-patch-ist:
Startup.cs:LoadTrustedCaCertificatesFromDisk(true)— auth jaoksDigiDocConfiguration.cs: laiendabif-tingimustWEBEID_USE_TEST_TSLenv-muutujaga — signimise jaoks
appsettings.jsonOriginUrluuendatakse iga jooksu ajal ngrok URL-iks
.NET haru-testimine — Windows / macOS (Python-skript, lokaalne)
Sama loogika mis Ubuntu-versioonis, aga Pythonis. Toetab --branch argumenti
JA interaktiivset menüüd, --profile {dev,prod}.
Windows (cmd-aknas):
curl -o setup-web-eid-dotnet-branch.cmd https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-branch.cmd
curl -o setup-web-eid-dotnet-branch.py https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-branch.py
:: Interaktiivne: kuvab harude nimekirja
.\setup-web-eid-dotnet-branch.cmd
:: Konkreetne haru, test-kaartidega (vaikimisi)
.\setup-web-eid-dotnet-branch.cmd --branch WE2-123
:: Live-kaardiga (digidocpp.conf ts.url-iga)
.\setup-web-eid-dotnet-branch.cmd --branch WE2-123 --profile prodmacOS (terminalis):
curl -O https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-branch.py
python3 setup-web-eid-dotnet-branch.py --branch WE2-123.cmd kontrollib alguses, et Python on paigaldatud ja kui pole, pakub
winget install Python.Python.3.12-i.
.NET haru-testimine — Windows / macOS (Python-skript, remote ngrok)
Sama loogika mis Ubuntu remote-versioonis (ngrok-tunnel + auth-token), aga Pythonis.
⚠ Enne käivitamist: valmista ette ngrok auth token — kõige usaldusväärsem viis on failimeetod (paste cmd-aknas on ebausaldusväärne).
notepad %USERPROFILE%\ngrok-auth-token.txtPane sinna AINULT token (üks rida, ilma
ngrok config add-authtokenkäsuta), salvesta, sulge. Skript leiab faili automaatselt sammus 5.Tokeni saad: https://dashboard.ngrok.com/get-started/your-authtoken (tasuta konto). Pärast esimest jooksu kustuta fail käsitsi (token elab edaspidi
ngrok.yml-is):del %USERPROFILE%\ngrok-auth-token.txt
Windows:
curl -o setup-web-eid-dotnet-branch-remote.cmd https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-branch-remote.cmd
curl -o setup-web-eid-dotnet-branch-remote.py https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-branch-remote.py
:: Interaktiivne haru-valik + test-kaardid
.\setup-web-eid-dotnet-branch-remote.cmd
:: Konkreetne haru, live-kaardiga
.\setup-web-eid-dotnet-branch-remote.cmd --branch WE2-123 --profile prodmacOS:
curl -O https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-dotnet-branch-remote.py
python3 setup-web-eid-dotnet-branch-remote.py --branch WE2-123(macOS-il pane fail ~/ngrok-auth-token.txt-i.)
Profile-i vahetus (dev ↔ prod) on ohutu — skript taastab Startup.cs ja
DigiDocConfiguration.cs igal käivitusel git HEAD-ist ja siis rakendab
ainult valitud profile-i patche.
.NET branch-skriptide logifaili kasutamine
setup-web-eid-dotnet-branch.py ja setup-web-eid-dotnet-branch-remote.py
kirjutavad rakenduse logi paralleelselt nii konsooli kui ka faili:
| Platvorm | Faili tee |
|---|---|
| Windows | C:\Users\<sina>\tools\dotnet-app.log |
| macOS | ~/tools/dotnet-app.log |
NB! Iga uus käivitus kirjutab faili üle. Kui tahad eelmist alles hoida, kopeeri see enne uut käivitust kuhugi mujale.
Tüüpilised kasutused:
-
Vaata logi terve sisu Notepadis (kõige lihtsam):
notepad %USERPROFILE%\tools\dotnet-app.log -
Viimased 50 rida (nt pärast Ctrl+C-d kui konsooli scrollback liiga lühike):
powershell -NoProfile -Command "Get-Content '%USERPROFILE%\tools\dotnet-app.log' -Tail 50"
-
Otsi viga / sõnumeid (nt CertificateNotTrustedException, OCSP, signing):
findstr /i "exception trusted error fail" %USERPROFILE%\tools\dotnet-app.log
Või PowerShelliga rea-numbritega:
Select-String -Path "$env:USERPROFILE\tools\dotnet-app.log" -Pattern 'Exception|fail|error'
-
Saatmine arendajale (Jira/Slack/email manus):
- Otse fail manusena ↑ asukohast
- Või sisu clipboardi:
clip < %USERPROFILE%\tools\dotnet-app.log(sobib lühikese logi puhul)
-
Säilita eelmine logi enne uut käivitust:
copy %USERPROFILE%\tools\dotnet-app.log %USERPROFILE%\Desktop\dotnet-app-2026-05-24.log
macOS-il asenda %USERPROFILE%\tools\dotnet-app.log → ~/tools/dotnet-app.log,
kasuta cat / less / tail / grep-i nagu tavaliselt.
Miks log-fail on? Kui tester avastab probleemi tunde pärast jooksu lõppu, konsooli scrollback võib olla kadunud. Log-fail on pidev kirje sellest, mida rakendus iga päringu jooksul kuvas — kasulik bugi-raporti-le tõenduseks.
PHP haru-testimine — Ubuntu (lokaalne)
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-php-branch.sh
chmod +x setup-web-eid-php-branch.sh
# Kuvab harude nimekirja ja küsib valikut
bash setup-web-eid-php-branch.sh
# Konkreetne haru nimetus + teegi ühiktestid (asenda WE2-123 oma haru-nimega)
bash setup-web-eid-php-branch.sh --branch WE2-123 --with-testsSkript:
- Tõmbab
web-eid-authtoken-validation-phprepo - Laseb valida haru (interaktiivne nimekiri või
--branchargument) - Muudab example-rakenduse
composer.json-i:"web-eid/web-eid-authtoken-validation-php": "1.3.*"→"dev-<HARU>"- Lisab
repositoriesbloki"type": "git"upstream-i URL-iga (NB: mitte"vcs"— see kasutaks GitHub API-d ja kukuks autentimisega)
- Käivitab
composer updateexample-kataloogis - Seadistab Apache (DocumentRoot → example/public, SSL)
- Pärast valmimist näitab haru + commit hash-i — auditeeritav
--with-testslipuga: jooksutab lisaks teegi ühiktestid (composer install+composer testrepo juurkataloogis) ja näitab kokkuvõtte (Tests/Failures/Time)
Ühiktestide logi-aken (ainult --with-tests-iga):
- Iga skripti-jooks salvestab logi timestamp-iga failinime alla, näiteks
~/composer-test-WE2-123-20260522-143015.log— vanad logid ei kao kui jooksutad uuesti. - Ebaõnnestumise korral avab skript automaatselt eraldi terminaliakna
logi-vaatega (
less -RANSI värvidega). Aknas:Qväljub,/FAILURESviib ebaõnnestumiste plokini,/^[0-9]+)leiab ebaõnnestunud testide loendi,g/Gviib algusesse/lõppu. - Edukal läbimisel küsib skript:
Avada test-logi eraldi terminaliaknas? [y/N]— vajutay+ Enter kui tahad logi näha (nt tõestuseks kontrollida), muidu lihtsalt Enter ja minnakse edasi. - Taasavamiseks hiljem (mis tahes hetkel pärast skripti lõppu):
bash ~/.web-eid-php-test-viewer.sh # avaneb viimase jooksu logi # või otse konkreetse logi-fail: less -R ~/composer-test-WE2-123-20260522-143015.log
- Tõestuseks salvestamine (puhas tekst ilma ANSI värvi-koodideta):
sed -r 's/\x1b\[[0-9;]*[mGKH]//g' \ ~/composer-test-WE2-123-20260522-143015.log \ > ~/php-tests-WE2-123-passed.txt
Kasulik, kui pead testima konkreetse arendaja PR-i enne main-i ühendamist.
PHP haru-testimine — Ubuntu (remote, ngrok-tunneliga)
Sama haru-testimine, aga ngrok-tunneliga — sobib näiteks PR-i jagamiseks arendajaga kaugteel või mobiilseadmest testimiseks.
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-php-branch-remote.sh
chmod +x setup-web-eid-php-branch-remote.sh
# Kuvab harude nimekirja ja küsib valikut
bash setup-web-eid-php-branch-remote.sh
# Konkreetne haru nimetus + teegi ühiktestid (asenda WE2-123 oma haru-nimega)
bash setup-web-eid-php-branch-remote.sh --branch WE2-123 --with-testsErinevus lokaalsest haru-skriptist:
- Paigaldab lisaks ngrok-i ja küsib auth tokenit (https://dashboard.ngrok.com/get-started/your-authtoken)
- ngrok tunneldab Apache HTTPS-i (port 443) avalikku URL-i
example/src/app.conf.phporigin_urluuendatakse iga jooksu ajal ngrok URL-iks (Web eID library nõuab vastavust)--with-testslipp töötab sama nagu lokaalses skriptis — sh ebaõnnestumise korral avab automaatselt eraldi terminaliakna test-logi vaatega (less -R), edukal läbimisel uut akent ei avane (vt lokaalse skripti kirjeldust eespool)
Java haru-testimine — Ubuntu/macOS (ngrok-tunneliga)
Sarnaselt .NET- ja PHP-harude testimisele, aga Java/Maven-i jaoks. Toetab
nii Linuxit (Ubuntu) kui macOS-i (x86_64 + arm64). Sudo ei ole vajalik —
JDK ja ngrok paigaldatakse ~/tools/ alla.
# Ubuntu
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-java-branch.sh
chmod +x setup-web-eid-java-branch.sh
# macOS
curl -O https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-web-eid-java-branch.sh
chmod +x setup-web-eid-java-branch.sh
# Kuvab harude nimekirja ja küsib valikut
bash setup-web-eid-java-branch.sh
# Konkreetne haru nimetus (asenda release-1.2.3 oma haru-nimega)
bash setup-web-eid-java-branch.sh --branch release-1.2.3Skript:
- Paigaldab portatiivse JDK 17 (Adoptium GA) ja ngrok-i
~/tools/alla - Küsib ngrok auth tokenit (eraldi terminaliaknas — vt https://dashboard.ngrok.com/get-started/your-authtoken)
- Tõmbab
web-eid-authtoken-validation-javarepo - Laseb valida haru (interaktiivne nimekiri või
--branchargument) - Verifitseerib haru ja commit-i: soovitud vs aktiivne haru kontroll,
kohalik vs
origin/<HARU>commit-võrdlus, pealkiri + kuupäev — auditeeritav - Ehitab root library
mvn install-iga lokaalsesse Maven cache'i (mvn installjooksutab automaatselt ka ühiktestid enne installimist) - Ehitab example-app-i Spring Boot fat JAR-iks (
mvn package) - Käivitab ngrok-tunneli + Spring Boot rakenduse, uuendab
application-dev.yamllocal-origin-i ngrok URL-iks - Avab live-logi eraldi terminaliaknas (rakenduse päringud reaalajas)
Eraldi terminaliaknad mis avanevad:
- Sammus 2 — ngrok auth tokeni dialoog
- Sammus 5/6 vahel — ehituse live-logi (Maven väljund reaalajas; sulged X-iga kui valmis)
- Pärast sammu 8 — rakenduse live-logi (Spring Boot päringud, OCSP/TSA tegevus)
Versiooni-detektsioon: skript nopib build-logist installitud library
versiooni (authtoken-validation-X.Y.Z.jar) ja kuvab selle kokkuvõttes —
nii saad kinnitada, et lokaalsesse Maven cache'i installiti just see versioon
mida haru pom.xml-is on. Kui logist ei õnnestu, fallback loeb otse
pom.xml-i <version> välja.
Kasulik release-haru või konkreetse PR-i testimiseks enne main-i ühendamist.
Live-logi aken — sulgemine, taas-avamine, peatamine
Kõik setup-web-eid-*.sh skriptid (nii main-haru kui harude testimise)
avavad lõpus eraldi terminaliakna live-logiga (tail -f rakenduse logi peal).
Käitumine järgib Unix-i tava — logi-aken on viewer, mitte controller:
selle sulgemine ei mõjuta rakendust.
| Tegevus | Mis juhtub |
|---|---|
| Akna X-nupp | Sulgeb AINULT logi-akna. Rakendus (ja ngrok kui see on) jäävad taustaks jooksma. |
| Ctrl+C logi-aknas | Ignoreeritakse — Ctrl+C ei tapa midagi, et saaksid teksti (nt ngrok URL-i) kopeerida. Paljud terminal-id (Windows Terminal, VS Code, GNOME Terminal valitud teksti puhul) mappivad Ctrl+C kopeerimiseks. |
Skripti lõpu-banneril ja logi-akna sees on selgelt välja kirjutatud:
-
Logi uuesti avada (kui sulgesid akna):
bash ~/tools/log-tail-helper.shHelper-skript jääb kõvakettale, saad iga kord taasavada — kasutab sama logi-faili samade filtritega (TSL-spam .NET-i puhul välja).
-
Rakenduse + ngrok-i peatamine — täpsed kill-käsud iga skripti lõpu-banneril näha. Näiteks .NET-remote-il:
kill $(cat ~/tools/dotnet-app.pid) kill $(cat ~/tools/ngrok.pid)
PHP-skripti puhul on Apache system-teenus (mitte foreground-protsess) —
seda peatatakse: sudo systemctl stop apache2.
⚠️ VMware Ubuntu VM-il PHP + Java koos (teadaolev konflikt)
Kui paigaldad mõlemad näited samasse Ubuntu VM-i, kukub Java Maven-ehitus samm 5/7-s OCSP unit-testi peal (VMware NAT-i DNS-hijack
- kõrval töötav Apache). Enne Java skripti käivitamist:
sudo systemctl stop apache2
echo "127.0.0.2 invalid.invalid" | sudo tee -a /etc/hostsPärast Java näite valmis saamist saad Apache tagasi käima panna:
sudo systemctl start apache2.
NB! See ei ole sama mis näidisrakendused üleval. Need (
setup-web-eid-*) ehitavad authtoken-validation näiteid (server-pool). See skript ehitab ja testib web-eid-app-i ennast — natiivset töölaua-rakendust, mis suhtleb kaardilugeja ja ID-kaardiga (get-signing-certificate/authenticate/sign).
Skript verifitseerib ehituse puhtas Docker-konteineris (CI paketiloend) ja teeb seejärel kohaliku ehituse, mida saab päris testkaardiga läbi katsetada. Käivitamise alguses laeb GitHub-ist haru-nimekirja ja laseb valida testitava haru (nt PR-i haru enne main-i ühendamist).
| Skript | Otstarve | Platvorm |
|---|---|---|
web-eid-app-build-ubuntu.sh |
web-eid-app ehitus (Docker + lokaalne) + kaarditest | Ubuntu 24.04 |
Eeldused:
- Ubuntu 24.04 (testitud 24.04.4 LTS, Docker 29.1.3)
- Sudo-õigus (Dockeri + ehitus-sõltuvuste paigaldamiseks)
- Kaardiga testimiseks (samm 6): ühendatud kaardilugeja + testkaart (PIN1 autentimiseks, PIN2 allkirjastamiseks)
web-eid-app — Ubuntu (Docker-verifitseerimine + kohalik kaarditest)
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/web-eid-app-build-ubuntu.sh
chmod +x web-eid-app-build-ubuntu.sh
bash web-eid-app-build-ubuntu.shSkripti sammud:
- Haru valimine — laeb GitHub-ist (
web-eid/web-eid-app) kõik saadaolevad harud, kuvab nummerdatud nimekirja, kasutaja valib numbri. Töötab niighCLI-ga kui kacurl-iga (fallback). - Docker kontroll — kontrollib kas Docker on paigaldatud, paigaldab
vajadusel (
docker.io); testibhello-world-iga, et Docker töötab. - Docker-põhine ehituse verifitseerimine — käivitab puhta
ubuntu:24.04konteineri, paigaldab CI paketiloendi, kloonib repo (--recurse-submodules), läheb valitud harusse, käivitab./build.shja kontrollib, et.debfailid tekkisid. Logi:~/claude-test/logs/docker-build-ci.log. - Kohalik sõltuvuste paigaldamine — paigaldab samad CI paketid otse hostmasinasse (kohaliku ehituse ja kaarditesti jaoks).
- Kohalik ehitus — kloonib repo (või uuendab olemasoleva), läheb
valitud harusse, käivitab
./build.shja kontrollib, et executable tekib:obj-x86_64-linux-gnu/src/app/web-eid. - Kaardiga testimine — ootab kasutaja kinnitust, et kaardilugeja ja
testkaart on ühendatud, seejärel jooksutab kolm käsku natiivrakenduse vastu:
get-signing-certificate— loeb kaardilt allkirjastamissertifikaadi (PIN puudub)authenticate— autendib PIN1-ga, kontrollib JWT tokeni ja algoritmi (ES384)sign SHA-384— allkirjastab PIN2-ga, kontrollib allkirja ja algoritmi (ECC SHA-384)
- Kokkuvõte — kuvab kõigi sammude tulemused, valitud haru nime, logide asukoha ja executable-i tee.
Mida Docker EI kata: konteiner ei näe hostmasina kaardilugejat, seega
rakenduse funktsionaalsust (samm 6) saab testida ainult kohaliku ehitusega
otse hostmasinas. Docker-samm verifitseerib ainult ehituse puhtas
keskkonnas (et CI paketiloend on piisav ja .deb failid tekivad).
Üldised testimismasina seadistus-skriptid ja juhendid (ei ole Web eID-spetsiifilised).
| Skript / juhend | Otstarve | Platvorm |
|---|---|---|
setup-vmware-shared-folder.sh |
VMware Shared Folder Ubuntu pool | Ubuntu (VMware VM) |
keep-awake.sh |
Keelab idle-actions (ekraan / sleep / ketas / lukustus) | Ubuntu/GNOME, macOS |
keep-awake.cmd |
Sama Windowsi versioon | Windows 10/11 |
putty-ssh-voti.md |
PuTTY SSH-võtme seadistamine (OpenSSH→.ppk, Pageant) | Windows |
VMware Shared Folder
Paigaldab open-vm-tools'i, seadistab /etc/fstab rea, monteerib
jagatud kausta ja loob sümbollingi kodukausta.
1. Hosti pool (Windows, käsitsi VMware UI-s) — VM peab olema välja lülitatud (mitte suspendis):
- VMware Workstation → vali VM → VM → Settings (Ctrl+D)
- Vahekaart Options → vasakult Shared Folders
- Parem paneel: Always enabled
- Add... → Next → Browse Windowsi kaustale → Name anna
ingliskeelne nimi (nt
sharedvõiSharedVM, ilma tühikute ja täpitähtedeta) → märgi Enable this share → Finish - OK Settings akna sulgemiseks
- Power On VM
2. VM-i pool (Ubuntu, skriptiga):
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/setup-vmware-shared-folder.sh
chmod +x setup-vmware-shared-folder.sh
bash setup-vmware-shared-folder.sh # tuvastab nime automaatselt
# või:
bash setup-vmware-shared-folder.sh SharedVM # määra nimi käsitsiKeep awake — Ubuntu/GNOME ja macOS
Test-VM-id ja test-masinad kipuvad ekraanisäästja / sleep'i tõttu hanguma.
Skript keelab kõik seotud seaded korraga ja kontrollib tulemused.
Platvorm tuvastatakse automaatselt uname -s-iga.
wget https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/keep-awake.sh
chmod +x keep-awake.sh
bash keep-awake.sh(macOS: curl -O wget-i asemel.)
Linux/GNOME (Ubuntu, Fedora) — gsettings, ei vaja sudo-d:
org.gnome.desktop.screensaver lock-enabled→ falseorg.gnome.desktop.screensaver idle-activation-enabled→ falseorg.gnome.desktop.session idle-delay→ 0org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type→ nothingorg.gnome.settings-daemon.plugins.power idle-dim→ falseorg.gnome.desktop.screensaver ubuntu-lock-on-suspend→ false (Ubuntu-spetsiifiline)
macOS — pmset (vajab sudo, küsib parooli) + defaults (ei vaja):
pmset -a displaysleep→ 0 (ekraan ei lülitu välja)pmset -a sleep→ 0 (süsteem ei lähe sleep-i)pmset -a disksleep→ 0 (ketas ei lähe spin-down-i)com.apple.screensaver idleTime→ 0 (ekraanisäästja off)com.apple.screensaver askForPassword→ 0
Ajutiseks ärkvel-hoidmiseks macOS-il (ilma sudo-ta, taustaprotsessiga):
caffeinate -dimsuKeep awake — Windows 10/11 (ekraan + sleep + ketta spin-down välja)
Windowsi test-masinad/VM-id, mis peavad olema pikka aega aktiivsed
ilma kasutaja sekkumiseta. Skript sätib powercfg-iga 0 = mitte kunagi
nii ekraanile, süsteemile, kettale kui auto-hibernate'ile.
curl -O https://raw.githubusercontent.com/marge-lab/test-setup-scripts/main/keep-awake.cmd
.\keep-awake.cmdTopeltkliki .cmd-l võib otse — pärast jooksmist kuvatakse kontroll-tabel
ja pause ootab Enter-it.
Seadistab (powercfg /change):
monitor-timeout-ac/-dc→ 0 (ekraan ei lülitu välja)standby-timeout-ac/-dc→ 0 (süsteem ei lähe sleep-i)disk-timeout-ac/-dc→ 0 (ketas ei lähe spin-down-i)hibernate-timeout-ac/-dc→ 0 (auto-hibernate ei aktiveeru)
JA registry (HKCU, ei vaja admin-õigusi):
Control Panel\Desktop\ScreenSaveActive→ 0Control Panel\Desktop\ScreenSaverIsSecure→ 0Control Panel\Desktop\ScreenSaveTimeOut→ 0
Märkused:
- Hiberneerimise täielikuks välja-lülitamiseks (kustutab
hiberfil.sys, vabastab ketast) avacmd "Run as administrator"ja käivita käsitsi:powercfg /hibernate off - Vaikeseadete taastamiseks:
Settings → System → Power & battery → Screen and sleep
PuTTY SSH-võtmega ühendus — Windows
Kuidas panna SSH privaatvõti PuTTY-sse, salvestada sessioon ja ühenduda
serverisse ilma parooli iga kord sisestamata. Täielik samm-sammuline juhend:
putty-ssh-voti.md.
Lühikokkuvõte:
- Teisenda võti — PuTTY ei kasuta OpenSSH-võtit (
BEGIN OPENSSH PRIVATE KEY) otse. PuTTYgen →Conversions → Import key→Save private key(.ppk). - Pane võti sessiooni —
Connection → SSH → Auth → Credentials→ "Private key file for authentication" → vali.ppk. - Kasutajanimi —
Connection → Data→ "Auto-login username". - Salvesta sessioon —
Sessionlehel host + port 22 → "Saved Sessions" nimi →Save. - Ilma parooli iga kord — käivita Pageant,
Add Key→.ppk→ parool üks kord. Auto-start:Win+R→shell:startup→ otseteepageant.exe "...\minu-voti.ppk".