cevi / qualifikation

Erstelle und Verwalte J+S-Kurs-Qualifikationen online
https://quali.cevi.tools/
MIT License
5 stars 0 forks source link

Qualifikations-Tool für J+S-Kurse

Das Qualifikations-Tool bietet viele Funktionen, welche deinen Qualifikations-Prozess bei einem J+S-Kurs vereinfachen:

Lokale Installation

Das Tool ist ein PHP-Projekt basiernd auf dem Framework Laravel. Um es lokal auszuführen brauchst du einen Docker Container.

Um das Tool lokal bei dir benutzen zu können musst du den Quellcode herunterladen und mittels Laravel Sail starten:

# clone the GitRepo
git clone https://github.com/cevi/qualifikation
cd qualifikation

# install the dependencies
docker run --rm \
  -u "$(id -u):$(id -g)" \
  -v $(pwd):/var/www/html \
  -w /var/www/html \
  laravelsail/php81-composer:latest \
  composer install --ignore-platform-reqs

cp .env.example .env

# launch the application
./vendor/bin/sail up

# initialize the database (in another terminal)
./vendor/bin/sail artisan migrate --seed

Anschliessend kannst du dein Tool unter http://localhost aufrufen.

Run in Production

To run the app in production-mode, use the following command (this also works on your local machine):

docker compose -f docker-compose.prod.yml up --build [-d]

The CI/CD pipeline will automatically deploy the app to the production server upon a push to the master branch. See .github/workflows/prod_build.yml for more information.

Caveats for Production Environment

The dev and production environment differs quite a bit. In production, we split the web server into two containers: a php-fpm container a nginx webserver

Thus, we have to share the files stored within /storage/app/public with the nginx server to make them publically accessible. This is done via shared docker volume.

Persistent Storage

In a Docker setup all memory is volatile by default, i.e. all stored data is lost during a redeployment (e.g. deployment of a new version). We can mount specific folders as volumes to prevent such data losses. Currently we save:

all other data is volatile.

License

The Laravel framework is open-sourced software licensed under the MIT license.