Użycie aplikacji¶
Dostępna i aktywnie wspierana jest metoda uruchomienia aplikacji oparta o Docker.
Praca w środowisku Docker¶
Obraz przygotowany dla środowiska Docker właściwy jest wyłącznie do pracy w środowisku deweloperskim.
Uruchomienie:
$ docker-compose build
$ docker-compose up
Po poprawnym uruchomieniu usług można przejść w przeglądarce pod adres http://localhost:8000.
Warto na początku pracy utworzyć konto administratora poprzez polecenie:
$ docker-compose run web python manage.py createsuperuser
Wskazane jest także zaimportowanie danych z rejestru TERC poprzez polecenie:
$ docker-compose run web bash ./.contrib/load_terc.sh
Praca z VSCode (debugowanie)¶
Dla deweloperów korzystających z VSCode dostępny jest plik nadpisujący konfigurację Docker
(docker-compose.vscode.yml), który pozwala uruchomić serwer Django z poziomu edytora
w trybie debugowania.
W tym trybie kontener web uruchamia się, wykonuje migracje, a następnie oczekuje na
ręczne uruchomienie serwera przez VSCode — zamiast startować runserver automatycznie.
Opcja 1 — flaga ``-f`` (jednorazowo w danym wywołaniu):
$ docker-compose -f docker-compose.yml -f docker-compose.vscode.yml up
Opcja 2 — zmienna środowiskowa ``COMPOSE_FILE`` w bieżącej sesji powłoki:
$ export COMPOSE_FILE=docker-compose.yml:docker-compose.vscode.yml
$ docker-compose up
Opcja 3 — trwale przez plik ``.env`` (zalecane dla codziennej pracy):
Dodaj zmienną do pliku .env w katalogu projektu:
$ echo "COMPOSE_FILE=docker-compose.yml:docker-compose.vscode.yml" >> .env
Następnie wystarczy standardowe polecenie:
$ docker-compose up
Informacja
Plik .env jest ignorowany przez Git, więc ustawienie to jest lokalne
i nie wpływa na innych deweloperów.
Po uruchomieniu kontenerów użyj konfiguracji uruchamiania VSCode (launch.json),
aby wystartować i debugować serwer Django wewnątrz kontenera.
Pominięcie zabezpieczeń w środowisku deweloperskim¶
Niektóre mechanizmy bezpieczeństwa można wyłączyć lokalnie, aby przyspieszyć pracę deweloperską.
Służą do tego zmienne środowiskowe w pliku .env.
Wyłączenie CAPTCHA (Turnstile) w formularzu zgłoszenia:
Zmienna TURNSTILE_ENABLE=False powoduje, że pole CAPTCHA jest usuwane z formularza
NewCaseForm, co umożliwia testowanie bez konfigurowania kluczy Turnstile:
TURNSTILE_ENABLE=False
Wyłączenie wymuszania MFA dla pracowników:
Zmienna MFA_ENFORCE_ENABLED=False wyłącza middleware
EnforceStaffMfaOnPasswordLoginMiddleware, dzięki czemu konta pracowników (w tym
superużytkownik) mogą logować się hasłem bez konfigurowania TOTP:
MFA_ENFORCE_ENABLED=False
Obie zmienne można dodać do pliku .env w katalogu projektu:
$ echo "TURNSTILE_ENABLE=False" >> .env
$ echo "MFA_ENFORCE_ENABLED=False" >> .env
Ostrzeżenie
Tych ustawień nie należy używać w środowisku produkcyjnym.
Obrazy Docker w GitHub Container Registry¶
Obrazy Docker aplikacji są dostępne w GitHub Container Registry (GHCR).
Są one automatycznie budowane i publikowane po scaleniu zmian do gałęzi master.
Obraz deweloperski:
docker pull ghcr.io/watchdogpolska/poradnia/web/dev:latest
docker pull ghcr.io/watchdogpolska/poradnia/web/dev:<commit_sha>
Obraz produkcyjny:
docker pull ghcr.io/watchdogpolska/poradnia/web/production:latest
docker pull ghcr.io/watchdogpolska/poradnia/web/production:<commit_sha>
Tag latest wskazuje na najnowszą wersję, natomiast tag z hashem commitu
(np. a1b2c3d4e5f6...) umożliwia pobranie konkretnej wersji.
Wdrożenie¶
Wdrożenie aplikacji odbywa się w sposób typowy dla aplikacji Django z uwzględnieniem standardu 12factory.