diff --git a/config.template.json b/config.template.json index 7667c31..aa3b001 100644 --- a/config.template.json +++ b/config.template.json @@ -10,12 +10,14 @@ "suite": "${FRONTEND_SUITE_URL}", "attendance": "${FRONTEND_ATTENDANCE_URL}", "account": "${FRONTEND_ACCOUNT_URL}", - "people": "${FRONTEND_PEOPLE_URL}" + "people": "${FRONTEND_PEOPLE_URL}", + "reports": "${FRONTEND_REPORTS_URL}" }, "api": { "suite": "${BACKEND_SUITE_API_URL}", "people": "${BACKEND_PEOPLE_API_URL}", "account": "${BACKEND_ACCOUNT_API_URL}", - "attendance": "${BACKEND_ATTENDANCE_API_URL}" + "attendance": "${BACKEND_ATTENDANCE_API_URL}", + "reports": "${BACKEND_REPORTS_API_URL}" } } \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index bcb4afc..89b40fc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,6 +33,22 @@ services: networks: - app-network + reports-api: + image: ${DOCKER_REPO}/sca-reports-api:${IMAGEM_UNSTABLE_LATEST} + profiles: ["app"] + ports: + - "${BACKEND_REPORTS_API_INTERNAL_PORT}:${BACKEND_REPORTS_API_INTERNAL_PORT}" + environment: + - ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT} + - MONGODB_CONNECTION_STRING=${MONGODB_CONNECTION_STRING} + - MONGODB_DATABASE=${MONGODB_DATABASE} + - SYSTEM_BASE_CONN=${SYSTEM_BASE_CONN} + - FRONTEND_CONN=${INTERNAL_HOST}:${FRONTEND_REPORTS_APP_INTERNAL_PORT} + - KEEPALIVE_ATTENDANCE_SYSTEM_BACKEND_HOST=${KEEPALIVE_ATTENDANCE_SYSTEM_BACKEND_HOST} + - KEEPALIVE_ATTENDANCE_SYSTEM_FRONTEND_HOST=${KEEPALIVE_ATTENDANCE_SYSTEM_FRONTEND_HOST} + networks: + - app-network + attendancesystem-api: image: ${DOCKER_REPO}/backend-attendance-system-api:${IMAGEM_UNSTABLE_LATEST} profiles: ["app"] @@ -86,6 +102,38 @@ services: config-generator: condition: service_completed_successfully + reports-app: + image: ${DOCKER_REPO}/reports-app:${IMAGEM_UNSTABLE_LATEST} + profiles: ["app"] + volumes: + - config-volume:/config-inject:ro + entrypoint: > + sh -c "cp /config-inject/config.json /usr/share/nginx/html/config.json && + nginx -g 'daemon off;'" + ports: + - "${FRONTEND_REPORTS_APP_INTERNAL_PORT}:${NGINX_DEFAULT_PORT}" + networks: + - app-network + depends_on: + config-generator: + condition: service_completed_successfully + + suite-app: + image: ${DOCKER_REPO}/suite-app:${IMAGEM_UNSTABLE_LATEST} + profiles: ["app"] + volumes: + - config-volume:/config-inject:ro + entrypoint: > + sh -c "cp /config-inject/config.json /usr/share/nginx/html/config.json && + nginx -g 'daemon off;'" + ports: + - "${FRONTEND_SUITE_APP_INTERNAL_PORT}:${NGINX_DEFAULT_PORT}" + networks: + - app-network + depends_on: + config-generator: + condition: service_completed_successfully + networks: app-network: name: attendancesystem-network diff --git a/install.sh b/install.sh index 2b57ab8..630b60d 100644 --- a/install.sh +++ b/install.sh @@ -225,10 +225,12 @@ collect_internal_ports() { ask BACKEND_PEOPLE_API_INTERNAL_PORT "Backend People API" "${BACKEND_PEOPLE_API_INTERNAL_PORT:-10100}" ask BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT "Backend AttendanceSystem API" "${BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT:-10102}" ask BACKEND_ACCOUNT_API_INTERNAL_PORT "Backend Account API" "${BACKEND_ACCOUNT_API_INTERNAL_PORT:-10103}" + ask BACKEND_REPORTS_API_INTERNAL_PORT "Backend Reports API" "${BACKEND_REPORTS_API_INTERNAL_PORT:-10105}" ask FRONTEND_SUITE_APP_INTERNAL_PORT "Frontend Suite" "${FRONTEND_SUITE_APP_INTERNAL_PORT:-4200}" ask FRONTEND_PEOPLE_APP_INTERNAL_PORT "Frontend People" "${FRONTEND_PEOPLE_APP_INTERNAL_PORT:-4201}" ask FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT "Frontend AttendanceSystem" "${FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT:-4202}" ask FRONTEND_ACCOUNT_APP_INTERNAL_PORT "Frontend Account" "${FRONTEND_ACCOUNT_APP_INTERNAL_PORT:-4203}" + ask FRONTEND_REPORTS_APP_INTERNAL_PORT "Frontend Reports" "${FRONTEND_REPORTS_APP_INTERNAL_PORT:-4205}" } collect_external_ports() { @@ -239,10 +241,12 @@ collect_external_ports() { ask BACKEND_PEOPLE_API_EXTERNAL_PORT "Backend People API" "${BACKEND_PEOPLE_API_EXTERNAL_PORT:-$BACKEND_PEOPLE_API_INTERNAL_PORT}" ask BACKEND_ATTENDANCESYSTEM_API_EXTERNAL_PORT "Backend AttendanceSystem API" "${BACKEND_ATTENDANCESYSTEM_API_EXTERNAL_PORT:-$BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT}" ask BACKEND_ACCOUNT_API_EXTERNAL_PORT "Backend Account API" "${BACKEND_ACCOUNT_API_EXTERNAL_PORT:-$BACKEND_ACCOUNT_API_INTERNAL_PORT}" + ask BACKEND_REPORTS_API_EXTERNAL_PORT "Backend Reports API" "${BACKEND_REPORTS_API_EXTERNAL_PORT:-$BACKEND_REPORTS_API_INTERNAL_PORT}" ask FRONTEND_SUITE_APP_EXTERNAL_PORT "Frontend Suite" "${FRONTEND_SUITE_APP_EXTERNAL_PORT:-$FRONTEND_SUITE_APP_INTERNAL_PORT}" ask FRONTEND_PEOPLE_APP_EXTERNAL_PORT "Frontend People" "${FRONTEND_PEOPLE_APP_EXTERNAL_PORT:-$FRONTEND_PEOPLE_APP_INTERNAL_PORT}" ask FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT "Frontend AttendanceSystem" "${FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT:-$FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT}" ask FRONTEND_ACCOUNT_APP_EXTERNAL_PORT "Frontend Account" "${FRONTEND_ACCOUNT_APP_EXTERNAL_PORT:-$FRONTEND_ACCOUNT_APP_INTERNAL_PORT}" + ask FRONTEND_REPORTS_APP_EXTERNAL_PORT "Frontend Reports" "${FRONTEND_REPORTS_APP_EXTERNAL_PORT:-$FRONTEND_REPORTS_APP_INTERNAL_PORT}" } collect_database() { @@ -273,10 +277,12 @@ collect_config() { BACKEND_PEOPLE_API_EXTERNAL_PORT="$BACKEND_PEOPLE_API_INTERNAL_PORT" BACKEND_ATTENDANCESYSTEM_API_EXTERNAL_PORT="$BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT" BACKEND_ACCOUNT_API_EXTERNAL_PORT="$BACKEND_ACCOUNT_API_INTERNAL_PORT" + BACKEND_REPORTS_API_EXTERNAL_PORT="$BACKEND_REPORTS_API_INTERNAL_PORT" FRONTEND_SUITE_APP_EXTERNAL_PORT="$FRONTEND_SUITE_APP_INTERNAL_PORT" FRONTEND_PEOPLE_APP_EXTERNAL_PORT="$FRONTEND_PEOPLE_APP_INTERNAL_PORT" FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT="$FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT" FRONTEND_ACCOUNT_APP_EXTERNAL_PORT="$FRONTEND_ACCOUNT_APP_INTERNAL_PORT" + FRONTEND_REPORTS_APP_EXTERNAL_PORT="$FRONTEND_REPORTS_APP_INTERNAL_PORT" print_ok "Portas externas definidas iguais às internas." fi @@ -303,12 +309,12 @@ show_summary() { echo -e " Porta : ${BOLD}${SYSTEM_BASE_PORT}${NC}" echo "" echo -e " ${BOLD}[3] Portas Internas${NC}" - echo -e " Backend Suite/People/Attendance/Account : ${BOLD}${BACKEND_SUITE_API_INTERNAL_PORT}${NC} / ${BOLD}${BACKEND_PEOPLE_API_INTERNAL_PORT}${NC} / ${BOLD}${BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT}${NC} / ${BOLD}${BACKEND_ACCOUNT_API_INTERNAL_PORT}${NC}" - echo -e " Frontend Suite/People/Attendance/Account : ${BOLD}${FRONTEND_SUITE_APP_INTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_PEOPLE_APP_INTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_ACCOUNT_APP_INTERNAL_PORT}${NC}" + echo -e " Backend Suite/People/Attendance/Account/Reports : ${BOLD}${BACKEND_SUITE_API_INTERNAL_PORT}${NC} / ${BOLD}${BACKEND_PEOPLE_API_INTERNAL_PORT}${NC} / ${BOLD}${BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT}${NC} / ${BOLD}${BACKEND_ACCOUNT_API_INTERNAL_PORT}${NC} / ${BOLD}${BACKEND_REPORTS_API_INTERNAL_PORT}${NC}" + echo -e " Frontend Suite/People/Attendance/Account/Reports : ${BOLD}${FRONTEND_SUITE_APP_INTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_PEOPLE_APP_INTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_ACCOUNT_APP_INTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_REPORTS_APP_INTERNAL_PORT}${NC}" echo "" echo -e " ${BOLD}[4] Portas Externas${NC}" - echo -e " Backend Suite/People/Attendance/Account : ${BOLD}${BACKEND_SUITE_API_EXTERNAL_PORT}${NC} / ${BOLD}${BACKEND_PEOPLE_API_EXTERNAL_PORT}${NC} / ${BOLD}${BACKEND_ATTENDANCESYSTEM_API_EXTERNAL_PORT}${NC} / ${BOLD}${BACKEND_ACCOUNT_API_EXTERNAL_PORT}${NC}" - echo -e " Frontend Suite/People/Attendance/Account : ${BOLD}${FRONTEND_SUITE_APP_EXTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_PEOPLE_APP_EXTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_ACCOUNT_APP_EXTERNAL_PORT}${NC}" + echo -e " Backend Suite/People/Attendance/Account/Reports : ${BOLD}${BACKEND_SUITE_API_EXTERNAL_PORT}${NC} / ${BOLD}${BACKEND_PEOPLE_API_EXTERNAL_PORT}${NC} / ${BOLD}${BACKEND_ATTENDANCESYSTEM_API_EXTERNAL_PORT}${NC} / ${BOLD}${BACKEND_ACCOUNT_API_EXTERNAL_PORT}${NC} / ${BOLD}${BACKEND_REPORTS_API_EXTERNAL_PORT}${NC}" + echo -e " Frontend Suite/People/Attendance/Account/Reports : ${BOLD}${FRONTEND_SUITE_APP_EXTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_PEOPLE_APP_EXTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_ACCOUNT_APP_EXTERNAL_PORT}${NC} / ${BOLD}${FRONTEND_REPORTS_APP_EXTERNAL_PORT}${NC}" echo "" echo -e " ${BOLD}[5] Banco de Dados${NC}" echo -e " MongoDB : ${BOLD}${MONGO_PORT}${NC}" @@ -386,6 +392,9 @@ BACKEND_PEOPLE_API_EXTERNAL_PORT=${BACKEND_PEOPLE_API_EXTERNAL_PORT} BACKEND_ACCOUNT_API_INTERNAL_PORT=${BACKEND_ACCOUNT_API_INTERNAL_PORT} BACKEND_ACCOUNT_API_EXTERNAL_PORT=${BACKEND_ACCOUNT_API_EXTERNAL_PORT} +BACKEND_REPORTS_API_INTERNAL_PORT=${BACKEND_REPORTS_API_INTERNAL_PORT} +BACKEND_REPORTS_API_EXTERNAL_PORT=${BACKEND_REPORTS_API_EXTERNAL_PORT} + BACKEND_ATTENDANCESYSTEM_API_APPLICATIONNAME=AttendanceSystem BACKEND_ATTENDANCESYSTEM_API_NAME=attendancesystem-api @@ -402,6 +411,9 @@ FRONTEND_PEOPLE_APP_EXTERNAL_PORT=${FRONTEND_PEOPLE_APP_EXTERNAL_PORT} FRONTEND_ACCOUNT_APP_INTERNAL_PORT=${FRONTEND_ACCOUNT_APP_INTERNAL_PORT} FRONTEND_ACCOUNT_APP_EXTERNAL_PORT=${FRONTEND_ACCOUNT_APP_EXTERNAL_PORT} +FRONTEND_REPORTS_APP_INTERNAL_PORT=${FRONTEND_REPORTS_APP_INTERNAL_PORT} +FRONTEND_REPORTS_APP_EXTERNAL_PORT=${FRONTEND_REPORTS_APP_EXTERNAL_PORT} + # ── Keepalive ───────────────────────────────────────────── KEEPALIVE_ATTENDANCE_SYSTEM_BACKEND_HOST=${KEEPALIVE_BACKEND} KEEPALIVE_ATTENDANCE_SYSTEM_FRONTEND_HOST=${KEEPALIVE_FRONTEND}