- Kloonaa projektin github repositorio ja siirry sovelluksen kansioon
git clone https://github.com/ohtuprojekti-Kierratysavustin/Kierratysavustin.git
cd Kierratysavustin/
- Asenna serverin npm paketit
cd server/
npm install
cd ..
- Asenna clientin npm paketit
cd client/
npm install
cd ..
- Asenna end to end testit
cd e2e_tests/
npm install
cd ..
Projekti sisältää linux ja mac ympäristöissä toimivan skriptin docker asennukseen:
./docker-setup.sh
Skripti luo ja käynnistää paikallisen docker imagen ja sammuttaa ja poistaa sen lopuksi
Docker imagen voi luoda myös manuaalisesti projektin kansiossa komennolla
docker build --build-arg PUBLIC_URL=/kierratysavustin -t kierratysavustin-local .
Kierrätys-info-api vaatii toimiakseen api-avaimen. Paikallisessa asennuksessa avain tulee sijoittaa .env -tiedostoon server-kansiossa. Staging- ja tuotantopalvelimilta .env tiedoston sijainti on määritetty sovelluksen käynnistävässä docker-compose.yml -tiedostossa.
Sovelluksen paikallista käynnistämistä varten on hyvä avata kolme erillistä komentorivi-ikkunaa (tietokantaa, frontendiä ja backendiä varten).
Kehitysaikainen tietokanta (mongodb) käynnistetään server-kansiossa komennolla npm run start:mongo
(docker ja docker-compose tulee olla asennettuna. Komento tekee mongo kansiossa docker-compose up ja lopettaessa docker-compose down)
- HUOM: jos tietokanta ei käynnisty yllä olevalla komennolla, kokeile
sudo npm run start:mongo
ja anna salasana.
Backend käynnistetään server-kansiossa seuraavin komennoin:
npm start
kun devataan
npm run start:test
kun testataan (kannan tyhjentävä api-resurssi)
Tuotantoversio käynnistetään komennolla npm run start:prod
Frontend käynnistetään client-kansiossa komennolla npm start
Tämän jälkeen sovelluksen tulisi pyöriä selaimen osoitteessa http://localhost:3000/
Repon juuressa on myös screenrc tiedosto. Jos Screen on konfiguroitu käyttämään kyseistä tiedostoa, tapahtuu paikallinen käynnistäminen käynnistämällä terminaalissa screen komennolla screen
Stagingia imitoivan buildin saa ajettua juurikansiossa komennolla ./docker-setup.sh
(komento luo uuden docker imagen, käynnistää sen ja mongo tietokannan. Server käynnistetään antamalla sille baseUrl=/kierratysavustin, jolloin sovelluksen osoitteeseen lisätään /kierrätysavustin, kuten staging serverillä. Serverille annetaan myös NODE_ENV=production, jolloin serverin config.js tiedostossa tiedetään käyttää oikeaa tietokantaosoitetta.
Stagingiin ja tuotantoon julkaiseminen tapahtuu samalla tavalla. Github repositorioon on määritelty Github-actions tiedostot.
staging_pull_request.yml: Kun luodaan pull request Staging haaraan niin Github ajaa haaralle kaikki testit. Pull requestissa ilmoitetaan, jos testit eivät mene läpi
staging_push.yml: Kun staging haaraan pusketaan, ajetaan kaikki testit ja niiden mennessä läpi luodaan Docker-kontti, joka pusketaan Docker Hubiin. Staging serveri tarkkailee Docker Hubia ja vetää muutoksen huomatessaan sovelluksen uuden version pyörimään serverille.
main_push.yml: Kun main haaraan pusketaan. Samat temput kuin stagingissa, mutta julkaisu tuotannon serverille.