Daily lunches from canteens and bistros in Leipzig (mainly in Plagwitz and Lindenau) are automatically recorded and clearly displayed.
It's recommended to use nvm (Node version Manager).
node 24.16.0or higher in combination withnpm 11.13.0or higher orpnpm 11.24.0or higher, used in this repository
Install pnpm by running:
npm install -g pnpm@11.24.0This repo uses pnpm as package manager.
You can also use npm for your local work but changes will be made by pnpm only.
@angular/cli 22.1.6or higher
Install @angular/cli by running:
pnpm install -g @angular/cli@22jdk 25or higher
docker 28.3.2or higher
git clone https://github.com/inpercima/mittagstisch/
cd mittagstischSome tools are both used by backend and frontend. Run the following command to install:
pnpm installFor development, you need a running MySQL instance. Start one via Docker (see Docker Guide) or use an external database.
Database schema and seed data are managed by Flyway and applied automatically on application
startup (see backend/src/main/resources/db/migration/).
pnpm startThis command will start both backend and frontend concurrently.
Use two separate terminals for more control and better log visibility:
Terminal 1 - Backend:
cd backend
./mvnwTerminal 2 - Frontend:
cd frontend
pnpm startFor detailed development setup and configuration options, check:
- Frontend: http://localhost:4200/
- Backend API: http://localhost:8080/
- phpMyAdmin: http://localhost:81 (or configured
PHPMYADMIN_PORTin.env)
- Docker and Docker Compose installed on the server
- nginx configuration files (see
docker/nginx/) - SSL certificates for HTTPS
-
Prepare frontend environment:
Check for the existence of
environment.prod.tsas described in Frontend Guide. -
Build the backend (includes frontend):
cd backend ./mvnw clean package -PprodThe prod profile automatically builds the frontend via pnpm and bundles it into the JAR. This creates
mittagstisch-<VERSION>.jarin thetarget/directory.
-
Prepare configuration files:
Copy the following files to your server:
.env(Docker environment configuration)docker-compose.ymlanddocker-compose.prod.ymlmittagstisch-<VERSION>.jar(from backend/target)application-prod.yml(Spring Boot production configuration)
-
Configure for your environment:
- Modify
.envwith your production settings - Update
application-prod.ymlwith production database credentials and API keys - Configure nginx with your domain and SSL certificates, for this create the folder
nginx/indocker/and add anginx.conffile
- Modify
-
Deploy and run:
docker compose --project-name mittagstisch -f docker-compose.yml -f docker-compose.prod.yml up -d --build
This starts MySQL, the Spring Boot webapp (with embedded frontend), and nginx as reverse proxy.
Database migrations are applied automatically by Flyway on startup.
For detailed production deployment instructions, see Docker Guide.