diff --git a/.gitea/workflows/be-img-build-and-push.yaml b/.gitea/workflows/be-img-build-and-push.yaml index 98d84dd..e32bb29 100644 --- a/.gitea/workflows/be-img-build-and-push.yaml +++ b/.gitea/workflows/be-img-build-and-push.yaml @@ -84,5 +84,11 @@ jobs: run: | docker images -a docker system prune -f + docker images echo "Cleanup done." - + + - name: Deploy to server via deploy script + run: | + chmod +x ./scripts/deploy-backend.sh + #./scripts/deploy-backend.sh ${{ gitea.actor }} ${{ vars.REGISTRY_URL }} my-app-backend v1.0.0 + ./scripts/deploy-backend.sh diff --git a/.gitea/workflows/scripts/deploy-backend.sh b/.gitea/workflows/scripts/deploy-backend.sh new file mode 100644 index 0000000..e69de29 diff --git a/docker/docker-compose-dev.yml b/docker/docker-compose-dev.yml new file mode 100644 index 0000000..c6a0dd1 --- /dev/null +++ b/docker/docker-compose-dev.yml @@ -0,0 +1,202 @@ +networks: + hps-proxy-network: + driver: bridge + external: false + +volumes: + auth_api_data: + acc_api_data: + lab_api_data: + dash_api_data: + audit_api_data: + +services: + keycloak_api: + image: quay.io/keycloak/keycloak:26.2.5 + container_name: keycloak + ports: + - "127.0.0.1:8080:8080" + environment: + KEYCLOAK_ADMIN: admin + KEYCLOAK_ADMIN_PASSWORD: admin + KC_DB: mariadb + KC_DB_URL_HOST: dev-keycloak.healthprosuite.com #host.docker.internal + KC_DB_URL_PORT: 3306 + KC_DB_URL_DATABASE: keycloak + KC_DB_USERNAME: keycloakdevuser + KC_DB_PASSWORD: keycloakdevuser + KC_HEALTH_ENABLED: true + KC_METRICS_ENABLED: true + KC_HTTP_ENABLED: true + KC_HOSTNAME: https://dev-keycloak.healthprosuite.com #host.docker.internal + KC_HOSTNAME_STRICT: false + KC_HOSTNAME_STRICT_HTTPS: true #Only for local dev + KC_PROXY: edge + + command: start-dev + #command: start --optimized #production mode + + rabbitmq: + image: rabbitmq:management + container_name: rabbitmq + hostname: "${RABBITMQ_HOST}" + restart: always + ports: + - "127.0.0.1:5672:5672" # RabbitMQ communication port + - "127.0.0.1:15672:15672" # RabbitMQ Management UI + environment: + RABBITMQ_DEFAULT_USER: admin + RABBITMQ_DEFAULT_PASS: securepassword + RABBITMQ_NODENAME: rabbit@localhost + RABBITMQ_PORT: 5672 + RABBITMQ_VHOST: / + networks: + - hps-proxy-network + volumes: + - ../rabbitmq_data:/var/lib/rabbitmq + + auth_api: + #container_name: auth_backend + image: healthprosuite/services:auth-backend-1.0.0 + ports: + - "127.0.0.1:5021:5021" + restart: always + env_file: .env + environment: + SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}" + SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_AUTH}" + SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_AUTH}" + SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_AUTH}" + SPRING_DATASOURCE_DRIVERCLASSNAME: "${SPRING_DATASOURCE_DRIVERCLASSNAME}" + AUTHSERVICE_JWT_SECRET: "${AUTHSERVICE_JWT_SECRET}" + SPRING_RABBITMQ_HOST: "${SPRING_RABBITMQ_HOST}" + SPRING_RABBITMQ_USERNAME: "${SPRING_RABBITMQ_USERNAME}" + SPRING_RABBITMQ_PASSWORD: "${SPRING_RABBITMQ_PASSWORD}" + SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KEYCLOAK_CLIENT_ID: oic-dashboard-oauth2-client-credentials + SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KEYCLOAK_CLIENT_SECRET: VrWiz6aQoyPWwzcdBoNj4CR26ZJqPS4m + AUTHSERVICE_KEYCLOAK_HOST: https://dev-keycloak.healthprosuite.com #http://host.docker.internal:8080 + volumes: + - auth_api_data:/app + - ~/development/healthprosuite/hospitals:/hospitals/logo + networks: + - hps-proxy-network + depends_on: + - rabbitmq + - keycloak_api + + acc_api: + container_name: acc_backend + image: healthprosuite/services:acc-backend-${APP_VERSION} + ports: + - "127.0.0.1:5022:5022" + restart: always + env_file: .env + environment: + SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}" + SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_ACC}" + SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_ACC}" + SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_ACC}" + SPRING_DATASOURCE_DRIVERCLASSNAME: "${SPRING_DATASOURCE_DRIVERCLASSNAME}" + SPRING_RABBITMQ_HOST: "${SPRING_RABBITMQ_HOST}" + SPRING_RABBITMQ_USERNAME: "${SPRING_RABBITMQ_USERNAME}" + SPRING_RABBITMQ_PASSWORD: "${SPRING_RABBITMQ_PASSWORD}" + ACCOUNTING_SERVICE_JWT_SECRET: "${AUTHSERVICE_JWT_SECRET}" + volumes: + - acc_api_data:/app + - ~/hospitals:/hospitals + networks: + - hps-proxy-network + depends_on: + - rabbitmq + - auth_api + + lab_api: + container_name: lab_backend + image: healthprosuite/services:lab-backend-${APP_VERSION} + ports: + - "127.0.0.1:5023:5023" + restart: always + env_file: .env + environment: + SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}" + SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_LAB}" + SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_LAB}" + SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_LAB}" + SPRING_DATASOURCE_DRIVERCLASSNAME: "${SPRING_DATASOURCE_DRIVERCLASSNAME}" + SPRING_RABBITMQ_HOST: "${SPRING_RABBITMQ_HOST}" + SPRING_RABBITMQ_USERNAME: "${SPRING_RABBITMQ_USERNAME}" + SPRING_RABBITMQ_PASSWORD: "${SPRING_RABBITMQ_PASSWORD}" + LAB_SERVICE_JWT_SECRET: "${AUTHSERVICE_JWT_SECRET}" + volumes: + - lab_api_data:/app + - ~/development/healthprosuite/laboratory:/laboratory + networks: + - hps-proxy-network + depends_on: + - rabbitmq + - auth_api + - acc_api + + audit_api: + container_name: audit_backend + image: healthprosuite/services:audit-backend-${APP_VERSION} + ports: + - "127.0.0.1:5025:5025" + restart: always + env_file: .env + environment: + SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}" + SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_AUDIT}" + SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_AUDIT}" + SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_AUDIT}" + SPRING_RABBITMQ_HOST: "${SPRING_RABBITMQ_HOST}" + AUDIT_SERVICE_JWT_SECRET: "${AUTHSERVICE_JWT_SECRET}" + volumes: + - audit_api_data:/app + networks: + - hps-proxy-network + depends_on: + - rabbitmq + - auth_api + - lab_api + - acc_api + + dash_api: + container_name: dash_backend + image: healthprosuite/services:dash-backend-${APP_VERSION} + #profiles: + #- skipme + ports: + - "127.0.0.1:2020:2020" + restart: always + env_file: .env + environment: + SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}" + SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_DASH}" + SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_DASH}" + SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_DASH}" + SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KEYCLOAK_CLIENT_ID: oic-dashboard-oauth2-client-credentials + SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KEYCLOAK_CLIENT_SECRET: VrWiz6aQoyPWwzcdBoNj4CR26ZJqPS4m + SPRING_SECURITY_OAUTH2_RESOURCE_SERVER_JWT_JWT_SET_URI: https://dev-keycloak.healthprosuite.com + SPRING_KEYCLOAK_HOST: https://dev-keycloak.healthprosuite.com #http://127.0.0.1:8080 #http://host.docker.internal:8080 + APPLICATION_WEB_CLIENT_HOST: https://dev-auth-service.healthprosuite.com/auth/v1 #http://host.docker.internal:5021/auth/v1 + APPLICATION_KEYCLOAK_SERVER_URL: https://dev-keycloak.healthprosuite.com #http://127.0.0.1:8080 #http://host.docker.internal:8080 + APPLICATION_KEYCLOAK_REALM: Dashboard-HPS-Realm + volumes: + - dash_api_data:/app + networks: + - hps-proxy-network + depends_on: + - auth_api + - acc_api + - keycloak_api + + icd-api: + container_name: icd-api + image: whoicd/icd-api + ports: + - "0.0.0.0:8000:80" + environment: + - acceptLicense=true # Required parameter to agree with license + - saveAnalytics=${SAVE_ANALYTICS:-true} # Optional: set to true to send analytics to WHO + - include=${INCLUDE:-2024-01_en} # Optional: set the language or release version (e.g., 2024-01_en, 2024-01_es for Spanish) \ No newline at end of file