From 56756d7c85faade2e514eeb01514f323685681ec Mon Sep 17 00:00:00 2001 From: Yuri Lima Date: Sat, 1 Feb 2025 12:52:54 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20REFACTOR:=20Ready=20for=20Migrat?= =?UTF-8?q?ions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 22 ++ docker-compose.yaml | 20 ++ ...er-compose.yaml.13722.2023-10-03@14:44:27~ | 190 ------------------ ...-compose.yaml.2173675.2024-01-14@21:55:00~ | 161 --------------- ...-compose.yaml.2178008.2024-01-14@22:00:26~ | 161 --------------- ...-compose.yaml.2179052.2024-01-14@22:01:25~ | 161 --------------- ...-compose.yaml.2183204.2024-01-14@22:05:16~ | 164 --------------- helper.md | 1 + .../yuri.phx-erp.de/production/signed.crt | 30 +-- .../preview/79/yurilima__02__preview.png | Bin 13263 -> 0 bytes .../assets/source/bf/yurilima__02.png | Bin 12998 -> 0 bytes server_custom/config.ts | 57 +++++- 12 files changed, 106 insertions(+), 861 deletions(-) delete mode 100644 docker-compose.yaml.13722.2023-10-03@14:44:27~ delete mode 100644 docker-compose.yaml.2173675.2024-01-14@21:55:00~ delete mode 100644 docker-compose.yaml.2178008.2024-01-14@22:00:26~ delete mode 100644 docker-compose.yaml.2179052.2024-01-14@22:01:25~ delete mode 100644 docker-compose.yaml.2183204.2024-01-14@22:05:16~ create mode 100644 helper.md delete mode 100644 server_custom/assets/preview/79/yurilima__02__preview.png delete mode 100644 server_custom/assets/source/bf/yurilima__02.png diff --git a/.env b/.env index 9e58235..c5c30eb 100644 --- a/.env +++ b/.env @@ -26,3 +26,25 @@ SMTP_SECURE_CONNECTION='true' # Not in use # ======= GraphQl ============= GRAPHQL_DEBUG='true' GRAPHQL_TRACING='true' +# ======= Integrations ============= +# Bill Bee +BILL_BEE_ACTIVE='true' +BILL_BEE_API_KEY='200EEBAD-06E8-4184-B430-3428D6447B92' +BILL_BEE_API_USERNAME="yuri.lima" +BILL_BEE_API_SECRET='YTB6tgm.dzb0ntf@zqr' +BILL_BEE_API_URL='https://api.billbee.io/api/v1' +# Channel Pilot Pro +CHANNEL_PILOT_PRO_ACTIVE='true' +CHANNEL_PILOT_PRO_URL='https://capi.channelpilot.com' +CHANNEL_PILOT_PRO_API_MERCHANT_ID='' +CHANNEL_PILOT_PRO_API_TOKEN='' +CHANNEL_PILOT_PRO_ACCESS_TOKEN='' +CHANNEL_PILOT_PRO_EXPIRED_AT='' +# Shopify +SHOPIFY_ACTIVE='true' +SHOPIFY_HOST_NAME='https://phxerpdev.myshopify.com/admin/api/2024-10/graphql.json' +SHOPIFY_API_KEY='159142eaee1b747e5cb084cc77564b3e' +SHOPIFY_API_SECRET='1be9e99cad669092247f8735da3e0570' +SHOPIFY_TOKEN='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' +SHOPIFY_HOST_SCHEME='https' +SHOPIFY_IS_EMBEDDED_APP='true' diff --git a/docker-compose.yaml b/docker-compose.yaml index 162bacd..c0e9eb8 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -73,6 +73,24 @@ services: - ENV_MODE=${ENV_MODE} - NODE_ENV=${NODE_ENV} - SMTP_TLS_CIPHERS={SMTP_TLS_CIPHERS} + - BILL_BEE_ACTIVE=${BILL_BEE_ACTIVE} + - BILL_BEE_API_KEY=${BILL_BEE_API_KEY} + - BILL_BEE_API_USERNAME=${BILL_BEE_API_USERNAME} + - BILL_BEE_API_SECRET=${BILL_BEE_API_SECRET} + - BILL_BEE_API_URL=${BILL_BEE_API_URL} + - CHANNEL_PILOT_PRO_ACTIVE=${CHANNEL_PILOT_PRO_ACTIVE} + - CHANNEL_PILOT_PRO_URL=${CHANNEL_PILOT_PRO_URL} + - CHANNEL_PILOT_PRO_API_MERCHANT_ID=${CHANNEL_PILOT_PRO_API_MERCHANT_ID} + - CHANNEL_PILOT_PRO_API_TOKEN=${CHANNEL_PILOT_PRO_API_TOKEN} + - CHANNEL_PILOT_PRO_ACCESS_TOKEN=${CHANNEL_PILOT_PRO_ACCESS_TOKEN} + - CHANNEL_PILOT_PRO_EXPIRED_AT=${CHANNEL_PILOT_PRO_EXPIRED_AT} + - SHOPIFY_ACTIVE=${SHOPIFY_ACTIVE} + - SHOPIFY_HOST_NAME=${SHOPIFY_HOST_NAME} + - SHOPIFY_API_KEY=${SHOPIFY_API_KEY} + - SHOPIFY_API_SECRET=${SHOPIFY_API_SECRET} + - SHOPIFY_HOST_SCHEME=${SHOPIFY_HOST_SCHEME} + - SHOPIFY_IS_EMBEDDED_APP=${SHOPIFY_IS_EMBEDDED_APP} + command: ["npm", "run", "start:server"] deploy: replicas: 1 #change here if u want to have more replicas. Cant find a way to set via variable right now @@ -129,6 +147,8 @@ services: network_mode: host pid: host restart: unless-stopped + ports: + - "9100:9100" command: - "--path.procfs=/host/proc" - "--path.sysfs=/host/sys" diff --git a/docker-compose.yaml.13722.2023-10-03@14:44:27~ b/docker-compose.yaml.13722.2023-10-03@14:44:27~ deleted file mode 100644 index d635679..0000000 --- a/docker-compose.yaml.13722.2023-10-03@14:44:27~ +++ /dev/null @@ -1,190 +0,0 @@ -version: "2.1" -services: - postgres: - restart: always - image: "postgres:15.1-alpine" - container_name: phoenixDB - ports: - - "5432:5432" - environment: - - DEBUG=false - - POSTGRES_DB=phoenix - - "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" - volumes: - - "db-data:/var/lib/postgresql/data" - healthcheck: - test: - - CMD-SHELL - - pg_isready -U postgres - interval: 5s - timeout: 2s - retries: 5 - networks: - - postgres - pgadmin: - restart: always - image: dpage/pgadmin4 - container_name: pgadmin_container - environment: - PGADMIN_DEFAULT_EMAIL: "pgadmin4@pgadmin.org" - PGADMIN_DEFAULT_PASSWORD: '${PGADMIN_DEFAULT_PASSWORD}' - PGADMIN_CONFIG_SERVER_MODE: 'False' - ports: - - "${PGADMIN_PORT:-5050}:80" - volumes: - - "pgadmin:/var/lib/pgadmin" - networks: - - postgres - phoenix-app: - restart: always - image: "yurimatoslima/phoenix-frontend:alpha" - container_name: phoenixAppProd - volumes: - - "/app_custom:/usr/share/nginx/html/assets/custom" - # - "/nginx/nginx.conf:/etc/nginx/nginx.conf" # Not working !!!!!!!!! - # - phxnginx:/etc/nginx - ports: - - "8081:80" - # - "443:443" - labels: - - "traefik.enable=true" - - "traefik.http.routers.phxalpha.entrypoints=https" - - "traefik.http.routers.phxalpha.rule=Host(`alpha.phx-erp.de`)" - - "traefik.http.routers.phxalpha.middlewares=secHeaders@file" - - "traefik.http.routers.phxalpha.tls=true" - - "traefik.http.routers.phxalpha.tls.certresolver=http" - - "traefik.http.routers.phxalpha.service=phxalpha" - - "traefik.http.services.phxalpha.loadbalancer.server.port=80" - - "traefik.docker.network=proxy" - - - "traefik.http.routers.phxalpha-insecure.entrypoints=http" - - "traefik.http.routers.phxalpha-insecure.rule=Host(`alpha.phx-erp.de`)" - - "traefik.http.routers.phxalpha-insecure.tls=false" - networks: - - proxy - - postgres - depends_on: - - phoenix-system - phoenix-system: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - # container_name: phoenixSystemProd - # env_file: .env - environment: - - DB_HOST=phoenixDB - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - DB_USERNAME=postgres - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - RUN_JOB_QUEUE=${RUN_JOB_QUEUE} - - SMTP_FROM=${SMTP_FROM} - - SMTP_TYPE=${SMTP_TYPE} - - SMTP_NAME=${SMTP_NAME} - - SMTP_HOST=${SMTP_HOST} - - SMTP_PORT=${SMTP_PORT} - - SMTP_SECURE=${SMTP_SECURE} - - SMTP_USER=${SMTP_USER} - - SMTP_PASS=${SMTP_PASS} - - SMTP_LOGGING=${SMTP_LOGGING} - - SMTP_DEBUG=${SMTP_DEBUG} - - SMTP_TLS_REJECT_UNAUTHORIZED=${SMTP_TLS_REJECT_UNAUTHORIZED} - - SMTP_SECURE_CONNECTION=${SMTP_SECURE_CONNECTION} - - ENV_MODE=${ENV_MODE} - - SMTP_TLS_CIPHERS=SSLv3={SMTP_TLS_CIPHERS} - command: [ "npm", "run", "start:server" ] - # ports: - # - "3000:3000" - # - "3400:3400" - # - "9615:9615" - # - "587:587" # Email Port - depends_on: - postgres: - condition: service_healthy - volumes: - - "asset-data:/usr/src/app/packages/dev-server/assets" - - "/server_custom:/usr/src/app/packages/dev-server/custom" # it seems tobe no effect if we make changes, not 100% of sure! - networks: - - postgres - deploy: - replicas: 1 - phoenix-worker: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - environment: - - DB_HOST=phoenixDB - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - DB_USERNAME=postgres - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - REDIS_PASSWORD=${REDIS_PASSWORD} - command: [ "npm", "run", "start:worker" ] - depends_on: - postgres: - condition: service_healthy - volumes: - # - "/opt/containers/phx/assets:/usr/src/app/packages/dev-server/custo/assets" - # - "asset-data:/usr/src/app/packages/dev-server/assets" - - "/server_custom:/usr/src/app/packages/dev-server/custom" - networks: - - postgres - - phoenix-redis: - image: 'bitnami/redis:latest' - container_name: redis - #command: redis-server --save 20 1 --appendonly no --requirepass ${REDIS_PASSWORD} --loglevel warning - command: /opt/bitnami/scripts/redis/run.sh --maxmemory 100mb - user: root - # privileged: true - # ports: - # - 6379:6379 - restart: always - environment: - # REDIS_APPENDFSYNC: "always" - ALLOW_EMPTY_PASSWORD: "no" - # REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL,CONFIG - REDIS_PASSWORD: ${REDIS_PASSWORD} - healthcheck: - test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] - networks: - - postgres - volumes: - - /redis/data:/bitnami/redis/data - - https_portal: - container_name: https_portal - image: "steveltn/https-portal:1.21" - restart: unless-stopped - user: "root" - networks: - - postgres # primary network [external] - - proxy # internal network - ports: - - "80:80" - - "443:443" - environment: - STAGE: "production" # Use Let's Encrypt production server - WEBSOCKET: "true" # Enable websocket support - DEBUG: "true" - RENEW_MARGIN_DAYS: 30 - # FORCE_RENEW: 'true' - DOMAINS: - volumes: - - ./volumes/https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs - - ./volumes/https_portal/log:/var/log/nginx # nginx logs - depends_on: - - phoenix-app - - phoenix-system - - pgadmin - - phoenix-redis - - postgres -volumes: - db-data: null - app-data: null - asset-data: null - pgadmin: null - -networks: - postgres: - name: postgres - driver: bridge - proxy: - name: proxy - driver: bridge diff --git a/docker-compose.yaml.2173675.2024-01-14@21:55:00~ b/docker-compose.yaml.2173675.2024-01-14@21:55:00~ deleted file mode 100644 index 6853378..0000000 --- a/docker-compose.yaml.2173675.2024-01-14@21:55:00~ +++ /dev/null @@ -1,161 +0,0 @@ -version: "2.1" -services: - postgres: - restart: always - image: "postgres:15.1-alpine" - container_name: phoenixDB - networks: - - backend - ports: - - "5432:5432" - environment: - - DEBUG=false - - POSTGRES_DB=phoenix - - "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" - volumes: - - "./database:/var/lib/postgresql/data" - healthcheck: - test: - - CMD-SHELL - - pg_isready -U postgres - interval: 5s - timeout: 2s - retries: 5 - pgadmin: - image: dpage/pgadmin4 - container_name: pgadmin_container - networks: - - backend - - frontend - environment: - PGADMIN_DEFAULT_EMAIL: "pgadmin4@pgadmin.org" - PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} - PGADMIN_CONFIG_SERVER_MODE: 'False' - ports: - - "${PGADMIN_PORT:-5050}:80" - volumes: - - "./pgadmin:/var/lib/pgadmin" - phoenix-app: - restart: always - image: "yurimatoslima/phoenix-frontend:alpha" - container_name: phoenixApp - volumes: - - "./app_custom:/usr/share/nginx/html/assets/custom" - networks: - - backend # primary network [external] - - frontend # internal network - depends_on: - - phoenix-system - phoenix-system: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - environment: - - "DB_HOST=phoenixDB" - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - "DB_USERNAME=postgres" - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - "REDIS_PASSWORD=${REDIS_PASSWORD}" - - RUN_JOB_QUEUE=${RUN_JOB_QUEUE} - - SMTP_FROM=${SMTP_FROM} - - SMTP_TYPE=${SMTP_TYPE} - - SMTP_NAME=${SMTP_NAME} - - SMTP_HOST=${SMTP_HOST} - - SMTP_PORT=${SMTP_PORT} - - SMTP_SECURE=${SMTP_SECURE} - - SMTP_USER=${SMTP_USER} - - SMTP_PASS=${SMTP_PASS} - - SMTP_LOGGING=${SMTP_LOGGING} - - SMTP_DEBUG=${SMTP_DEBUG} - - SMTP_TLS_REJECT_UNAUTHORIZED=${SMTP_TLS_REJECT_UNAUTHORIZED} - - SMTP_SECURE_CONNECTION=${SMTP_SECURE_CONNECTION} - - ENV_MODE=${ENV_MODE} - - SMTP_TLS_CIPHERS={SMTP_TLS_CIPHERS} - command: ["npm", "run", "start:server"] - deploy: - replicas: 1 #change here if u want to have more replicas. Cant find a way to set via variable right now - networks: - - backend - depends_on: - postgres: - condition: service_healthy - phoenix-redis: - condition: service_healthy - volumes: - - "./assets:/usr/src/app/packages/dev-server/assets" - - "./server_custom:/usr/src/app/packages/dev-server/custom" - phoenix-worker: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - networks: - - backend - environment: - - DB_HOST=phoenixDB - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - DB_USERNAME=postgres - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - REDIS_PASSWORD=${REDIS_PASSWORD} - command: ["npm", "run", "start:worker"] - depends_on: - postgres: - condition: service_healthy - volumes: - - "./assets:/usr/src/app/packages/dev-server/assets" - - "./server_custom:/usr/src/app/packages/dev-server/custom" - phoenix-redis: - image: 'bitnami/redis:latest' - container_name: redis - command: /opt/bitnami/scripts/redis/run.sh --maxmemory 100mb - user: root - networks: - - backend - restart: always - environment: - ALLOW_EMPTY_PASSWORD: "no" - REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL,CONFIG - REDIS_PASSWORD: ${REDIS_PASSWORD} - healthcheck: - test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] - volumes: - - "./redis/data:/bitnami/redis/data" - https_portal: - container_name: https_portal - image: "steveltn/https-portal:1.21" - restart: unless-stopped - user: "root" - networks: - - frontend # [ PgAdmin, Phoenix-App ] - - external # [ Outside of the World] - ports: - - "80:80" - - "443:443" - # - host:container - environment: - STAGE: "production" # Use Let's Encrypt production server - WEBSOCKET: "true" # Enable websocket support - DEBUG: "true" - RENEW_MARGIN_DAYS: 30 - CLIENT_MAX_BODY_SIZE: 0 - # FORCE_RENEW: 'true' - DOMAINS: - volumes: - - ./https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs - - ./https_portal/log:/var/log/nginx # nginx logs - depends_on: - - phoenix-app - - phoenix-system - - pgadmin - - phoenix-redis - - postgres - -networks: - backend: - driver: bridge - external: false - - frontend: - driver: bridge - external: false - - external: - driver: bridge - external: true diff --git a/docker-compose.yaml.2178008.2024-01-14@22:00:26~ b/docker-compose.yaml.2178008.2024-01-14@22:00:26~ deleted file mode 100644 index 6853378..0000000 --- a/docker-compose.yaml.2178008.2024-01-14@22:00:26~ +++ /dev/null @@ -1,161 +0,0 @@ -version: "2.1" -services: - postgres: - restart: always - image: "postgres:15.1-alpine" - container_name: phoenixDB - networks: - - backend - ports: - - "5432:5432" - environment: - - DEBUG=false - - POSTGRES_DB=phoenix - - "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" - volumes: - - "./database:/var/lib/postgresql/data" - healthcheck: - test: - - CMD-SHELL - - pg_isready -U postgres - interval: 5s - timeout: 2s - retries: 5 - pgadmin: - image: dpage/pgadmin4 - container_name: pgadmin_container - networks: - - backend - - frontend - environment: - PGADMIN_DEFAULT_EMAIL: "pgadmin4@pgadmin.org" - PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} - PGADMIN_CONFIG_SERVER_MODE: 'False' - ports: - - "${PGADMIN_PORT:-5050}:80" - volumes: - - "./pgadmin:/var/lib/pgadmin" - phoenix-app: - restart: always - image: "yurimatoslima/phoenix-frontend:alpha" - container_name: phoenixApp - volumes: - - "./app_custom:/usr/share/nginx/html/assets/custom" - networks: - - backend # primary network [external] - - frontend # internal network - depends_on: - - phoenix-system - phoenix-system: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - environment: - - "DB_HOST=phoenixDB" - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - "DB_USERNAME=postgres" - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - "REDIS_PASSWORD=${REDIS_PASSWORD}" - - RUN_JOB_QUEUE=${RUN_JOB_QUEUE} - - SMTP_FROM=${SMTP_FROM} - - SMTP_TYPE=${SMTP_TYPE} - - SMTP_NAME=${SMTP_NAME} - - SMTP_HOST=${SMTP_HOST} - - SMTP_PORT=${SMTP_PORT} - - SMTP_SECURE=${SMTP_SECURE} - - SMTP_USER=${SMTP_USER} - - SMTP_PASS=${SMTP_PASS} - - SMTP_LOGGING=${SMTP_LOGGING} - - SMTP_DEBUG=${SMTP_DEBUG} - - SMTP_TLS_REJECT_UNAUTHORIZED=${SMTP_TLS_REJECT_UNAUTHORIZED} - - SMTP_SECURE_CONNECTION=${SMTP_SECURE_CONNECTION} - - ENV_MODE=${ENV_MODE} - - SMTP_TLS_CIPHERS={SMTP_TLS_CIPHERS} - command: ["npm", "run", "start:server"] - deploy: - replicas: 1 #change here if u want to have more replicas. Cant find a way to set via variable right now - networks: - - backend - depends_on: - postgres: - condition: service_healthy - phoenix-redis: - condition: service_healthy - volumes: - - "./assets:/usr/src/app/packages/dev-server/assets" - - "./server_custom:/usr/src/app/packages/dev-server/custom" - phoenix-worker: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - networks: - - backend - environment: - - DB_HOST=phoenixDB - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - DB_USERNAME=postgres - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - REDIS_PASSWORD=${REDIS_PASSWORD} - command: ["npm", "run", "start:worker"] - depends_on: - postgres: - condition: service_healthy - volumes: - - "./assets:/usr/src/app/packages/dev-server/assets" - - "./server_custom:/usr/src/app/packages/dev-server/custom" - phoenix-redis: - image: 'bitnami/redis:latest' - container_name: redis - command: /opt/bitnami/scripts/redis/run.sh --maxmemory 100mb - user: root - networks: - - backend - restart: always - environment: - ALLOW_EMPTY_PASSWORD: "no" - REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL,CONFIG - REDIS_PASSWORD: ${REDIS_PASSWORD} - healthcheck: - test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] - volumes: - - "./redis/data:/bitnami/redis/data" - https_portal: - container_name: https_portal - image: "steveltn/https-portal:1.21" - restart: unless-stopped - user: "root" - networks: - - frontend # [ PgAdmin, Phoenix-App ] - - external # [ Outside of the World] - ports: - - "80:80" - - "443:443" - # - host:container - environment: - STAGE: "production" # Use Let's Encrypt production server - WEBSOCKET: "true" # Enable websocket support - DEBUG: "true" - RENEW_MARGIN_DAYS: 30 - CLIENT_MAX_BODY_SIZE: 0 - # FORCE_RENEW: 'true' - DOMAINS: - volumes: - - ./https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs - - ./https_portal/log:/var/log/nginx # nginx logs - depends_on: - - phoenix-app - - phoenix-system - - pgadmin - - phoenix-redis - - postgres - -networks: - backend: - driver: bridge - external: false - - frontend: - driver: bridge - external: false - - external: - driver: bridge - external: true diff --git a/docker-compose.yaml.2179052.2024-01-14@22:01:25~ b/docker-compose.yaml.2179052.2024-01-14@22:01:25~ deleted file mode 100644 index 6853378..0000000 --- a/docker-compose.yaml.2179052.2024-01-14@22:01:25~ +++ /dev/null @@ -1,161 +0,0 @@ -version: "2.1" -services: - postgres: - restart: always - image: "postgres:15.1-alpine" - container_name: phoenixDB - networks: - - backend - ports: - - "5432:5432" - environment: - - DEBUG=false - - POSTGRES_DB=phoenix - - "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" - volumes: - - "./database:/var/lib/postgresql/data" - healthcheck: - test: - - CMD-SHELL - - pg_isready -U postgres - interval: 5s - timeout: 2s - retries: 5 - pgadmin: - image: dpage/pgadmin4 - container_name: pgadmin_container - networks: - - backend - - frontend - environment: - PGADMIN_DEFAULT_EMAIL: "pgadmin4@pgadmin.org" - PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} - PGADMIN_CONFIG_SERVER_MODE: 'False' - ports: - - "${PGADMIN_PORT:-5050}:80" - volumes: - - "./pgadmin:/var/lib/pgadmin" - phoenix-app: - restart: always - image: "yurimatoslima/phoenix-frontend:alpha" - container_name: phoenixApp - volumes: - - "./app_custom:/usr/share/nginx/html/assets/custom" - networks: - - backend # primary network [external] - - frontend # internal network - depends_on: - - phoenix-system - phoenix-system: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - environment: - - "DB_HOST=phoenixDB" - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - "DB_USERNAME=postgres" - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - "REDIS_PASSWORD=${REDIS_PASSWORD}" - - RUN_JOB_QUEUE=${RUN_JOB_QUEUE} - - SMTP_FROM=${SMTP_FROM} - - SMTP_TYPE=${SMTP_TYPE} - - SMTP_NAME=${SMTP_NAME} - - SMTP_HOST=${SMTP_HOST} - - SMTP_PORT=${SMTP_PORT} - - SMTP_SECURE=${SMTP_SECURE} - - SMTP_USER=${SMTP_USER} - - SMTP_PASS=${SMTP_PASS} - - SMTP_LOGGING=${SMTP_LOGGING} - - SMTP_DEBUG=${SMTP_DEBUG} - - SMTP_TLS_REJECT_UNAUTHORIZED=${SMTP_TLS_REJECT_UNAUTHORIZED} - - SMTP_SECURE_CONNECTION=${SMTP_SECURE_CONNECTION} - - ENV_MODE=${ENV_MODE} - - SMTP_TLS_CIPHERS={SMTP_TLS_CIPHERS} - command: ["npm", "run", "start:server"] - deploy: - replicas: 1 #change here if u want to have more replicas. Cant find a way to set via variable right now - networks: - - backend - depends_on: - postgres: - condition: service_healthy - phoenix-redis: - condition: service_healthy - volumes: - - "./assets:/usr/src/app/packages/dev-server/assets" - - "./server_custom:/usr/src/app/packages/dev-server/custom" - phoenix-worker: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - networks: - - backend - environment: - - DB_HOST=phoenixDB - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - DB_USERNAME=postgres - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - REDIS_PASSWORD=${REDIS_PASSWORD} - command: ["npm", "run", "start:worker"] - depends_on: - postgres: - condition: service_healthy - volumes: - - "./assets:/usr/src/app/packages/dev-server/assets" - - "./server_custom:/usr/src/app/packages/dev-server/custom" - phoenix-redis: - image: 'bitnami/redis:latest' - container_name: redis - command: /opt/bitnami/scripts/redis/run.sh --maxmemory 100mb - user: root - networks: - - backend - restart: always - environment: - ALLOW_EMPTY_PASSWORD: "no" - REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL,CONFIG - REDIS_PASSWORD: ${REDIS_PASSWORD} - healthcheck: - test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] - volumes: - - "./redis/data:/bitnami/redis/data" - https_portal: - container_name: https_portal - image: "steveltn/https-portal:1.21" - restart: unless-stopped - user: "root" - networks: - - frontend # [ PgAdmin, Phoenix-App ] - - external # [ Outside of the World] - ports: - - "80:80" - - "443:443" - # - host:container - environment: - STAGE: "production" # Use Let's Encrypt production server - WEBSOCKET: "true" # Enable websocket support - DEBUG: "true" - RENEW_MARGIN_DAYS: 30 - CLIENT_MAX_BODY_SIZE: 0 - # FORCE_RENEW: 'true' - DOMAINS: - volumes: - - ./https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs - - ./https_portal/log:/var/log/nginx # nginx logs - depends_on: - - phoenix-app - - phoenix-system - - pgadmin - - phoenix-redis - - postgres - -networks: - backend: - driver: bridge - external: false - - frontend: - driver: bridge - external: false - - external: - driver: bridge - external: true diff --git a/docker-compose.yaml.2183204.2024-01-14@22:05:16~ b/docker-compose.yaml.2183204.2024-01-14@22:05:16~ deleted file mode 100644 index ec8f078..0000000 --- a/docker-compose.yaml.2183204.2024-01-14@22:05:16~ +++ /dev/null @@ -1,164 +0,0 @@ -version: "2.1" -services: - postgres: - restart: always - image: "postgres:15.1-alpine" - container_name: phoenixDB - networks: - - backend - ports: - - "5432:5432" - environment: - - DEBUG=false - - POSTGRES_DB=phoenix - - "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" - volumes: - - "./database:/var/lib/postgresql/data" - healthcheck: - test: - - CMD-SHELL - - pg_isready -U postgres - interval: 5s - timeout: 2s - retries: 5 - pgadmin: - image: dpage/pgadmin4 - container_name: pgadmin_container - networks: - - backend - - frontend - environment: - PGADMIN_DEFAULT_EMAIL: "pgadmin4@pgadmin.org" - PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} - PGADMIN_CONFIG_SERVER_MODE: 'False' - ports: - - "${PGADMIN_PORT:-5050}:80" - volumes: - - "pgadmin:/var/lib/pgadmin" - phoenix-app: - restart: always - image: "yurimatoslima/phoenix-frontend:alpha" - container_name: phoenixApp - volumes: - - "./app_custom:/usr/share/nginx/html/assets/custom" - networks: - - backend # primary network [external] - - frontend # internal network - depends_on: - - phoenix-system - phoenix-system: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - environment: - - "DB_HOST=phoenixDB" - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - "DB_USERNAME=postgres" - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - "REDIS_PASSWORD=${REDIS_PASSWORD}" - - RUN_JOB_QUEUE=${RUN_JOB_QUEUE} - - SMTP_FROM=${SMTP_FROM} - - SMTP_TYPE=${SMTP_TYPE} - - SMTP_NAME=${SMTP_NAME} - - SMTP_HOST=${SMTP_HOST} - - SMTP_PORT=${SMTP_PORT} - - SMTP_SECURE=${SMTP_SECURE} - - SMTP_USER=${SMTP_USER} - - SMTP_PASS=${SMTP_PASS} - - SMTP_LOGGING=${SMTP_LOGGING} - - SMTP_DEBUG=${SMTP_DEBUG} - - SMTP_TLS_REJECT_UNAUTHORIZED=${SMTP_TLS_REJECT_UNAUTHORIZED} - - SMTP_SECURE_CONNECTION=${SMTP_SECURE_CONNECTION} - - ENV_MODE=${ENV_MODE} - - SMTP_TLS_CIPHERS={SMTP_TLS_CIPHERS} - command: ["npm", "run", "start:server"] - deploy: - replicas: 1 #change here if u want to have more replicas. Cant find a way to set via variable right now - networks: - - backend - depends_on: - postgres: - condition: service_healthy - phoenix-redis: - condition: service_healthy - volumes: - - "./assets:/usr/src/app/packages/dev-server/assets" - - "./server_custom:/usr/src/app/packages/dev-server/custom" - phoenix-worker: - restart: always - image: "yurimatoslima/phoenix-backend:alpha" - networks: - - backend - environment: - - DB_HOST=phoenixDB - - "DB_PASSWORD=${POSTGRES_PASSWORD}" - - DB_USERNAME=postgres - - "SUPER_ADMIN_USER_PASSWORD=${SUPER_ADMIN_USER_PASSWORD}" - - REDIS_PASSWORD=${REDIS_PASSWORD} - command: ["npm", "run", "start:worker"] - depends_on: - postgres: - condition: service_healthy - volumes: - - "./assets:/usr/src/app/packages/dev-server/assets" - - "./server_custom:/usr/src/app/packages/dev-server/custom" - phoenix-redis: - image: 'bitnami/redis:latest' - container_name: redis - command: /opt/bitnami/scripts/redis/run.sh --maxmemory 100mb - user: root - networks: - - backend - restart: always - environment: - ALLOW_EMPTY_PASSWORD: "no" - REDIS_DISABLE_COMMANDS: FLUSHDB,FLUSHALL,CONFIG - REDIS_PASSWORD: ${REDIS_PASSWORD} - healthcheck: - test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] - volumes: - - "./redis/data:/bitnami/redis/data" - https_portal: - container_name: https_portal - image: "steveltn/https-portal:1.21" - restart: unless-stopped - user: "root" - networks: - - frontend # [ PgAdmin, Phoenix-App ] - - external # [ Outside of the World] - ports: - - "80:80" - - "443:443" - # - host:container - environment: - STAGE: "production" # Use Let's Encrypt production server - WEBSOCKET: "true" # Enable websocket support - DEBUG: "true" - RENEW_MARGIN_DAYS: 30 - CLIENT_MAX_BODY_SIZE: 0 - # FORCE_RENEW: 'true' - DOMAINS: - volumes: - - ./https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs - - ./https_portal/log:/var/log/nginx # nginx logs - depends_on: - - phoenix-app - - phoenix-system - - pgadmin - - phoenix-redis - - postgres - -networks: - backend: - driver: bridge - external: false - - frontend: - driver: bridge - external: false - - external: - driver: bridge - external: true - -volumes: - pgadmin: null diff --git a/helper.md b/helper.md new file mode 100644 index 0000000..cb4046e --- /dev/null +++ b/helper.md @@ -0,0 +1 @@ +docker exec -it phx-phoenix-system-1 sh \ No newline at end of file diff --git a/https_portal/data/yuri.phx-erp.de/production/signed.crt b/https_portal/data/yuri.phx-erp.de/production/signed.crt index 8aad31d..b053f48 100644 --- a/https_portal/data/yuri.phx-erp.de/production/signed.crt +++ b/https_portal/data/yuri.phx-erp.de/production/signed.crt @@ -1,31 +1,31 @@ -----BEGIN CERTIFICATE----- -MIIE7zCCA9egAwIBAgISBD7cWXjY1ZYECrfo1Gcdvl3LMA0GCSqGSIb3DQEBCwUA +MIIE7TCCA9WgAwIBAgISBN9fSOkvS54NMLTgeStNS2oTMA0GCSqGSIb3DQEBCwUA MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD -EwNSMTEwHhcNMjQwNzEyMDUzMzI4WhcNMjQxMDEwMDUzMzI3WjAaMRgwFgYDVQQD +EwNSMTEwHhcNMjUwMTA4MDMyMzU2WhcNMjUwNDA4MDMyMzU1WjAaMRgwFgYDVQQD Ew95dXJpLnBoeC1lcnAuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQCkoSgHOsFmtqy02FZoJflGQlqx2Lc9WP12L5i5D/hutP8gpMoEfq6WyHD7Gn25 LR2BTn8ceqMMoArfJs6SsEXT7xdbmWSS9r4pWtbpZLWO/jwtYBbg/lwCTJUbiIvD wwRLtjP+xVlwfuslkgcEdPCD9CaigGkhcLQKgzL2hhwYwBMaA94MVX0rhd8w66zA cwMcwo8VWDb0PwD2TAJqBXupmjMQ8XIob57rC0drO9175Wp2UX13W3m/NaOylKyU Ct7uoClu/LtBXdXG0TmKTSlYdlEkwyWJYBNEnog0QWbsxl4PCaRaMianjgln5BGt -rmBUApxH0qm+Ct1Svw5HdB9tAgMBAAGjggIUMIICEDAOBgNVHQ8BAf8EBAMCBaAw +rmBUApxH0qm+Ct1Svw5HdB9tAgMBAAGjggISMIICDjAOBgNVHQ8BAf8EBAMCBaAw HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYD VR0OBBYEFEKJ54GyFoST7ssNgV+4Qn/QEubyMB8GA1UdIwQYMBaAFMXPRqTq9MPA emyVxC2wXpIvJuO5MFcGCCsGAQUFBwEBBEswSTAiBggrBgEFBQcwAYYWaHR0cDov L3IxMS5vLmxlbmNyLm9yZzAjBggrBgEFBQcwAoYXaHR0cDovL3IxMS5pLmxlbmNy Lm9yZy8wGgYDVR0RBBMwEYIPeXVyaS5waHgtZXJwLmRlMBMGA1UdIAQMMAowCAYG -Z4EMAQIBMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHcAdv+IPwq2+5VRwmHM9Ye6 -NLSkzbsp3GhCCp/mZ0xaOnQAAAGQpaWMoQAABAMASDBGAiEA9tXa8gZHgTL3I3E5 -RpVt8Wnveo7/oLa2hGknrkq5yCoCIQDy0OXXLvNdsFoI/6QIWA+HYF/Df+GCtjbG -OjjG9eqwtQB2AN/hVuuqBa+1nA+GcY2owDJOrlbZbqf1pWoB0cE7vlJcAAABkKWl -jSIAAAQDAEcwRQIhAMRLj4F+a/pR4OAtFMhUS7oFTZ5FvXH4bGVVAmVGGHX9AiBj -d21k2fMggy1Zed2XVJSYthPd5kDIovfs9s17L3oA+zANBgkqhkiG9w0BAQsFAAOC -AQEAQ1NploXEoZyzbUQ7bZUlMRfSfzw9snllPGMHS4q0314N8nkQSBdbkH09cGkd -0oAOoHHB7936arGu1fpCpop0e8IOQbWL9wlKo2jKjs5QLPzFuXQuPamY4QkAcA2+ -+z9tApKgqFwDDN3u5jR0Z0SFuQjiEuH4QNjF7XO0Kzd9Hq3WAIgw3fLRxp348WQo -ol7U0pjdeld1bk7K41Ev4KMHq2NUQqwiIcztB1OjN2BnL6BoZmcYcxKS+XCGxpzM -qODx2T+XEIuY2UK6kCOedMsceQ05pzPmPb/Ehrf/Tg+TFCnaHGgypNxXNSnx5f+T -JeXyLiDQBCQ4O41xfxDkqG/M5w== +Z4EMAQIBMIIBAwYKKwYBBAHWeQIEAgSB9ASB8QDvAHUAouMK5EXvva2bfjjtR2d3 +U9eCW4SU1yteGyzEuVCkR+cAAAGURCZHUAAABAMARjBEAiAxBCBQSJT8mWTph0yI +HQsoR6RFyMExrihZhIKpkMoRwwIgftlv5sQPZnto1KMuwrKwQXUdMej2Pb2/QgUM +eIyplEQAdgDM+w9qhXEJZf6Vm1PO6bJ8IumFXA2XjbapflTA/kwNsAAAAZREJkdh +AAAEAwBHMEUCIG02M+HEsqp2J7GT9Lkce/1FJKyFOo3lupETe/wvtfzQAiEA7PnP +MRZ481CHAg6HMYBv/lcSCBBOsjt6NASP8ZIgNvQwDQYJKoZIhvcNAQELBQADggEB +AFAeYvfig+Eb9IZlLxAXVKpnnIc11D3Tyvfe/c3YNbv2krXWd7n64TMEdE8IqzLl +Ew/2R7v7Zm8dsgnmWET2TGDT0O6ZAzeYTictTqaYkg0WMGGq1gfovjUt6E3aGhYm +TaacT0ypXm6zE0JpotXkJESNbfYx+zO0VNTCxYtfcTxeGFvqG41ZljvB5tWx2ODU +dlYh9omk1OnIgxY6LCdNdhIpNIfcswx0FN6dLc4hNIlZeUwAznao0/DB7M9kKKbL +JEISF1PD7+qgBCOLnKxylYx+aV3Bmg9jaUzySB2j95MLJirPYqqDa4ObU1UKa9v0 +RWOYa6/PjG44rdUjvU6GsLY= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- diff --git a/server_custom/assets/preview/79/yurilima__02__preview.png b/server_custom/assets/preview/79/yurilima__02__preview.png deleted file mode 100644 index 6eb558e1c95924162ebe4faaeea88779e87c0674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13263 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 diff --git a/server_custom/assets/source/bf/yurilima__02.png b/server_custom/assets/source/bf/yurilima__02.png deleted file mode 100644 index 35082a905f3338589b208b75b763021697d75146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12998 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 Nip+q!=rb2K5u3FhU|(Jd#pFm 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 NmQ-Da2;q70KLC<%&!7MR diff --git a/server_custom/config.ts b/server_custom/config.ts index 574575c..e3cb748 100644 --- a/server_custom/config.ts +++ b/server_custom/config.ts @@ -2,10 +2,13 @@ import path from 'path'; import { ConnectionOptions } from 'typeorm'; // import { DataSourceOptions } from 'typeorm'; -import { WinstonLogger, RedisSessionCachePlugin, LogLevel, TypeOrmLogger, SystemConfig, DefaultJobQueuePlugin, TypeORMHealthCheckStrategy } from '@phoenix/core'; +import { WinstonLogger, RedisSessionCachePlugin, LogLevel, TypeOrmLogger, SystemConfig, DefaultJobQueuePlugin } from '@phoenix/core'; import { AssetServerPlugin } from '@phoenix/asset-server-plugin'; -import { ADMIN_API_PATH, API_PORT, SHOP_API_PATH, SUPER_ADMIN_USER_IDENTIFIER, WORKER_PORT } from '@phoenix/common'; +import { ADMIN_API_PATH, API_PORT, SHOP_API_PATH, SUPER_ADMIN_USER_IDENTIFIER } from '@phoenix/common'; import { EmailPlugin, FileBasedTemplateLoader, defaultEmailHandlers } from '@phoenix/email-plugin'; +import { BillBeePlugin } from "@phoenix/bill-bee-plugin"; +import { ChannelPilotProPlugin } from "@phoenix/channel-pilot-pro-plugin"; +import { ShopifyPlugin } from '@phoenix/shopify-plugin'; //import { BonnAPIPlugin } from '../plugins/bonn-api-plugin/bonn-api-plugin.module'; // import { DefaultJobQueuePlugin } from '@phoenix/system_service'; @@ -15,7 +18,6 @@ import { EmailPlugin, FileBasedTemplateLoader, defaultEmailHandlers } from '@pho export const customConfig: SystemConfig = { apiOptions: { port: API_PORT, - workerPort: WORKER_PORT, // sslPort: API_SSL_PORT, //sslCertPath: path.join(__dirname, '../secrets/certificate.crt'), //sslKeyPath: path.join(__dirname, '../secrets/certificate.key'), @@ -100,6 +102,47 @@ export const customConfig: SystemConfig = { changeEmailAddressUrl: 'http://localhost:4201/change-email-address', } }), + BillBeePlugin.init({ + active: process.env.BILL_BEE_ACTIVE === 'true', + apiUrl: process.env.BILL_BEE_API_URL, + apiKey: process.env.BILL_BEE_API_KEY, + username: process.env.BILL_BEE_API_USERNAME, + password: process.env.BILL_BEE_API_SECRET, + header: { + 'X-Billbee-Api-Key': process.env.BILL_BEE_API_KEY, + 'Authorization': `Basic ${Buffer.from(`${process.env.BILL_BEE_API_USERNAME}:${process.env.BILL_BEE_API_SECRET}`).toString('base64')}`, + } + }), + ChannelPilotProPlugin.init({ + active: process.env.CHANNEL_PILOT_PRO_ACTIVE === 'true', + connectionInfo: { + url: process.env.CHANNEL_PILOT_PRO_URL, + apiMerchantId: process.env.CHANNEL_PILOT_PRO_API_MERCHANT_ID, + apiToken: process.env.CHANNEL_PILOT_PRO_API_TOKEN, + access_token: process.env.CHANNEL_PILOT_PRO_ACCESS_TOKEN, + expiredAt: process.env.CHANNEL_PILOT_PRO_EXPIRED_AT, + tokenType: 'Bearer' + }, + header: { + 'Authorization': `Bearer ${process.env.CHANNEL_PILOT_PRO_ACCESS_TOKEN}`, + } + }), + ShopifyPlugin.init({ + active: process.env.SHOPIFY_ACTIVE === 'true', + connectionInfo: { + url: process.env.SHOPIFY_HOST_NAME, + apiKey: process.env.SHOPIFY_API_KEY, + apiSecretKey: process.env.SHOPIFY_API_SECRET, + token: process.env.SHOPIFY_TOKEN, + // scopes: process.env.SHOPIFY_SCOPES.split(','), + hostName: process.env.SHOPIFY_HOST_NAME, + hostScheme: process.env.SHOPIFY_HOST_SCHEME === 'https' ? 'https' : 'http', + isEmbeddedApp: process.env.SHOPIFY_IS_EMBEDDED_APP === 'true', + header: { + 'X-Shopify-Access-Token': process.env.SHOPIFY_TOKEN, + } + } + }), // DefaultStoragePlaceRankPlugin.init({}) // new DefaultSearchPlugin(), // new ElasticsearchPlugin({ @@ -117,11 +160,7 @@ export const customConfig: SystemConfig = { // new AdminUiPlugin({ // port: 5001, // }), - ], - systemOptions: { - healthChecks: [new TypeORMHealthCheckStrategy(null, { key: 'database', timeout: 1000 })], - errorHandlers: [], - }, + ] // ApolloEngineApiKey: "service:Logic-Bits-2900:5w1aCP5YUtF-1ErRG0KNQw" }; @@ -149,7 +188,7 @@ function getDbConfig(): ConnectionOptions { case 'postgres': console.log('Using postgres connection at ' + dbHost); return { - synchronize: true, + synchronize: false, type: 'postgres', //host: '127.0.0.1', host: dbHost,