Labosch Qpa Web is a microservice based simple architecture to serve web sites of 49th Qpa. This repository contains repositories of services in the architecture and is also used as the parent folder in local development.
The contained repositories are:
- Server (main webservice): https://github.com/janosgats/laboschqpa.server
- FileHost (authed file up&download): https://github.com/janosgats/laboschqpa.filehost
- ImageConverter (image transcoding job processor): https://github.com/janosgats/laboschqpa.imageconverter
- Client (React + NextJS frontend): https://github.com/janosgats/laboschqpa.client
- K8s (Kubernetes config files): https://github.com/janosgats/laboschqpa.k8s
CI/CD images on Docker Hub:
-
Server: https://hub.docker.com/repository/docker/gjani/laboschqpa-server/tags
-
FileHost: https://hub.docker.com/repository/docker/gjani/laboschqpa-filehost/tags
-
ImageConverter: https://hub.docker.com/repository/docker/gjani/laboschqpa-imageconverter/tags
-
Client: https://hub.docker.com/repository/docker/gjani/laboschqpa-client/tags
- Clone this repo
- Run
clone-downstream-repos.ps1
to clone the above repositories - Place the development secrets under
laboschqpa.k8s/setting_up_dev_env/<service_name>/secret/
- !OPTIONAL! Do this Only if you want to use the HostPath PersistentVolume as storage for FileHost: Open the
laboschqpa.k8s/setting_up_dev_env/nfs-server/nfs-server-pvc.yaml
and thelaboschqpa.k8s/setting_up_dev_env/pv/pv-volume-nfs-server.yaml
files and follow the instructions in them! - Open
skaffold.yaml
and comment out the artifacts which you want to be pulled from DockerHub instead of be built locally on your computer! - Have kubectl installed
- Have a (local) k8s cluster running and kubectl configured to use that cluster
- Have Skaffold installed
- Run
start-dev-env.ps1
to start your environment and see the logs streamed from the services - Skaffold will watch for filesystem changes and updates your cluster when something is changing.
- Java services: You have to
gradle bootJar
build the code when you want an update since Dockerfiles are using the produced .jar file in local dev. - JS services: The cluster update triggers on changes in almost every file.
- Java services: You have to
Open remote-debug ports for local development:
- Server: 30005 (Java - JDK 9+)
- FileHost: 30006 (Java - JDK 9+)
- ImageConverter: 30007 (Java - JDK 9+)
- Client: 30229 (NodeJS - inspect)
- Service hosting: GKE (Google Kubernetes Engine on GCP)
- SMTP: KSZK
- FileHost S3:
- Provider: ScaleWay
- bucket
- dev: "laboschqpa-dev"
- production: "laboschqpa"
- CI/CD: Jenkins