Skip to content

N0081K/da-test-webapp

 
 

Repository files navigation

Czechitas DA Testing App

Aplikace využívá PHP framework Laravel, Bootstrap 4, Webpack 5.

Dokumentace:

  • Systém a jeho komponenty jsou popsány ve Wiki

Prerekvizity:

Instalace

  1. Naklonování repozitáře
  2. Instalace PHP závislostí - composer install
    • V produkčním prostředí spouštět composer install --optimize-autoloader --prefer-dist --no-dev --no-ansi --no-interaction
  3. Vytvoření souboru .env a vložení obsahu z .env.example
    1. Vyplnit přístupové údaje do DB
    2. APP_KEY je možné přegenerovat spuštění php artisan key:generate - spouštět pouze při první instalaci
  4. Vytvoření DB schématu pomocí php artisan migrate
    1. Vložení 2 uživatelských účtu (role master a admin) do DB pomocí php artisan db:seed
  5. Instalace NodeJS závislostí a build assetů - npm install a npm run build

Konfigurace pomocí .env

  • APP_KEY - Secret key - slouží k šifrování cookies a session - při změně budou všichni uživatelé odhlášení
    • Lze přegenerovat pomocí php artisan key:generate
  • APP_URL - URL adresa, na které systém běží. Používá se při generování obsahu emailů
  • APP_FORCE_URL - Pokud je true je nutné zadat i APP_URL. Pokud návštěvník přijde na jinou URL, je přesměrován.
    • Příklad: APP_URL=http://www.czechitas.cz uživatel přijde na http://czechitas.cz -> je přesměrován na adresu s www
    • Neřeší HTTP/HTTPS
  • HTTPS_ENABLE - pokud je HTTPS povoleno, je automaticky každý request na HTTP přesměrován na HTTPS s kódem 301
  • DB_* - přístupové údaje k DB

Deployment

Deploy do služby Heroku a pak už jen profitovat z výsledku 🎉🎉

Jedna aplikace

  1. Vytvořit fork pro Váš běh digitální akademie
  2. Vytvořit účet na herokuapp.com
  3. Vytvořit si účet na AWS - je potřeba S3 Bucket nastavit.
  4. Vytvořit novou aplikaci na heroku
  5. Deployment method - Nastavit GitHub, Váš nový fork
  6. Enable Automatic deploys, pokud chcete, aby se Vám aplikace automaticky updatovala s novými commity
  7. Nainstalovat ClearDB MySQL addon - https://dashboard.heroku.com/apps//resources
    1. Ignite, free verze stačí.
  8. Go to Settings
    1. env CLEARDB_DATABASE_URL by měla být nastavená.
    2. Nastav Buildpacks. Musí být v tomto pořadí
      1. heroku/nodejs
      2. heroku/php
    3. Naconfiguruj VARS
      • APP_KEY ^^ viz .env
      • AWS_ACCESS_KEY_ID - access key k S3
      • AWS_BUCKET - jmeno AWS bucketu
      • AWS_DEFAULT_REGION - region, kde je umisten S3 bucket
      • AWS_SECRET_ACCESS_KEY - secret key
      • AWS_URL - url s3 bucketu
      • DB_DATABASE - použij db name z CLEARDB_DATABASE_URL
      • DB_HOST - použij host z CLEARDB_DATABASE_URL
      • DB_PASSWORD - použij pass z CLEARDB_DATABASE_URL
      • DB_PORT - 3306
      • DB_USERNAME - použij username z CLEARDB_DATABASE_URL
      • FILESYSTEM_DRIVER - s3

V tomto bodu jste ready-to-deploy. V záložce Deploy stačí v sekci Manual deploy stisknout tlačítko a tradá.

Více aplikací

Pokud máte více týmů a chcete více aplikací pro každý tým, tak je potřeba applikace dát do tzn. pipeliny. Pokud chceš deployvat různé verze, tak pro každý tým musíš vytvořit samostatnou branch. Pokud Ti to je jedno, stačí Ti master branch.

  1. V záložce Deploy je - Connect to Pipeline
  2. Vytvoř novou pipeline - vyber třeba Staging.
  3. Poté je Tvá applikace vidět ve sloupečku STAGING.
  4. Tvá aplikace je aktivní a ve sloupci STAGING lze přidat novou aplikaci.
  5. Pro ni opět nastav stejné VARS a addons (Cleardb) jak v krocích pro deploy jedné aplikace.
    • Přidej další VAR - OVERRIDE_APP_NAME a pojmenuj ji např. po názvu týmu. Jde o prefix do DB, pokud sdílí všechny aplikace stejnou DB, ať si appky "nešahají na vzájemně na data"
  6. Vyber si, z jaké branche by se měla deployvat.
  7. Opakuj tyto kroky pro každý tým co máš.
  8. Optional - můžeš nastavit Review apps
    1. Review app se automaticky vytvoří pro Pull request do jakékoliv branche.
    2. Pokud chceš tuto funkcionalitu využít, je potřeba ji zapnout a nastavit v Settings pipeline VARS.
    3. Hodí se, pokud chcete učit nějaké flow, kdy QA může otestovat aplikaci ještě před mergem do hlavní branche.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 61.0%
  • Blade 38.7%
  • Other 0.3%