#develop - adição do frontend da suite e da estrutura completa do módulo de relatórios
This commit is contained in:
@@ -10,12 +10,14 @@
|
|||||||
"suite": "${FRONTEND_SUITE_URL}",
|
"suite": "${FRONTEND_SUITE_URL}",
|
||||||
"attendance": "${FRONTEND_ATTENDANCE_URL}",
|
"attendance": "${FRONTEND_ATTENDANCE_URL}",
|
||||||
"account": "${FRONTEND_ACCOUNT_URL}",
|
"account": "${FRONTEND_ACCOUNT_URL}",
|
||||||
"people": "${FRONTEND_PEOPLE_URL}"
|
"people": "${FRONTEND_PEOPLE_URL}",
|
||||||
|
"reports": "${FRONTEND_REPORTS_URL}"
|
||||||
},
|
},
|
||||||
"api": {
|
"api": {
|
||||||
"suite": "${BACKEND_SUITE_API_URL}",
|
"suite": "${BACKEND_SUITE_API_URL}",
|
||||||
"people": "${BACKEND_PEOPLE_API_URL}",
|
"people": "${BACKEND_PEOPLE_API_URL}",
|
||||||
"account": "${BACKEND_ACCOUNT_API_URL}",
|
"account": "${BACKEND_ACCOUNT_API_URL}",
|
||||||
"attendance": "${BACKEND_ATTENDANCE_API_URL}"
|
"attendance": "${BACKEND_ATTENDANCE_API_URL}",
|
||||||
|
"reports": "${BACKEND_REPORTS_API_URL}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,6 +33,22 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- app-network
|
- 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:
|
attendancesystem-api:
|
||||||
image: ${DOCKER_REPO}/backend-attendance-system-api:${IMAGEM_UNSTABLE_LATEST}
|
image: ${DOCKER_REPO}/backend-attendance-system-api:${IMAGEM_UNSTABLE_LATEST}
|
||||||
profiles: ["app"]
|
profiles: ["app"]
|
||||||
@@ -86,6 +102,38 @@ services:
|
|||||||
config-generator:
|
config-generator:
|
||||||
condition: service_completed_successfully
|
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:
|
networks:
|
||||||
app-network:
|
app-network:
|
||||||
name: attendancesystem-network
|
name: attendancesystem-network
|
||||||
|
|||||||
20
install.sh
20
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_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_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_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_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_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_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_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() {
|
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_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_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_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_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_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_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_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() {
|
collect_database() {
|
||||||
@@ -273,10 +277,12 @@ collect_config() {
|
|||||||
BACKEND_PEOPLE_API_EXTERNAL_PORT="$BACKEND_PEOPLE_API_INTERNAL_PORT"
|
BACKEND_PEOPLE_API_EXTERNAL_PORT="$BACKEND_PEOPLE_API_INTERNAL_PORT"
|
||||||
BACKEND_ATTENDANCESYSTEM_API_EXTERNAL_PORT="$BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT"
|
BACKEND_ATTENDANCESYSTEM_API_EXTERNAL_PORT="$BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT"
|
||||||
BACKEND_ACCOUNT_API_EXTERNAL_PORT="$BACKEND_ACCOUNT_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_SUITE_APP_EXTERNAL_PORT="$FRONTEND_SUITE_APP_INTERNAL_PORT"
|
||||||
FRONTEND_PEOPLE_APP_EXTERNAL_PORT="$FRONTEND_PEOPLE_APP_INTERNAL_PORT"
|
FRONTEND_PEOPLE_APP_EXTERNAL_PORT="$FRONTEND_PEOPLE_APP_INTERNAL_PORT"
|
||||||
FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT="$FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT"
|
FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT="$FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT"
|
||||||
FRONTEND_ACCOUNT_APP_EXTERNAL_PORT="$FRONTEND_ACCOUNT_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."
|
print_ok "Portas externas definidas iguais às internas."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -303,12 +309,12 @@ show_summary() {
|
|||||||
echo -e " Porta : ${BOLD}${SYSTEM_BASE_PORT}${NC}"
|
echo -e " Porta : ${BOLD}${SYSTEM_BASE_PORT}${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " ${BOLD}[3] Portas Internas${NC}"
|
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 " 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 : ${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 " 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 ""
|
||||||
echo -e " ${BOLD}[4] Portas Externas${NC}"
|
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 " 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 : ${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 " 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 ""
|
||||||
echo -e " ${BOLD}[5] Banco de Dados${NC}"
|
echo -e " ${BOLD}[5] Banco de Dados${NC}"
|
||||||
echo -e " MongoDB : ${BOLD}${MONGO_PORT}${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_INTERNAL_PORT=${BACKEND_ACCOUNT_API_INTERNAL_PORT}
|
||||||
BACKEND_ACCOUNT_API_EXTERNAL_PORT=${BACKEND_ACCOUNT_API_EXTERNAL_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_APPLICATIONNAME=AttendanceSystem
|
||||||
BACKEND_ATTENDANCESYSTEM_API_NAME=attendancesystem-api
|
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_INTERNAL_PORT=${FRONTEND_ACCOUNT_APP_INTERNAL_PORT}
|
||||||
FRONTEND_ACCOUNT_APP_EXTERNAL_PORT=${FRONTEND_ACCOUNT_APP_EXTERNAL_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 ─────────────────────────────────────────────
|
||||||
KEEPALIVE_ATTENDANCE_SYSTEM_BACKEND_HOST=${KEEPALIVE_BACKEND}
|
KEEPALIVE_ATTENDANCE_SYSTEM_BACKEND_HOST=${KEEPALIVE_BACKEND}
|
||||||
KEEPALIVE_ATTENDANCE_SYSTEM_FRONTEND_HOST=${KEEPALIVE_FRONTEND}
|
KEEPALIVE_ATTENDANCE_SYSTEM_FRONTEND_HOST=${KEEPALIVE_FRONTEND}
|
||||||
|
|||||||
Reference in New Issue
Block a user