Loading .deploy/admin-web-angular/Dockerfile +56 −23 Original line number Diff line number Diff line Loading @@ -4,6 +4,13 @@ ARG API_BASE_URL ARG API_HOST ARG API_PORT ARG CLIENT_BASE_URL ARG DEMO ARG WEB_HOST ARG WEB_PORT ARG HTTPS_SERVICES_ENDPOINT ARG SERVICES_ENDPOINT ARG GQL_ENDPOINT ARG GQL_SUBSCRIPTIONS_ENDPOINT ARG SENTRY_DSN ARG CHATWOOT_SDK_TOKEN ARG CLOUDINARY_CLOUD_NAME Loading @@ -13,9 +20,22 @@ ARG GOOGLE_PLACE_AUTOCOMPLETE ARG DEFAULT_LATITUDE ARG DEFAULT_LONGITUDE ARG DEFAULT_CURRENCY ARG DEMO ARG WEB_HOST ARG WEB_PORT ARG DEFAULT_LANGUAGE ARG CURRENCY_SYMBOL ARG NO_INTERNET_LOGO ARG MAP_MERCHANT_ICON_LINK ARG MAP_USER_ICON_LINK ARG MAP_CARRIER_ICON_LINK ARG API_FILE_UPLOAD_URL ARG COMPANY_NAME ARG COMPANY_SITE_LINK ARG COMPANY_GITHUB_LINK ARG COMPANY_FACEBOOK_LINK ARG COMPANY_TWITTER_LINK ARG COMPANY_LINKEDIN_LINK ARG GENERATE_PASSWORD_CHARSET ARG SETTINGS_APP_TYPE ARG SETTINGS_MAINTENANCE_API_URL FROM node:16-alpine3.14 AS dependencies Loading Loading @@ -71,21 +91,6 @@ COPY --chown=node:node --from=development /srv/ever . ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=2048"} ENV NODE_ENV=${NODE_ENV:-production} ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000} ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200} ENV SENTRY_DSN=${SENTRY_DSN} ENV CHATWOOT_SDK_TOKEN=${CHATWOOT_SDK_TOKEN} ENV CLOUDINARY_CLOUD_NAME=${CLOUDINARY_CLOUD_NAME} ENV CLOUDINARY_API_KEY=${CLOUDINARY_API_KEY} ENV GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY} ENV GOOGLE_PLACE_AUTOCOMPLETE=${GOOGLE_PLACE_AUTOCOMPLETE:-false} ENV DEFAULT_LATITUDE=${DEFAULT_LATITUDE:-42.6459136} ENV DEFAULT_LONGITUDE=${DEFAULT_LONGITUDE:-23.3332736} ENV DEFAULT_CURRENCY=${DEFAULT_CURRENCY:-USD}_DSN} ENV DEMO=${DEMO:-false} ENV IS_DOCKER=true RUN yarn build:admin Loading @@ -104,17 +109,45 @@ COPY --chown=nginx:nginx --from=build /srv/ever/packages/admin-web-angular/build RUN chmod +x wait entrypoint.compose.sh entrypoint.prod.sh && \ chmod a+rw /etc/nginx/conf.d/compose.conf.template /etc/nginx/conf.d/prod.conf.template ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000} ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200} ENV SENTRY_DSN=${SENTRY_DSN} ENV API_HOST=${API_HOST:-api} ENV API_PORT=${API_PORT:-3000} ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000} ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200} ENV WEB_HOST=${WEB_HOST:-0.0.0.0} ENV WEB_PORT=${WEB_PORT:-4200} ENV DEMO=${DEMO:-false} ENV HTTPS_SERVICES_ENDPOINT=${HTTPS_SERVICES_ENDPOINT} ENV SERVICES_ENDPOINT=${SERVICES_ENDPOINT} ENV GQL_ENDPOINT=${GQL_ENDPOINT} ENV GQL_SUBSCRIPTIONS_ENDPOINT=${GQL_SUBSCRIPTIONS_ENDPOINT} ENV SENTRY_DSN=${SENTRY_DSN} ENV CHATWOOT_SDK_TOKEN=${CHATWOOT_SDK_TOKEN} ENV CLOUDINARY_CLOUD_NAME=${CLOUDINARY_CLOUD_NAME} ENV CLOUDINARY_API_KEY=${CLOUDINARY_API_KEY} ENV GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY} ENV GOOGLE_PLACE_AUTOCOMPLETE=${GOOGLE_PLACE_AUTOCOMPLETE:-false} ENV DEFAULT_LATITUDE=${DEFAULT_LATITUDE:-42.6459136} ENV DEFAULT_LONGITUDE=${DEFAULT_LONGITUDE:-23.3332736} ENV DEFAULT_CURRENCY=${DEFAULT_CURRENCY:-USD}_DSN} ENV DEFAULT_LANGUAGE=${DEFAULT_LANGUAGE} ENV CURRENCY_SYMBOL=${CURRENCY_SYMBOL} ENV NO_INTERNET_LOGO=${NO_INTERNET_LOGO} ENV MAP_MERCHANT_ICON_LINK=${MAP_MERCHANT_ICON_LINK} ENV MAP_USER_ICON_LINK=${MAP_USER_ICON_LINK} ENV MAP_CARRIER_ICON_LINK=${MAP_CARRIER_ICON_LINK} ENV API_FILE_UPLOAD_URL=${API_FILE_UPLOAD_URL} ENV COMPANY_NAME=${COMPANY_NAME} ENV COMPANY_SITE_LINK=${COMPANY_SITE_LINK} ENV COMPANY_GITHUB_LINK=${COMPANY_GITHUB_LINK} ENV COMPANY_FACEBOOK_LINK=${COMPANY_FACEBOOK_LINK} ENV COMPANY_TWITTER_LINK=${COMPANY_TWITTER_LINK} ENV COMPANY_LINKEDIN_LINK=${COMPANY_LINKEDIN_LINK} ENV GENERATE_PASSWORD_CHARSET=${GENERATE_PASSWORD_CHARSET} ENV SETTINGS_APP_TYPE=${SETTINGS_APP_TYPE} ENV SETTINGS_MAINTENANCE_API_URL=${SETTINGS_MAINTENANCE_API_URL} EXPOSE ${WEB_PORT} ENTRYPOINT [ "./entrypoint.prod.sh" ] Loading .deploy/admin-web-angular/entrypoint.compose.sh +25 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,16 @@ export WAIT_HOSTS=$API_HOST:$API_PORT # In production we should replace some values in generated JS code sed -i "s#DOCKER_API_BASE_URL#$API_BASE_URL#g" *.js sed -i "s#DOCKER_CLIENT_BASE_URL#$CLIENT_BASE_URL#g" *.js sed -i "s#DOCKER_API_HOST#$API_HOST#g" *.js sed -i "s#DOCKER_API_PORT#$API_PORT#g" *.js sed -i "s#DOCKER_WEB_HOST#$WEB_HOST#g" *.js sed -i "s#DOCKER_WEB_PORT#$WEB_PORT#g" *.js sed -i "s#DOCKER_HTTPS_SERVICES_ENDPOINT#$HTTPS_SERVICES_ENDPOINT#g" *.js sed -i "s#DOCKER_SERVICES_ENDPOINT#$SERVICES_ENDPOINT#g" *.js sed -i "s#DOCKER_GQL_ENDPOINT#$GQL_ENDPOINT#g" *.js sed -i "s#DOCKER_GQL_SUBSCRIPTIONS_ENDPOINT#$GQL_SUBSCRIPTIONS_ENDPOINT#g" *.js sed -i "s#DOCKER_SENTRY_DSN#$SENTRY_DSN#g" *.js sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js sed -i "s#DOCKER_CLOUDINARY_CLOUD_NAME#$CLOUDINARY_CLOUD_NAME#g" *.js sed -i "s#DOCKER_CLOUDINARY_API_KEY#$CLOUDINARY_API_KEY#g" *.js sed -i "s#DOCKER_GOOGLE_MAPS_API_KEY#$GOOGLE_MAPS_API_KEY#g" *.js Loading @@ -16,7 +25,22 @@ sed -i "s#DOCKER_GOOGLE_PLACE_AUTOCOMPLETE#$GOOGLE_PLACE_AUTOCOMPLETE#g" *.js sed -i "s#DOCKER_DEFAULT_LATITUDE#$DEFAULT_LATITUDE#g" *.js sed -i "s#DOCKER_DEFAULT_LONGITUDE#$DEFAULT_LONGITUDE#g" *.js sed -i "s#DOCKER_DEFAULT_CURRENCY#$DEFAULT_CURRENCY#g" *.js sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js sed -i "s#DOCKER_DEFAULT_LANGUAGE#$DEFAULT_LANGUAGE#g" *.js sed -i "s#DOCKER_CURRENCY_SYMBOL#$CURRENCY_SYMBOL#g" *.js sed -i "s#DOCKER_NO_INTERNET_LOGO#$NO_INTERNET_LOGO#g" *.js sed -i "s#DOCKER_MAP_MERCHANT_ICON_LINK#$MAP_MERCHANT_ICON_LINK#g" *.js sed -i "s#DOCKER_MAP_USER_ICON_LINK#$MAP_USER_ICON_LINK#g" *.js sed -i "s#DOCKER_MAP_CARRIER_ICON_LINK#$MAP_CARRIER_ICON_LINK#g" *.js sed -i "s#DOCKER_API_FILE_UPLOAD_URL#$API_FILE_UPLOAD_URL#g" *.js sed -i "s#DOCKER_COMPANY_NAME#$COMPANY_NAME#g" *.js sed -i "s#DOCKER_COMPANY_SITE_LINK#$COMPANY_SITE_LINK#g" *.js sed -i "s#DOCKER_COMPANY_GITHUB_LINK#$COMPANY_GITHUB_LINK#g" *.js sed -i "s#DOCKER_COMPANY_FACEBOOK_LINK#$COMPANY_FACEBOOK_LINK#g" *.js sed -i "s#DOCKER_COMPANY_TWITTER_LINK#$COMPANY_TWITTER_LINK#g" *.js sed -i "s#DOCKER_COMPANY_LINKEDIN_LINK#$COMPANY_LINKEDIN_LINK#g" *.js sed -i "s#DOCKER_GENERATE_PASSWORD_CHARSET#$GENERATE_PASSWORD_CHARSET#g" *.js sed -i "s#DOCKER_SETTINGS_APP_TYPE#$SETTINGS_APP_TYPE#g" *.js sed -i "s#DOCKER_SETTINGS_MAINTENANCE_API_URL#$SETTINGS_MAINTENANCE_API_URL#g" *.js sed -i "s#DOCKER_DEMO#$DEMO#g" *.js envsubst '${API_HOST} ${API_PORT}' < /etc/nginx/conf.d/compose.conf.template > /etc/nginx/nginx.conf Loading .deploy/admin-web-angular/entrypoint.prod.sh +25 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,16 @@ set -ex # In production we should replace some values in generated JS code sed -i "s#DOCKER_API_BASE_URL#$API_BASE_URL#g" *.js sed -i "s#DOCKER_CLIENT_BASE_URL#$CLIENT_BASE_URL#g" *.js sed -i "s#DOCKER_API_HOST#$API_HOST#g" *.js sed -i "s#DOCKER_API_PORT#$API_PORT#g" *.js sed -i "s#DOCKER_WEB_HOST#$WEB_HOST#g" *.js sed -i "s#DOCKER_WEB_PORT#$WEB_PORT#g" *.js sed -i "s#DOCKER_HTTPS_SERVICES_ENDPOINT#$HTTPS_SERVICES_ENDPOINT#g" *.js sed -i "s#DOCKER_SERVICES_ENDPOINT#$SERVICES_ENDPOINT#g" *.js sed -i "s#DOCKER_GQL_ENDPOINT#$GQL_ENDPOINT#g" *.js sed -i "s#DOCKER_GQL_SUBSCRIPTIONS_ENDPOINT#$GQL_SUBSCRIPTIONS_ENDPOINT#g" *.js sed -i "s#DOCKER_SENTRY_DSN#$SENTRY_DSN#g" *.js sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js sed -i "s#DOCKER_CLOUDINARY_CLOUD_NAME#$CLOUDINARY_CLOUD_NAME#g" *.js sed -i "s#DOCKER_CLOUDINARY_API_KEY#$CLOUDINARY_API_KEY#g" *.js sed -i "s#DOCKER_GOOGLE_MAPS_API_KEY#$GOOGLE_MAPS_API_KEY#g" *.js Loading @@ -14,7 +23,22 @@ sed -i "s#DOCKER_GOOGLE_PLACE_AUTOCOMPLETE#$GOOGLE_PLACE_AUTOCOMPLETE#g" *.js sed -i "s#DOCKER_DEFAULT_LATITUDE#$DEFAULT_LATITUDE#g" *.js sed -i "s#DOCKER_DEFAULT_LONGITUDE#$DEFAULT_LONGITUDE#g" *.js sed -i "s#DOCKER_DEFAULT_CURRENCY#$DEFAULT_CURRENCY#g" *.js sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js sed -i "s#DOCKER_DEFAULT_LANGUAGE#$DEFAULT_LANGUAGE#g" *.js sed -i "s#DOCKER_CURRENCY_SYMBOL#$CURRENCY_SYMBOL#g" *.js sed -i "s#DOCKER_NO_INTERNET_LOGO#$NO_INTERNET_LOGO#g" *.js sed -i "s#DOCKER_MAP_MERCHANT_ICON_LINK#$MAP_MERCHANT_ICON_LINK#g" *.js sed -i "s#DOCKER_MAP_USER_ICON_LINK#$MAP_USER_ICON_LINK#g" *.js sed -i "s#DOCKER_MAP_CARRIER_ICON_LINK#$MAP_CARRIER_ICON_LINK#g" *.js sed -i "s#DOCKER_API_FILE_UPLOAD_URL#$API_FILE_UPLOAD_URL#g" *.js sed -i "s#DOCKER_COMPANY_NAME#$COMPANY_NAME#g" *.js sed -i "s#DOCKER_COMPANY_SITE_LINK#$COMPANY_SITE_LINK#g" *.js sed -i "s#DOCKER_COMPANY_GITHUB_LINK#$COMPANY_GITHUB_LINK#g" *.js sed -i "s#DOCKER_COMPANY_FACEBOOK_LINK#$COMPANY_FACEBOOK_LINK#g" *.js sed -i "s#DOCKER_COMPANY_TWITTER_LINK#$COMPANY_TWITTER_LINK#g" *.js sed -i "s#DOCKER_COMPANY_LINKEDIN_LINK#$COMPANY_LINKEDIN_LINK#g" *.js sed -i "s#DOCKER_GENERATE_PASSWORD_CHARSET#$GENERATE_PASSWORD_CHARSET#g" *.js sed -i "s#DOCKER_SETTINGS_APP_TYPE#$SETTINGS_APP_TYPE#g" *.js sed -i "s#DOCKER_SETTINGS_MAINTENANCE_API_URL#$SETTINGS_MAINTENANCE_API_URL#g" *.js sed -i "s#DOCKER_DEMO#$DEMO#g" *.js # We may not need to use that env vars now in nginx.config, but we may want later. Loading .deploy/k8s/k8s-manifest.demo.yaml +22 −3 Original line number Diff line number Diff line Loading @@ -121,20 +121,38 @@ metadata: annotations: service.beta.kubernetes.io/do-loadbalancer-name: 'apidemo.ever.co' service.beta.kubernetes.io/do-loadbalancer-protocol: 'http2' service.beta.kubernetes.io/do-loadbalancer-http2-ports: '443' # GraphQL Subscriptions use WebSockets on Port 5050 service.beta.kubernetes.io/do-loadbalancer-http-ports: '5050' # Rest API works on 443, GraphQL API works on 5555 service.beta.kubernetes.io/do-loadbalancer-http2-ports: '443,5555' # Replace with your Certificate Id. You can get a list of Ids with 'doctl compute certificate list' service.beta.kubernetes.io/do-loadbalancer-certificate-id: 'a93346c1-d63b-4c33-84c5-4589787428ca' service.beta.kubernetes.io/do-loadbalancer-size-slug: 'lb-small' service.beta.kubernetes.io/do-loadbalancer-hostname: 'apidemo.ever.co' service.beta.kubernetes.io/do-loadbalancer-sticky-sessions-type: 'cookies' service.beta.kubernetes.io/do-loadbalancer-sticky-sessions-cookie-name: 'route' service.beta.kubernetes.io/do-loadbalancer-sticky-sessions-cookie-ttl: '34650' spec: type: LoadBalancer selector: app: ever-demo-api ports: - name: http - name: rest_api_http protocol: TCP port: 443 targetPort: 5500 - name: gql_api_http protocol: TCP port: 5555 targetPort: 5555 - name: gql_subscriptions_ws protocol: TCP port: 5050 targetPort: 5050 --- apiVersion: apps/v1 Loading Loading @@ -168,6 +186,7 @@ spec: # value: '5501' - name: GQLPORT value: '5555' # WebSockets (WS) used for GraphQL Subscriptions - name: GQLPORT_SUBSCRIPTIONS value: '5050' - name: ADMIN_PASSWORD_RESET Loading Loading @@ -239,7 +258,7 @@ spec: # - name: SERVICES_ENDPOINT # value: '' - name: GQL_ENDPOINT value: 'http://apidemo.ever.co:5555/graphql' value: 'https://apidemo.ever.co:5555/graphql' - name: GQL_SUBSCRIPTIONS_ENDPOINT value: 'ws://apidemo.ever.co:5050/subscriptions' - name: SENTRY_DSN Loading .vscode/settings.json +1 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ "cSpell.words": [ "AGPL", "changeme", "CLOUDINARY", "Codegen", "CQRS", "devkit", Loading Loading
.deploy/admin-web-angular/Dockerfile +56 −23 Original line number Diff line number Diff line Loading @@ -4,6 +4,13 @@ ARG API_BASE_URL ARG API_HOST ARG API_PORT ARG CLIENT_BASE_URL ARG DEMO ARG WEB_HOST ARG WEB_PORT ARG HTTPS_SERVICES_ENDPOINT ARG SERVICES_ENDPOINT ARG GQL_ENDPOINT ARG GQL_SUBSCRIPTIONS_ENDPOINT ARG SENTRY_DSN ARG CHATWOOT_SDK_TOKEN ARG CLOUDINARY_CLOUD_NAME Loading @@ -13,9 +20,22 @@ ARG GOOGLE_PLACE_AUTOCOMPLETE ARG DEFAULT_LATITUDE ARG DEFAULT_LONGITUDE ARG DEFAULT_CURRENCY ARG DEMO ARG WEB_HOST ARG WEB_PORT ARG DEFAULT_LANGUAGE ARG CURRENCY_SYMBOL ARG NO_INTERNET_LOGO ARG MAP_MERCHANT_ICON_LINK ARG MAP_USER_ICON_LINK ARG MAP_CARRIER_ICON_LINK ARG API_FILE_UPLOAD_URL ARG COMPANY_NAME ARG COMPANY_SITE_LINK ARG COMPANY_GITHUB_LINK ARG COMPANY_FACEBOOK_LINK ARG COMPANY_TWITTER_LINK ARG COMPANY_LINKEDIN_LINK ARG GENERATE_PASSWORD_CHARSET ARG SETTINGS_APP_TYPE ARG SETTINGS_MAINTENANCE_API_URL FROM node:16-alpine3.14 AS dependencies Loading Loading @@ -71,21 +91,6 @@ COPY --chown=node:node --from=development /srv/ever . ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=2048"} ENV NODE_ENV=${NODE_ENV:-production} ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000} ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200} ENV SENTRY_DSN=${SENTRY_DSN} ENV CHATWOOT_SDK_TOKEN=${CHATWOOT_SDK_TOKEN} ENV CLOUDINARY_CLOUD_NAME=${CLOUDINARY_CLOUD_NAME} ENV CLOUDINARY_API_KEY=${CLOUDINARY_API_KEY} ENV GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY} ENV GOOGLE_PLACE_AUTOCOMPLETE=${GOOGLE_PLACE_AUTOCOMPLETE:-false} ENV DEFAULT_LATITUDE=${DEFAULT_LATITUDE:-42.6459136} ENV DEFAULT_LONGITUDE=${DEFAULT_LONGITUDE:-23.3332736} ENV DEFAULT_CURRENCY=${DEFAULT_CURRENCY:-USD}_DSN} ENV DEMO=${DEMO:-false} ENV IS_DOCKER=true RUN yarn build:admin Loading @@ -104,17 +109,45 @@ COPY --chown=nginx:nginx --from=build /srv/ever/packages/admin-web-angular/build RUN chmod +x wait entrypoint.compose.sh entrypoint.prod.sh && \ chmod a+rw /etc/nginx/conf.d/compose.conf.template /etc/nginx/conf.d/prod.conf.template ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000} ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200} ENV SENTRY_DSN=${SENTRY_DSN} ENV API_HOST=${API_HOST:-api} ENV API_PORT=${API_PORT:-3000} ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000} ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200} ENV WEB_HOST=${WEB_HOST:-0.0.0.0} ENV WEB_PORT=${WEB_PORT:-4200} ENV DEMO=${DEMO:-false} ENV HTTPS_SERVICES_ENDPOINT=${HTTPS_SERVICES_ENDPOINT} ENV SERVICES_ENDPOINT=${SERVICES_ENDPOINT} ENV GQL_ENDPOINT=${GQL_ENDPOINT} ENV GQL_SUBSCRIPTIONS_ENDPOINT=${GQL_SUBSCRIPTIONS_ENDPOINT} ENV SENTRY_DSN=${SENTRY_DSN} ENV CHATWOOT_SDK_TOKEN=${CHATWOOT_SDK_TOKEN} ENV CLOUDINARY_CLOUD_NAME=${CLOUDINARY_CLOUD_NAME} ENV CLOUDINARY_API_KEY=${CLOUDINARY_API_KEY} ENV GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY} ENV GOOGLE_PLACE_AUTOCOMPLETE=${GOOGLE_PLACE_AUTOCOMPLETE:-false} ENV DEFAULT_LATITUDE=${DEFAULT_LATITUDE:-42.6459136} ENV DEFAULT_LONGITUDE=${DEFAULT_LONGITUDE:-23.3332736} ENV DEFAULT_CURRENCY=${DEFAULT_CURRENCY:-USD}_DSN} ENV DEFAULT_LANGUAGE=${DEFAULT_LANGUAGE} ENV CURRENCY_SYMBOL=${CURRENCY_SYMBOL} ENV NO_INTERNET_LOGO=${NO_INTERNET_LOGO} ENV MAP_MERCHANT_ICON_LINK=${MAP_MERCHANT_ICON_LINK} ENV MAP_USER_ICON_LINK=${MAP_USER_ICON_LINK} ENV MAP_CARRIER_ICON_LINK=${MAP_CARRIER_ICON_LINK} ENV API_FILE_UPLOAD_URL=${API_FILE_UPLOAD_URL} ENV COMPANY_NAME=${COMPANY_NAME} ENV COMPANY_SITE_LINK=${COMPANY_SITE_LINK} ENV COMPANY_GITHUB_LINK=${COMPANY_GITHUB_LINK} ENV COMPANY_FACEBOOK_LINK=${COMPANY_FACEBOOK_LINK} ENV COMPANY_TWITTER_LINK=${COMPANY_TWITTER_LINK} ENV COMPANY_LINKEDIN_LINK=${COMPANY_LINKEDIN_LINK} ENV GENERATE_PASSWORD_CHARSET=${GENERATE_PASSWORD_CHARSET} ENV SETTINGS_APP_TYPE=${SETTINGS_APP_TYPE} ENV SETTINGS_MAINTENANCE_API_URL=${SETTINGS_MAINTENANCE_API_URL} EXPOSE ${WEB_PORT} ENTRYPOINT [ "./entrypoint.prod.sh" ] Loading
.deploy/admin-web-angular/entrypoint.compose.sh +25 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,16 @@ export WAIT_HOSTS=$API_HOST:$API_PORT # In production we should replace some values in generated JS code sed -i "s#DOCKER_API_BASE_URL#$API_BASE_URL#g" *.js sed -i "s#DOCKER_CLIENT_BASE_URL#$CLIENT_BASE_URL#g" *.js sed -i "s#DOCKER_API_HOST#$API_HOST#g" *.js sed -i "s#DOCKER_API_PORT#$API_PORT#g" *.js sed -i "s#DOCKER_WEB_HOST#$WEB_HOST#g" *.js sed -i "s#DOCKER_WEB_PORT#$WEB_PORT#g" *.js sed -i "s#DOCKER_HTTPS_SERVICES_ENDPOINT#$HTTPS_SERVICES_ENDPOINT#g" *.js sed -i "s#DOCKER_SERVICES_ENDPOINT#$SERVICES_ENDPOINT#g" *.js sed -i "s#DOCKER_GQL_ENDPOINT#$GQL_ENDPOINT#g" *.js sed -i "s#DOCKER_GQL_SUBSCRIPTIONS_ENDPOINT#$GQL_SUBSCRIPTIONS_ENDPOINT#g" *.js sed -i "s#DOCKER_SENTRY_DSN#$SENTRY_DSN#g" *.js sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js sed -i "s#DOCKER_CLOUDINARY_CLOUD_NAME#$CLOUDINARY_CLOUD_NAME#g" *.js sed -i "s#DOCKER_CLOUDINARY_API_KEY#$CLOUDINARY_API_KEY#g" *.js sed -i "s#DOCKER_GOOGLE_MAPS_API_KEY#$GOOGLE_MAPS_API_KEY#g" *.js Loading @@ -16,7 +25,22 @@ sed -i "s#DOCKER_GOOGLE_PLACE_AUTOCOMPLETE#$GOOGLE_PLACE_AUTOCOMPLETE#g" *.js sed -i "s#DOCKER_DEFAULT_LATITUDE#$DEFAULT_LATITUDE#g" *.js sed -i "s#DOCKER_DEFAULT_LONGITUDE#$DEFAULT_LONGITUDE#g" *.js sed -i "s#DOCKER_DEFAULT_CURRENCY#$DEFAULT_CURRENCY#g" *.js sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js sed -i "s#DOCKER_DEFAULT_LANGUAGE#$DEFAULT_LANGUAGE#g" *.js sed -i "s#DOCKER_CURRENCY_SYMBOL#$CURRENCY_SYMBOL#g" *.js sed -i "s#DOCKER_NO_INTERNET_LOGO#$NO_INTERNET_LOGO#g" *.js sed -i "s#DOCKER_MAP_MERCHANT_ICON_LINK#$MAP_MERCHANT_ICON_LINK#g" *.js sed -i "s#DOCKER_MAP_USER_ICON_LINK#$MAP_USER_ICON_LINK#g" *.js sed -i "s#DOCKER_MAP_CARRIER_ICON_LINK#$MAP_CARRIER_ICON_LINK#g" *.js sed -i "s#DOCKER_API_FILE_UPLOAD_URL#$API_FILE_UPLOAD_URL#g" *.js sed -i "s#DOCKER_COMPANY_NAME#$COMPANY_NAME#g" *.js sed -i "s#DOCKER_COMPANY_SITE_LINK#$COMPANY_SITE_LINK#g" *.js sed -i "s#DOCKER_COMPANY_GITHUB_LINK#$COMPANY_GITHUB_LINK#g" *.js sed -i "s#DOCKER_COMPANY_FACEBOOK_LINK#$COMPANY_FACEBOOK_LINK#g" *.js sed -i "s#DOCKER_COMPANY_TWITTER_LINK#$COMPANY_TWITTER_LINK#g" *.js sed -i "s#DOCKER_COMPANY_LINKEDIN_LINK#$COMPANY_LINKEDIN_LINK#g" *.js sed -i "s#DOCKER_GENERATE_PASSWORD_CHARSET#$GENERATE_PASSWORD_CHARSET#g" *.js sed -i "s#DOCKER_SETTINGS_APP_TYPE#$SETTINGS_APP_TYPE#g" *.js sed -i "s#DOCKER_SETTINGS_MAINTENANCE_API_URL#$SETTINGS_MAINTENANCE_API_URL#g" *.js sed -i "s#DOCKER_DEMO#$DEMO#g" *.js envsubst '${API_HOST} ${API_PORT}' < /etc/nginx/conf.d/compose.conf.template > /etc/nginx/nginx.conf Loading
.deploy/admin-web-angular/entrypoint.prod.sh +25 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,16 @@ set -ex # In production we should replace some values in generated JS code sed -i "s#DOCKER_API_BASE_URL#$API_BASE_URL#g" *.js sed -i "s#DOCKER_CLIENT_BASE_URL#$CLIENT_BASE_URL#g" *.js sed -i "s#DOCKER_API_HOST#$API_HOST#g" *.js sed -i "s#DOCKER_API_PORT#$API_PORT#g" *.js sed -i "s#DOCKER_WEB_HOST#$WEB_HOST#g" *.js sed -i "s#DOCKER_WEB_PORT#$WEB_PORT#g" *.js sed -i "s#DOCKER_HTTPS_SERVICES_ENDPOINT#$HTTPS_SERVICES_ENDPOINT#g" *.js sed -i "s#DOCKER_SERVICES_ENDPOINT#$SERVICES_ENDPOINT#g" *.js sed -i "s#DOCKER_GQL_ENDPOINT#$GQL_ENDPOINT#g" *.js sed -i "s#DOCKER_GQL_SUBSCRIPTIONS_ENDPOINT#$GQL_SUBSCRIPTIONS_ENDPOINT#g" *.js sed -i "s#DOCKER_SENTRY_DSN#$SENTRY_DSN#g" *.js sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js sed -i "s#DOCKER_CLOUDINARY_CLOUD_NAME#$CLOUDINARY_CLOUD_NAME#g" *.js sed -i "s#DOCKER_CLOUDINARY_API_KEY#$CLOUDINARY_API_KEY#g" *.js sed -i "s#DOCKER_GOOGLE_MAPS_API_KEY#$GOOGLE_MAPS_API_KEY#g" *.js Loading @@ -14,7 +23,22 @@ sed -i "s#DOCKER_GOOGLE_PLACE_AUTOCOMPLETE#$GOOGLE_PLACE_AUTOCOMPLETE#g" *.js sed -i "s#DOCKER_DEFAULT_LATITUDE#$DEFAULT_LATITUDE#g" *.js sed -i "s#DOCKER_DEFAULT_LONGITUDE#$DEFAULT_LONGITUDE#g" *.js sed -i "s#DOCKER_DEFAULT_CURRENCY#$DEFAULT_CURRENCY#g" *.js sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js sed -i "s#DOCKER_DEFAULT_LANGUAGE#$DEFAULT_LANGUAGE#g" *.js sed -i "s#DOCKER_CURRENCY_SYMBOL#$CURRENCY_SYMBOL#g" *.js sed -i "s#DOCKER_NO_INTERNET_LOGO#$NO_INTERNET_LOGO#g" *.js sed -i "s#DOCKER_MAP_MERCHANT_ICON_LINK#$MAP_MERCHANT_ICON_LINK#g" *.js sed -i "s#DOCKER_MAP_USER_ICON_LINK#$MAP_USER_ICON_LINK#g" *.js sed -i "s#DOCKER_MAP_CARRIER_ICON_LINK#$MAP_CARRIER_ICON_LINK#g" *.js sed -i "s#DOCKER_API_FILE_UPLOAD_URL#$API_FILE_UPLOAD_URL#g" *.js sed -i "s#DOCKER_COMPANY_NAME#$COMPANY_NAME#g" *.js sed -i "s#DOCKER_COMPANY_SITE_LINK#$COMPANY_SITE_LINK#g" *.js sed -i "s#DOCKER_COMPANY_GITHUB_LINK#$COMPANY_GITHUB_LINK#g" *.js sed -i "s#DOCKER_COMPANY_FACEBOOK_LINK#$COMPANY_FACEBOOK_LINK#g" *.js sed -i "s#DOCKER_COMPANY_TWITTER_LINK#$COMPANY_TWITTER_LINK#g" *.js sed -i "s#DOCKER_COMPANY_LINKEDIN_LINK#$COMPANY_LINKEDIN_LINK#g" *.js sed -i "s#DOCKER_GENERATE_PASSWORD_CHARSET#$GENERATE_PASSWORD_CHARSET#g" *.js sed -i "s#DOCKER_SETTINGS_APP_TYPE#$SETTINGS_APP_TYPE#g" *.js sed -i "s#DOCKER_SETTINGS_MAINTENANCE_API_URL#$SETTINGS_MAINTENANCE_API_URL#g" *.js sed -i "s#DOCKER_DEMO#$DEMO#g" *.js # We may not need to use that env vars now in nginx.config, but we may want later. Loading
.deploy/k8s/k8s-manifest.demo.yaml +22 −3 Original line number Diff line number Diff line Loading @@ -121,20 +121,38 @@ metadata: annotations: service.beta.kubernetes.io/do-loadbalancer-name: 'apidemo.ever.co' service.beta.kubernetes.io/do-loadbalancer-protocol: 'http2' service.beta.kubernetes.io/do-loadbalancer-http2-ports: '443' # GraphQL Subscriptions use WebSockets on Port 5050 service.beta.kubernetes.io/do-loadbalancer-http-ports: '5050' # Rest API works on 443, GraphQL API works on 5555 service.beta.kubernetes.io/do-loadbalancer-http2-ports: '443,5555' # Replace with your Certificate Id. You can get a list of Ids with 'doctl compute certificate list' service.beta.kubernetes.io/do-loadbalancer-certificate-id: 'a93346c1-d63b-4c33-84c5-4589787428ca' service.beta.kubernetes.io/do-loadbalancer-size-slug: 'lb-small' service.beta.kubernetes.io/do-loadbalancer-hostname: 'apidemo.ever.co' service.beta.kubernetes.io/do-loadbalancer-sticky-sessions-type: 'cookies' service.beta.kubernetes.io/do-loadbalancer-sticky-sessions-cookie-name: 'route' service.beta.kubernetes.io/do-loadbalancer-sticky-sessions-cookie-ttl: '34650' spec: type: LoadBalancer selector: app: ever-demo-api ports: - name: http - name: rest_api_http protocol: TCP port: 443 targetPort: 5500 - name: gql_api_http protocol: TCP port: 5555 targetPort: 5555 - name: gql_subscriptions_ws protocol: TCP port: 5050 targetPort: 5050 --- apiVersion: apps/v1 Loading Loading @@ -168,6 +186,7 @@ spec: # value: '5501' - name: GQLPORT value: '5555' # WebSockets (WS) used for GraphQL Subscriptions - name: GQLPORT_SUBSCRIPTIONS value: '5050' - name: ADMIN_PASSWORD_RESET Loading Loading @@ -239,7 +258,7 @@ spec: # - name: SERVICES_ENDPOINT # value: '' - name: GQL_ENDPOINT value: 'http://apidemo.ever.co:5555/graphql' value: 'https://apidemo.ever.co:5555/graphql' - name: GQL_SUBSCRIPTIONS_ENDPOINT value: 'ws://apidemo.ever.co:5050/subscriptions' - name: SENTRY_DSN Loading
.vscode/settings.json +1 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ "cSpell.words": [ "AGPL", "changeme", "CLOUDINARY", "Codegen", "CQRS", "devkit", Loading