5.1 KiB
How to run the application
To run the application, follow these steps:
-
Build the Project:
- Ensure you have Java 24, Gradle, and Node.js installed.
- Run the following command to build the project:
./gradlew build
- Prepare Frontend Resources:
- Build the Angular frontend by navigating to the
jambotron-uidirectory and running
cd jambotron-ui- next:
npm install- next:
npm run build - Build the Angular frontend by navigating to the
- This will generate the frontend files in the
jambotron-ui/dist/jambotron-ui/browserdirectory.
-
Copy Frontend Resources:
- Use the Gradle task to copy the frontend resources to the
jumbotron/src/main/resources/publicdirectory:cd ..- next:
./gradlew copyResources
then
- Use the Gradle task to copy the frontend resources to the
-
Create postgres server and database:
-
Create a PostgreSQL database
- named
jambotronDBwith the - user
adminand - password
postgrespw.
- named
-
You can use a PostgreSQL client or run the following command in your terminal:
CREATE DATABASE jambotronDB; CREATE USER admin WITH PASSWORD 'postgrespw'; GRANT ALL PRIVILEGES ON DATABASE jambotronDB TO admin; -
If you are using Docker, you can run PostgreSQL using the following command:
-
port 5433 is used.
docker run --name postgresDB -p 5433:5432 -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=postgrespw -e POSTGRES_DB=jambotronDB -d postgres -
if you are wont to use pgadmin
docker run --name pgadmin -e "PGADMIN_DEFAULT_EMAIL=name@example.com" -e "PGADMIN_DEFAULT_PASSWORD=admin" -p 5050:80 -d dpage/pgadmin4then
-
create a network for the containers to communicate:
docker network create --driver bridge pgnetwork- Show list of networks:
docker network ls- Connect pgadmin to the network:
docker network connect pgnetwork pgadmin- Connect postgresDB to the network (postgresDB must by running):
docker network connect pgnetwork postgresDB- Inspect the network to ensure both containers are connected:
docker network inspect pgnetwork
-
-
Run the Application:
- Start the Spring Boot application:
./gradlew bootRun
- Start the Spring Boot application:
-
Access the Application:
- Open your browser and navigate to
http://localhost:8080.
- Open your browser and navigate to
Make sure all dependencies and configurations are correctly set up before running these steps.
How to run the application in Docker
To run the application in Docker, follow these steps:
- build jar file
./gradlew bootJar
- Run docker compose to start the application and PostgreSQL:
docker-compose -f src/Docker/docker-compose.yml up -d
- For connection from pgadmin use hostename: host.docker.internal
How to run the application in Docker with HTTPS support
To run the application in Docker with HTTPS support, follow these steps:
-
Cerbot
-
Run this command below to get certificate and store it to volume certs.
-
Expanded(readable) command example:
docker run -d
--name certbot
-v certs:/etc/letsencrypt
-v certs-data:/var/lib/letsencrypt
-p 80:80
-p 443:443
certbot/certbot
certonly --standalone --preferred-challenges http --email youremail@gmail.com -d yourdomain.com --agree-tos- Command to run certbot with specific domain and email:
docker run -d --name certbot -v certs:/etc/letsencrypt -v certs-data:/var/lib/letsencrypt -p 8081:80 -p 8443:443 certbot/certbot certonly --standalone --preferred-challenges http --email liosha84@gmail.com -d jambotron.run.place --agree-tos- Tip: You can generate certificate to local machine used next command:
docker run -it --rm -p 8081:80 --name certbot -v "C:\certbot\etc\letsencrypt:/etc/letsencrypt" -v "C:\certbot\var\lib\letsencrypt:/var/lib/letsencrypt" certbot/certbot certonly --standalone -d jambotron.run.placecertificate files will be stored in
C:\certbot\etc\letsencryptandC:\certbot\var\lib\letsencryptdirectories.-
If you have same trouble before running certbot, run this project
Helper_projects/spring-boot-https-maininsted of jambotron project. -
TODO: Add cron job to renew certificate automatically.
-
Reference Documentation
For further reference, please consider the following sections:
Additional Links
These additional references should also help you:
For docker-compose db connect with pgAdmin used host.docker.internal