Skip to content

xnmrphr/backend

 
 

Repository files navigation

ProteGO - serwer

Instalacja na serwerze

Informacje wstępne

Korzystamy z Google Cloud Platform (GCP) udostępnionego przez Operatora Chmury Krajowej.

Stworzenie i konfiguracja nowego projektu na Google Cloud Platform

Stworzenie nowego projektu GCP składa się z następnujących kroków:

  1. Stworzenie projektu na platformie Google Cloud

  2. Na stronie projektu console.cloud.google.com należy wykonać następujące ustawienia:

    • Billing - podpiąć płatność na stronie Billing
    • Datastore - ustawić Datastore Mode na stronie Datastore i wybrać eur3 (Europe) jako database location

Instalacja narzędzi

Instalacja oprogramowania serwera wymaga narzędzi Terraform oraz gcloud. Przed przystąpieniem do instalacji należy wykonać następujące kroki:

  1. Zainstalować narzędzie gcloud zgodnie z instrukcją na cloud.google.com/sdk/install

  2. Zainstalować narzędzie terraform zgodnie z instrukcją na learn.hashicorp.com/terraform/getting-started/install

Dodatkowo możesz lokalnie zainstalować pre-commit przez pip install pre-commit && pre-commit install. Pomoże on upewnić się o poprawności składniowej, formatowaniu kodu i tym podobnych przed zachowaniem zmian w repozytorium.

Instalacja ProteGO na serwerze

  1. Używając narzędzia gcloud Należy zalogować się do GCP przy użyciu strony logowana lub Service Account z odpowiednimi uprawnieniami:

    # strona logowania
    gcloud auth application-default login
    
    # service account
    gcloud auth activate-service-account --key-file=<credentials.json>
  2. Ustawienie odpowiedniego projektu jako aktywnego:

    gcloud config set project <project_id>
    • Pomocnicze komendy
      # wylistowanie wszystkich projektów
      gcloud projects list
      
      # wyświetlenie aktywnego projektu
      gcloud config list project
  3. Pobranie źródeł ProteGO:

git clone git@github.com:ProteGO-app/backend.git

  1. Ustawienie zmiennych środowiskowych.

    • STAGE - DEVELOPMENT lub PRODUCTION to jedyne dopuszczalne wartości. Zmienna ta mówi czy jest do środowisko produkcyjne (wysyłanie SMSów jest aktywne) czy deweloperskie.
    • SMS_API_TOKEN - Token do bramki SMS. Zmienna ta jest wymagana zawsze wymagana (dla środowiska deweloperskiego wartość ta nie musi być poprawna).
    export STAGE=DEVELOPMENT
    export SMS_API_TOKEN=1234
  2. Uruchomienie skryptu tworzącego środowisko:

    bash scripts/create.sh

    Na Google Cloud Store będzie dodaktowo stworzony (jeśli nie istnieje) bucket do przechowywania konfiguracji narzędzia terraform. Nazwa bucketu skłąda się z ID projektu i końcówki "-tfstate" ("PROJECT_ID-tfstate"). Przechowywanie konfiguracji w bucket jest wygodne ze względu na możliwość bezkonfliktowego używania narzędzia przez większą ilość osób.

Wyczyszczenie środowiska (uwaga: niebezpieczne)

Aby wyczyścić środowisko należy wyskonać następącujące komendy:

  • Usunięcie zasobów zarządzanych przez terraform:
bash scripts/teardown.sh
  • Opcjonalnie możesz usunąć bucket zawierający konfigurację terraform
bash scripts/teardown_tfstate_bucket.sh

System tests:

In order to run test you need to set environment variables:

STAGE - DEVELOPMENT or PRODUCTION

SEND_SMS_NUMBER - 9 digits.

GOOGLE_APPLICATION_CREDENTIALS - path to account credentials file

Install requirements from tests/requirements.txt

Run:

gcloud auth login
gcloud config set project <project id>
python -m  unittest

About

Backend do uruchomienia na GCP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 53.7%
  • HCL 28.9%
  • Shell 17.4%