Files
jambotron/HELP.md
T

5.1 KiB
Raw Blame History

How to run the application

To run the application, follow these steps:

  1. Build the Project:

    • Ensure you have Java 24, Gradle, and Node.js installed.
    • Run the following command to build the project:
        ./gradlew build
      
    1. Prepare Frontend Resources:
      • Build the Angular frontend by navigating to the jambotron-ui directory and running
      cd jambotron-ui
      
      • next:
      npm install
      
      • next:
      npm run build
      
    • This will generate the frontend files in the jambotron-ui/dist/jambotron-ui/browser directory.
  2. Copy Frontend Resources:

    • Use the Gradle task to copy the frontend resources to the jumbotron/src/main/resources/public directory:
      cd ..
      
      • next:
      ./gradlew copyResources
      

    then

  3. Create postgres server and database:

    • Create a PostgreSQL database

      • named jambotronDB with the
      • user admin and
      • password postgrespw.
    • 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:

      docker run --name postgresDB -p 5432: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/pgadmin4
      

      then

    • 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
      
  4. Run the Application:

    • Start the Spring Boot application:
      ./gradlew bootRun
      
  5. Access the Application:

    • Open your browser and navigate to http://localhost:8080.

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:

  1. 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.place 
    

    certificate files will be stored in C:\certbot\etc\letsencrypt and C:\certbot\var\lib\letsencrypt directories.

    • If you have same trouble before running certbot, run this project Helper_projects/spring-boot-https-main insted of jambotron project.

    • TODO: Add cron job to renew certificate automatically.

Reference Documentation

For further reference, please consider the following sections:

These additional references should also help you:

For docker-compose db connect with pgAdmin used host.docker.internal