Server¶
In jullie project moeten jullie gaan werken met een relationele database. Om vervolgens data vanuit je embedded systeem in je database te krijgen heb je hoogstwaarschijnlijk ook een web-API nodig.
Een mogelijke structuur hiervoor zou kunnen zijn:
graph
subgraph System Architecture
ED[Embedded Systeem]
ED <--?--> Client[Web browser]
Client <--HTTP-->Server
Server[Web-API]
Server <--MySQL--> DB
DB[Database]
end
Je database, en waarschijnlijk je website, moeten ergens aangeboden worden als een service zodat je hierbij kan vanaf je embedded systeem; dit is vaak bij een dienstverlener in de cloud, maar voor dit project kan je dit ook op je eigen computer draaien. Om dat te kunnen doen heb je een server nodig, dat is precies waar we jouw eigen laptop voor gaan gebruiken.
Services¶
Binnen dit project kan je gebruik maken van verschillende services, wij bieden er graag een aantal aan die je een kickstart kunnen geven. Hieronder een overzicht van de services die je kan gebruiken:
| Service | Toepassing |
|---|---|
| MariaDB | MariaDB is een stuk software wat als dienst kan voorzien in een relationele database. Het draait dus als een service, ook wel een server, waar je vervolgens zelf de database op kan inrichten. Met MariaDB kan je gebruik maken van MySQL om je database te bekijken, te bewerken en te beheren. |
| Python Flask | Python Flask is een framework in Python die je helpt om een web-API te maken. Dit is een API die je kan gebruiken om data vanuit je embedded systeem in je database kan zetten. |
| PhpMyAdmin | PhpMyAdmin is een webapplicatie die je kan gebruiken om je MariaDB database te beheren. Met PhpMyAdmin kan je tabellen aanmaken, data invoeren, data bekijken en data verwijderen. |
| Nginx | Nginx (spreek uit: “Engine X”) is een webserver applciatie en stelt Python Flask in staat om HTML pagina’s te genereren en door te sturen naar een webbrowser |
Om deze services te kunnen gebruiken moet je ze eerst installeren en vervolgens configureren, om dit makkelijker te maken hebben wij dit voor jou voorbereid door gebruik te maken van Docker.
Docker¶
In het project zit een configuratie waarmee je relatief makkelijk gebruik kan maken van de services die we hierboven hebben genoemd. Dit doen we door gebruik te maken van Docker, een container platform waarmee je makkelijk services kan draaien zonder dat je deze op je eigen computer hoeft te installeren en configureren.
Om het te kunnen gebruiken hoef je nog niet alles te weten over Docker, maar het is wel handig om uiteindelijk te begrijpen wat het doet en hoe het werkt.
Voorbereiding¶
Om gebruik te kunnen maken van de Docker containers (zo noemen we de services die we draaien met Docker) is het belangrijk om eerst de juiste voorbereidingen te treffen.
- Zorg ervoor dat je Docker Desktop hebt geรฏnstalleerd op je computer. Dit kan je downloaden vanaf de Docker website.
- De installatie van Docker Desktop neemt je mee in het installeren van Docker zelf.
- In het bestand
.envkan je instellingen wijzigen om de services te configureren. Dit bestand staat in de root van je project.- In dit bestand kan je de poorten aanpassen waarop de services draaien en een wachtwoord instellen voor je database toegang.
- Het advies is om het bestand
.envniet te wijzigen, voor nu is het niet nodig.
- Zorg ervoor dat er geen andere services zijn die gebruik maken van de poorten die je in de
.envhebt ingesteld. Mocht dat wel zo zijn dan moet je de andere services stoppen.
Services starten¶
In het project staat in het docker-compose.yml bestand hoe de services gebouwd moeten worden. Op de Docker pagina kan je vinden hoe je deze omgeving opstart.
Let op: poorten
MariaDB en Nginx zijn beiden via het netwerk te bereiken. Nginx via een browser en MariaDB met MySQLWorkBench. Hiertoe moeten deze applicaties beschikking hebben over de poorten (zie knowledgebase: poorten) 80 (voor Nginx) en 3306 (voor MariaDB). Het kan zijn dat je al een applicatie draaien hebt die van deze poorten gebruik maken. Spoor in dat geval deze applicatie op en sluit ze af of zorg dat ze van een andere poort gebruik maken.
Services gebruiken¶
De services hebben allemaal verschillende manieren om deze te benaderen, hieronder staat per service uitgelegd hoe dit werkt.
| Toepassing | Gebruiken |
|---|---|
| Webserver | Om te zien of je webserver correct is opgestart moet je in je webbrowser naar het adres: http://localhost/ gaan. |
| Database | MariaDB heeft uit zichzelf geen grafische interface om je databases te zien, daarvoor heb je de tool Phpmyadmin mee-geleverd gekregen. Deze kan je benaderen door in je webbrowser naar het adres: http://localhost/phpmyadmin te gaan. Om in te loggen gebruik je de volgende gegevens: gebruikersnaam: root wachtwoord: [wachtwoord uit .env bestand] |