Uruchomienie aplikacji SOW
Konfiguracja hostów
- Edytuj plik
C:\Windows\System32\drivers\etc\hosts127.0.0.1 vuerenderer.local
Przygotowanie struktury katalogów
-
Utwórz następujące foldery:
C:\apps\korpussolidarnosci.sow
C:\apps\korpussolidarnosci.api
C:\apps\korpussolidarnosci.cms -
Utwórz foldery na osobnym dysku lub udziale sieciowym:
# Przykład dla lokalnego dysku:
C:\Logs\sow_api
C:\Logs\sow_cms -
Możesz użyć następujących komend PowerShell do automatycznego utworzenia folderów:
# Tworzenie folderów w apps
New-Item -Path "C:\apps\korpussolidarnosci.sow" -ItemType Directory
New-Item -Path "C:\apps\korpussolidarnosci.api" -ItemType Directory
New-Item -Path "C:\apps\korpussolidarnosci.cms" -ItemType Directory
New-Item -Path "C:\inetpub\wwwroot\vuerenderer" -ItemType Directory
Konfiguracja serwera WWW (IIS)
Uruchomienie zarządzania IIS
- Kliknij
Start - Uruchom
Menadżer internetowych usług (Internet Information Services)
Sow (api.korpussolidarnosci.gov.pl)
-
W Menedżerze IIS:
-
Kliknij prawym przyciskiem myszy na
Witryny -
Wybierz
Dodaj witrynę sieci Web -
Ustaw parametry:
- Api:
- Nazwa witryny:
korpussolidarnosci.api - Ścieżka fizyczna:
C:\apps\korpussolidarnosci.api - Port:
80 - Nazwa hosta:
api.korpussolidarnosci.gov.pl - Pula aplikacji: zostanie utworzone automatycznie z taką samą nazwą jak aplikacja
- Nazwa witryny:
- Front:
- Nazwa witryny:
korpussolidarnosci.sow - Ścieżka fizyczna:
C:\apps\korpussolidarnosci.sow - Port:
80 - Nazwa hosta:
sow.korpussolidarnosci.gov.pl - Pula aplikacji: zostanie utworzone automatycznie z taką samą nazwą jak aplikacja
- Nazwa witryny:
- Cms:
- Nazwa witryny:
korpussolidarnosci.cms - Ścieżka fizyczna:
C:\apps\korpussolidarnosci.cms - Port:
80 - Nazwa hosta:
korpussolidarnosci.gov.pl - Pula aplikacji: zostanie utworzone automatycznie z taką samą nazwą jak aplikacja
- Nazwa witryny:
- Api:
-
VueRenderer:
-
Nazwa witryny:
vuerenderer -
Ścieżka fizyczna:
C:\inetpub\wwwroot\vuerenderer -
Port:
80 -
Nazwa hosta:
vuerenderer.local
-
Wdrażanie aplikacji
1. Wdrożenie plików aplikacji
- Rozpakuj zawartość
apiz archiwum do folderuC:\apps\korpussolidarnosci.api- Upewnij się, że struktura katalogów wygląda następująco:
apps\korpussolidarnosci.api\
├── appsettings.json
├── web.config
├── Sow.Api
├── Sow.Dto
└── ... (pozostałe pliki aplikacji)
- Upewnij się, że struktura katalogów wygląda następująco:
2. Nadawanie uprawnień do folderów
-
W eksploratorze plików:
- Kliknij prawym przyciskiem myszy na folderze
C:\Logs\sow_api - Wybierz
Właściwości - Kliknij
Zabezpieczenia - Kliknij
Edytuj - Kliknij
Dodaj - Wprowadź nazwę użytkownika
IIS APPPOOL\korpussolidarnosci.api(lub wskazaną przez administratora systemu) - Kliknij
Sprawdź nazwy(nazwa powinna zostać zamieniona na samokorpussolidarnosci.api) - Kliknij
OK - Upewnij się, że jest zaznaczone
Zezwalajz checkboxPełna kontrola - Kliknij
OK(do zamknięcia okna)

Identycznie powtarzamy czynność dla CMS

- Kliknij prawym przyciskiem myszy na folderze
3. Konfiguracja pliku appsettings.json
- Otwórz plik
apps\korpussolidarnosci.api\appsettings.Production.json - Zaktualizuj ustawienia zgodnie z poniższym przykładem:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AppSettings": {
"SecretKey": "EXAMPLE_SECRET_KEY",
"Mailer": {
"Server": "[SMTP_SERVER]",
"Port": 587,
"User": "[USER]",
"DefaultFrom": "\"System Obsługi Wolontariatu\" <powiadomienia@korpussolidarnosci.gov.pl>",
"Pretitle": "",
"Password": "[PASSWORD]",
"UseSsl": false
},
"MailerDebug": true,
"MaxLoginAttempts": 5,
"Files": {
"Path": "sow_files",
"ExpirationHours": 1,
"MaxSize": 10485760,
"AvatarEditable": false
},
"Age": {
"MinimumVolunteerAge": 13,
"AdultAge": 18,
"MaximumAgeForLowerInvolvement": 15,
"MinimumAgeForLowerInvolvement": 65
},
"Integration": {
"EnabledIPs": ["127.0.0.1", "::1"]
},
"Certificate": {
"ExpireMonths": 24,
"IsExpiringMonths": 3,
"AssessmentDays": 30,
"AssessmentReminderDays": 7,
"ZipMediaExpirationHours": 72
},
"TwoFactor": {
"CodeExpirationMinutes": 10,
"ResendIntervalMinutes": 1,
"MaxInvalidAttempts": 3,
"TrustedDeviceExpirationDays": 14
},
"ApiUrl": "https://api.korpussolidarnosci.gov.pl",
"CmsUrl": "https://korpussolidarnosci.gov.pl",
"FrontAppUrl": "https://sow.korpussolidarnosci.gov.pl",
"MinimumFrontAppVersion": "1.*.*",
"TerytApiUrl": "[nie wiem co tutaj]",
"PdfApiUrl": "[nie wiem co tutaj]",
"PngApiUrl": "[nie wiem co tutaj]",
"VueRenderer": {
"Version": "latest",
"Url": "http://vuerenderer.local"
},
"TokenExpirationHours": 24,
"SentryDsn": "",
"StrongPasswordRegex": "(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])(?=.{8,})",
"DisableHttps": false,
"Cron": {
"WaitingHourLogCron": "0 0 7 ? * MON",
"UpdateExpiringCertificatesCron": "0 0 1 * * ?",
"CertificateAssessmentReminderCron": "0 0 3 * * ?",
"ClearExpiredTwoFactorSecureCodesCron": "0 0 * * * ?",
"CleanupExpiredZipMediaCron": "0 0 * * * ?"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"Default": "Server=[servername];Database=[dbname];User=[username];Password=[password];"
}
}
Wdrażanie aplikacji Frontend (Vue.js)
1. Wdrożenie plików aplikacji
- Rozpakuj zawartość folderu z archiwum
frontdo folderuC:\apps\korpussolidarnosci.sow- Upewnij się, że struktura katalogów wygląda następująco:
C:\apps\korpussolidarnosci.sow\
├── index.html
├── web.config
├── favicon.ico
├── css/
├── js/
└── assets/
- Upewnij się, że struktura katalogów wygląda następująco:
Upewnij się, że:
- index.html nie będzie przechowywany w cache przeglądarek
- wszystkie żądania do plików statycznych będą kierowane do index.html
Przykładowy plik web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="index.html">
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Cache-Control" value="no-store, max-age=0" />
</customHeaders>
</httpProtocol>
</system.webServer>
</location>
<system.webServer>
<rewrite>
<rules>
<rule name="Allow LetsEncrypt" patternSyntax="Wildcard" stopProcessing="true">
<match url=".well-known/*" />
<action type="None" />
</rule>
<rule name="Redirect HTTP to HTTPS" patternSyntax="Wildcard" stopProcessing="true" enabled="true">
<match url="*" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
<rule name="All request to index.html" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.html" />
</rule>
</rules>
</rewrite>
<staticContent>
<remove fileExtension=".css" />
<mimeMap fileExtension=".css" mimeType="text/css; charset=UTF-8" />
</staticContent>
</system.webServer>
</configuration>
Wdrażanie aplikacji vuerenderer
VueRenderer to biblioteka JavaScript wykorzystywana przez API do generowania stron w formie HTML.
2. Konfiguracja dostępu
VueRenderer powinien być dostępny tylko dla API i nie powinien być dostępny bezpośrednio z przeglądarki. Zalecane jest użycie dedykowanego hosta (np. vuerenderer.local), który jest konfigurowany w pliku hosts i dostępny tylko w lokalnym systemie.
1. Wdrożenie plików aplikacji
- Pobierz plik
vuerenderer.zipz najnowszą wersją aplikacji vuerenderer - Rozpakuj zawartość archiwum do folderu
C:\inetpub\wwwroot\vuerenderer- Upewnij się, że struktura katalogów wygląda następująco:
wwwroot\vuerenderer\
├── 1.10\
│ ├── vuerenderer.min.js
- Upewnij się, że struktura katalogów wygląda następująco: