Skip to main content

Uruchomienie aplikacji SOW

Konfiguracja hostów

  1. Edytuj plik C:\Windows\System32\drivers\etc\hosts
    127.0.0.1    vuerenderer.local

Przygotowanie struktury katalogów

  1. Utwórz następujące foldery:

    C:\apps\korpussolidarnosci.sow
    C:\apps\korpussolidarnosci.api
    C:\apps\korpussolidarnosci.cms
  2. Utwórz foldery na osobnym dysku lub udziale sieciowym:

    # Przykład dla lokalnego dysku:
    C:\Logs\sow_api
    C:\Logs\sow_cms
  3. 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

  1. Kliknij Start
  2. Uruchom Menadżer internetowych usług (Internet Information Services)

Sow (api.korpussolidarnosci.gov.pl)

  1. 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
      • 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
      • 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
    • 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

  1. Rozpakuj zawartość api z archiwum do folderu C:\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)

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 samo korpussolidarnosci.api)
    • Kliknij OK
    • Upewnij się, że jest zaznaczone Zezwalaj z checkbox Pełna kontrola
    • Kliknij OK (do zamknięcia okna)

    Ustawienia uprawnień - api

    Identycznie powtarzamy czynność dla CMS

    Ustawienia uprawnień - cms

3. Konfiguracja pliku appsettings.json

  1. Otwórz plik apps\korpussolidarnosci.api\appsettings.Production.json
  2. 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

  1. Rozpakuj zawartość folderu z archiwum front do folderu C:\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:

  • 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

  1. Pobierz plik vuerenderer.zip z najnowszą wersją aplikacji vuerenderer
  2. 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