-
Notifications
You must be signed in to change notification settings - Fork 200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: automate ballerine deployment #2871
base: dev
Are you sure you want to change the base?
Changes from 2 commits
15aa1cb
59477bc
0ad21b5
d8269c5
d7d099c
849e369
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,55 +1,170 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#!/usr/bin/env bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#!/bin/bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
set -e | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Example Usage: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# ./ballerine_install.sh <VITE_API_URL_DOMAIN_NAME> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Running as: $(id)" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Function to display help message | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
show_help() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Usage: $0 [OPTIONS]" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Options:" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " -h, --help Display this help message." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " -d, --domain vite_domain Vite Domain URL." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " -v, --verbose Enable verbose output." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Examples:" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " $0 --domain example.com" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo " $0 -v" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_http_https() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
local input=$1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "checking domain if suitable $input" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [[ $input == *http://* && $input != *https://* ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The string contains 'http' but not 'https'." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif [[ $input == *https://* && $input != *http://* ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The string contains 'https' but not 'http'." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif [[ $input == *http://* && $input == *https://* ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The string contains both 'http' and 'https'." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 1; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The string contains neither 'http' nor 'https'." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 1; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Check if no arguments are provided | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [ $# -eq 0 ]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "No arguments provided. Defaulting everything to localhost." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
install_docker_ubuntu(){ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Add Docker's official GPG key: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo apt-get update | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo apt-get install ca-certificates curl | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo install -m 0755 -d /etc/apt/keyrings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo chmod a+r /etc/apt/keyrings/docker.asc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Add the repository to Apt sources: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo apt-get update | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
install_docker_macos(){ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Install docker using the following docs" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "https://docs.docker.com/desktop/setup/install/mac-install/" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_os() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Get the operating system name | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uname_out="$(uname -s)" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case "${uname_out}" in | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Linux*) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Check if the Linux distro is Ubuntu | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [ -f /etc/os-release ]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
. /etc/os-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [[ $ID == "ubuntu" ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The host is running Ubuntu." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
install_docker_ubuntu | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The host is running a Linux distribution but not Ubuntu." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "We do not support this Linux distribution" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Script does not exit on unsupported Linux distributions. After detecting an unsupported Linux distribution, the script continues execution. This may lead to errors later on. It's essential to exit the script when the OS is unsupported. Apply this diff to exit the script for unsupported Linux distributions: echo "We do not support this Linux distribution"
+exit 1 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The host is running Linux but /etc/os-release is not available." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Darwin*) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The host is running macOS." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
install_docker_macos | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "The operating system is not recognized." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
esac | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Script continues after failing to recognize the operating system. When the operating system is not recognized, the script should exit to prevent unintended behavior. Apply this diff to exit the script when the OS is unrecognized: echo "The operating system is not recognized."
+exit 1 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
WORKFLOW_SERVICE_DOMAIN_NAME=$1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
function update_frontend_build_variables() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
update_frontend_build_variables() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VITE_DOMAIN_NAME="$1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Get frontend application env files | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Updating frontend Build Variables" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Updating vite domain with $VITE_DOMAIN_NAME" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
env_files=$(find ./apps -name "*.env.example") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo $env_files | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
for i in $env_files; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
do | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Updating env variables of $i" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sed -i "s/localhost/${WORKFLOW_SERVICE_DOMAIN_NAME}/g" $i | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sed -i '' "s|http://localhost:3000|$VITE_DOMAIN_NAME|g" $i | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
done | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Incompatible The Apply this diff to make for i in $env_files;
do
echo "Updating env variables of $i"
- sed -i '' "s|http://localhost:3000|$VITE_DOMAIN_NAME|g" $i
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ sed -i '' "s|http://localhost:3000|$VITE_DOMAIN_NAME|g" $i
+ else
+ sed -i "s|http://localhost:3000|$VITE_DOMAIN_NAME|g" $i
+ fi
done 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
function update_env_docker_compose(){ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## update env variables for docker-compose yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
update_docker_compose(){ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
read -p "Enter the backoffice domain: " BACKOFFICE_DOMAIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_http_https $BACKOFFICE_DOMAIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
read -p "Enter the workflow dashboard domain: " WORKFLOW_DASHBOARD_DOMAIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_http_https $WORKFLOW_DASHBOARD_DOMAIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
read -p "Enter the kyb domain: " KYB_DOMAIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_http_https $KYB_DOMAIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Updating docker-compose env variables" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
env_files=$(find ./deploy -name "*.env") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
env_files=$(find ./deploy -name "docker-compose-build.yml") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
for i in $env_files; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
do | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Updating env variables of $i" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sed -i "s/DOMAIN_NAME=\"\"/DOMAIN_NAME=\"${WORKFLOW_SERVICE_DOMAIN_NAME}\"/g" $i; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
done | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
function install_docker(){ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo apt update; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo apt install -y docker.io | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkdir -p ~/.docker/cli-plugins/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chmod +x ~/.docker/cli-plugins/docker-compose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sudo mv ~/.docker/cli-plugins/docker-compose /usr/bin/docker-compose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Updating env variables for KYB in $i" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sed -i '' "s|http://localhost:5201|$KYB_DOMAIN|g" $i | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Updating env variables for Workflow Dashboard in $i" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sed -i '' "s|http://localhost:5200|$WORKFLOW_DASHBOARD_DOMAIN|g" $i | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
install_docker | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Updating env variables for Backoffice in $i" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sed -i '' "s|http://localhost:5137|$BACKOFFICE_DOMAIN|g" $i | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
done | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The use of Apply this diff to update the for i in $env_files;
do
echo "Updating env variables for KYB in $i"
- sed -i '' "s|http://localhost:5201|$KYB_DOMAIN|g" $i
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ sed -i '' "s|http://localhost:5201|$KYB_DOMAIN|g" $i
+ else
+ sed -i "s|http://localhost:5201|$KYB_DOMAIN|g" $i
+ fi
echo "Updating env variables for Workflow Dashboard in $i"
- sed -i '' "s|http://localhost:5200|$WORKFLOW_DASHBOARD_DOMAIN|g" $i
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ sed -i '' "s|http://localhost:5200|$WORKFLOW_DASHBOARD_DOMAIN|g" $i
+ else
+ sed -i "s|http://localhost:5200|$WORKFLOW_DASHBOARD_DOMAIN|g" $i
+ fi
echo "Updating env variables for Backoffice in $i"
- sed -i '' "s|http://localhost:5137|$BACKOFFICE_DOMAIN|g" $i
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ sed -i '' "s|http://localhost:5137|$BACKOFFICE_DOMAIN|g" $i
+ else
+ sed -i "s|http://localhost:5137|$BACKOFFICE_DOMAIN|g" $i
+ fi
done 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [[ ! -z "${WORKFLOW_SERVICE_DOMAIN_NAME}" ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
### Update frontend build variables only if domain_name is given | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
update_frontend_build_variables | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
update_env_docker_compose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Parse arguments | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
while [[ $# -gt 0 ]]; do | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
case "$1" in | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-h|--help) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
show_help | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-d|--domain) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [ -n "$2" ]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VITE_DOMAIN_NAME="$2" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "VITE DOMAIN: $VITE_DOMAIN_NAME" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_http_https $VITE_DOMAIN_NAME | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
update_frontend_build_variables $VITE_DOMAIN_NAME | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
update_docker_compose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shift 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Error: --domain requires a domain name." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-v|--verbose) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VERBOSE=true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Verbose mode enabled." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shift | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Unknown option: $1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Use -h or --help for usage information." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
esac | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
done | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
## Bring docker-container up | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cd deploy; sudo docker-compose -f docker-compose-build.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_os | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# ## Bring docker-container up | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# cd deploy; sudo docker-compose -f docker-compose-build.yml up -d |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -23,12 +23,13 @@ services: | |||||||||||||||||||
- ballerine-workflow-service | ||||||||||||||||||||
restart: on-failure | ||||||||||||||||||||
environment: | ||||||||||||||||||||
VITE_API_URL: 'http://${DOMAIN_NAME:-localhost:3000}/api/v1/' | ||||||||||||||||||||
VITE_API_URL: 'http://localhost:3000/api/v1/' | ||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Avoid hardcoding localhost URLs in Docker configurations Hardcoding - VITE_API_URL: 'http://localhost:3000/api/v1/'
+ VITE_API_URL: 'http://${DOMAIN_NAME:-localhost:3000}/api/v1/' 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||
VITE_KYB_DEFINITION_ID: 'kyb_parent_kyc_session_example' | ||||||||||||||||||||
ballerine-workflow-service: | ||||||||||||||||||||
container_name: workflow-service | ||||||||||||||||||||
platform: linux/amd64 | ||||||||||||||||||||
image: ghcr.io/ballerine-io/workflows-service:latest | ||||||||||||||||||||
build: | ||||||||||||||||||||
context: ../services/workflows-service/ | ||||||||||||||||||||
command: | ||||||||||||||||||||
- /bin/sh | ||||||||||||||||||||
- -c | ||||||||||||||||||||
|
@@ -49,10 +50,10 @@ services: | |||||||||||||||||||
DB_USER: ${DB_USER} | ||||||||||||||||||||
DB_PASSWORD: ${DB_PASSWORD} | ||||||||||||||||||||
SESSION_SECRET: ${SESSION_SECRET} | ||||||||||||||||||||
BACKOFFICE_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${BACKOFFICE_PORT} | ||||||||||||||||||||
WORKFLOW_DASHBOARD_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${WORKFLOW_DASHBOARD_PORT} | ||||||||||||||||||||
BACKOFFICE_CORS_ORIGIN: http://localhost:5137 | ||||||||||||||||||||
WORKFLOW_DASHBOARD_CORS_ORIGIN: http://localhost:5200 | ||||||||||||||||||||
PORT: ${WORKFLOW_SVC_PORT} | ||||||||||||||||||||
KYB_EXAMPLE_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${KYB_APP_PORT} | ||||||||||||||||||||
KYB_EXAMPLE_CORS_ORIGIN: http://localhost:5201 | ||||||||||||||||||||
Comment on lines
+53
to
+56
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Revise CORS configuration for security and flexibility
- BACKOFFICE_CORS_ORIGIN: http://localhost:5137
- WORKFLOW_DASHBOARD_CORS_ORIGIN: http://localhost:5200
- KYB_EXAMPLE_CORS_ORIGIN: http://localhost:5201
+ BACKOFFICE_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${BACKOFFICE_PORT:-5137}
+ WORKFLOW_DASHBOARD_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${WORKFLOW_DASHBOARD_PORT:-5200}
+ KYB_EXAMPLE_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${KYB_APP_PORT:-5201} 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||
APP_API_URL: https://alon.ballerine.dev | ||||||||||||||||||||
EMAIL_API_TOKEN: '' | ||||||||||||||||||||
EMAIL_API_URL: https://api.sendgrid.com/v3/mail/send | ||||||||||||||||||||
|
@@ -97,6 +98,7 @@ services: | |||||||||||||||||||
timeout: 45s | ||||||||||||||||||||
interval: 10s | ||||||||||||||||||||
retries: 10 | ||||||||||||||||||||
restart: on-failure | ||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix duplicate restart policy in caddy service The caddy service has conflicting restart policies:
Remove the duplicate restart policy and decide on a single strategy: caddy:
image: caddy:latest
restart: unless-stopped
container_name: caddy
ports:
- 80:80
- 443:443
volumes:
- "../deploy/caddy/Caddyfile:/etc/caddy/Caddyfile"
- "../deploy/./caddy/site:/srv"
- "../deploy/caddy/caddy_data:/data"
- "../deploy/caddy/caddy_config:/config"
- restart: on-failure Also applies to: 114-114 |
||||||||||||||||||||
caddy: | ||||||||||||||||||||
image: caddy:latest | ||||||||||||||||||||
restart: unless-stopped | ||||||||||||||||||||
|
@@ -109,5 +111,6 @@ services: | |||||||||||||||||||
- "../deploy/./caddy/site:/srv" | ||||||||||||||||||||
- "../deploy/caddy/caddy_data:/data" | ||||||||||||||||||||
- "../deploy/caddy/caddy_config:/config" | ||||||||||||||||||||
restart: on-failure | ||||||||||||||||||||
volumes: | ||||||||||||||||||||
postgres15: ~ |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,7 +23,7 @@ services: | |
- ballerine-workflow-service | ||
restart: on-failure | ||
environment: | ||
VITE_API_URL: 'http://${DOMAIN_NAME:-localhost:3000}/api/v1/' | ||
VITE_API_URL: 'http://localhost:3000/api/v1/' | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Hardcoding Setting Apply this diff to restore configurability: VITE_API_URL: 'http://localhost:3000/api/v1/'
+# Consider using an environment variable or a Docker argument to set VITE_API_URL dynamically.
|
||
VITE_KYB_DEFINITION_ID: 'kyb_parent_kyc_session_example' | ||
ballerine-workflow-service: | ||
container_name: workflow-service | ||
|
@@ -50,10 +50,10 @@ services: | |
DB_USER: ${DB_USER} | ||
DB_PASSWORD: ${DB_PASSWORD} | ||
SESSION_SECRET: ${SESSION_SECRET} | ||
BACKOFFICE_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${BACKOFFICE_PORT} | ||
WORKFLOW_DASHBOARD_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${WORKFLOW_DASHBOARD_PORT} | ||
BACKOFFICE_CORS_ORIGIN: http://localhost:5137 | ||
WORKFLOW_DASHBOARD_CORS_ORIGIN: http://localhost:5200 | ||
PORT: ${WORKFLOW_SVC_PORT} | ||
KYB_EXAMPLE_CORS_ORIGIN: http://${DOMAIN_NAME:-localhost}:${KYB_APP_PORT} | ||
KYB_EXAMPLE_CORS_ORIGIN: http://localhost:5201 | ||
Comment on lines
+53
to
+56
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Hardcoding CORS origins may cause cross-origin issues. By hardcoding the CORS origins to localhost, services running on other domains won't be able to communicate with the API. This can cause issues in staging or production environments. Apply this diff to make the CORS origins configurable: BACKOFFICE_CORS_ORIGIN: http://localhost:5137
WORKFLOW_DASHBOARD_CORS_ORIGIN: http://localhost:5200
KYB_EXAMPLE_CORS_ORIGIN: http://localhost:5201
+# Consider using environment variables to set these origins dynamically based on deployment.
|
||
APP_API_URL: https://alon.ballerine.dev | ||
EMAIL_API_TOKEN: '' | ||
EMAIL_API_URL: https://api.sendgrid.com/v3/mail/send | ||
|
@@ -98,5 +98,6 @@ services: | |
timeout: 45s | ||
interval: 10s | ||
retries: 10 | ||
restart: on-failure | ||
volumes: | ||
postgres15: ~ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Eliminate code duplication in HTTP/HTTPS validation
The HTTP/HTTPS validation logic is duplicated between
check_http_https
anddeploy_ballerine
functions. This violates the DRY principle and makes maintenance harder.Refactor to reuse the validation logic:
Also applies to: 37-59