From c8191a1f65b7f018692124cb375a0b418e1bdbb2 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Thu, 10 Oct 2024 12:34:43 +0700 Subject: [PATCH 01/12] manage file working Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/README.md | 3 +- scripts/manage | 153 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 scripts/manage diff --git a/scripts/README.md b/scripts/README.md index bc4fd27bf..217bcd075 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -99,8 +99,7 @@ CountryMac:scripts jason$ docker-compose version ```sh cp .env-example .env -docker compose build -docker compose up +./manage up ``` **Note:** to use your `ngrok` auth token and prevent the tunnels from expiring, add the value in the `.env` file after uncommenting the line defining `NGROK_AUTHTOKEN` and then start the project with `docker compose up`. diff --git a/scripts/manage b/scripts/manage new file mode 100644 index 000000000..39e789cfe --- /dev/null +++ b/scripts/manage @@ -0,0 +1,153 @@ +#!/bin/bash + +# Function to determine the correct Docker Compose command +get_docker_compose_command() { + # Check if `docker compose` is available + if command -v "docker" > /dev/null && docker compose version > /dev/null 2>&1; then + echo "docker compose" + elif command -v docker-compose > /dev/null 2>&1; then + echo "docker-compose" + else + echo "Error: Neither 'docker compose' nor 'docker-compose' is installed." >&2 + exit 1 + fi +} + +# Function to build Docker images +build_docker_images() { + echo "Building Docker images..." + echo "Building traction:plugins-acapy" + # Check if the plugins/docker directory exists + if [ -d "../plugins/docker" ]; then + pushd ../plugins/docker > /dev/null + docker build -f ./Dockerfile --tag traction:plugins-acapy .. + popd > /dev/null + else + echo "Error: Directory '../plugins/docker' does not exist. Check the path." + exit 1 + fi + + echo "Building traction:traction-agent" + # Check if the services/aca-py directory exists + if [ -d "../services/aca-py" ]; then + pushd ../services/aca-py > /dev/null + if [ -f "./Dockerfile.acapy" ]; then + docker build -f ./Dockerfile.acapy --tag traction:traction-agent . + else + echo "Error: File 'Dockerfile.acapy' not found in '../services/aca-py'." + popd > /dev/null + exit 1 + fi + popd > /dev/null + else + echo "Error: Directory '../services/aca-py' does not exist. Please verify the path." + exit 1 + fi + + docker compose up -d + + # Capture the Docker Compose command + compose_cmd=$(get_docker_compose_command) + + # Check if the command is empty or not set correctly + if [ -z "$compose_cmd" ]; then + echo "Error: Failed to determine Docker Compose command." >&2 + exit 1 + fi + + $compose_cmd up -d +} + +# Function to start Docker containers +start_docker_containers() { + echo "Starting Docker containers..." + # Capture the Docker Compose command + compose_cmd=$(get_docker_compose_command) + + # Check if the command is empty or not set correctly + if [ -z "$compose_cmd" ]; then + echo "Error: Failed to determine Docker Compose command." >&2 + exit 1 + fi + + # Use the captured command to build, start, or stop + $compose_cmd up -d +} + +# Function to stop Docker containers +stop_docker_containers() { + echo "Stopping Docker containers..." + + # Capture the Docker Compose command + compose_cmd=$(get_docker_compose_command) + + # Check if the command is empty or not set correctly + if [ -z "$compose_cmd" ]; then + echo "Error: Failed to determine Docker Compose command." >&2 + exit 1 + fi + + # Use the captured command to stop and remove containers + $compose_cmd down +} + +# Function to restart Docker containers +restart_docker_containers() { + echo "Restarting Docker containers..." + stop_docker_containers + start_docker_containers +} + +# Check for Mac OS and set platform options if applicable +set_mac_os_options() { + if [[ $OSTYPE == 'darwin'* ]]; then + echo "Setting Mac OS specific options..." + + # Set default platform to linux/amd64 for Arm-based Macs + architecture=$(uname -m) + if [[ "${architecture}" == 'arm'* ]] || [[ "${architecture}" == 'aarch'* ]]; then + export DOCKER_DEFAULT_PLATFORM=linux/amd64 + fi + + # Set date and stat options for Mac OS + export TA_RATIFICATION_TIME_OPS='-jf '%Y-%m-%dT%H:%M:%S%Z' +%s ' + export STAT_OPS='-f '%A'' + fi +} + +# Display usage information +show_usage() { + echo "Usage: $0 {build|start|stop|restart}" + exit 1 +} + +# Main function to control script flow based on user input +main() { + set_mac_os_options + + case "$1" in + build) + build_docker_images + ;; + start) + start_docker_containers + ;; + stop) + stop_docker_containers + ;; + restart) + restart_docker_containers + ;; + *) + show_usage + ;; + esac +} + +# Check if any argument is provided, otherwise show usage +if [ $# -eq 0 ]; then + show_usage +fi + +# Execute the main function with the provided argument +main "$1" \ No newline at end of file From 07b39725bcaa72eae52cd7f1469326cd84c97825 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Thu, 10 Oct 2024 12:44:32 +0700 Subject: [PATCH 02/12] make build check for right command Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/manage | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/manage b/scripts/manage index 39e789cfe..0871cab5a 100644 --- a/scripts/manage +++ b/scripts/manage @@ -44,8 +44,6 @@ build_docker_images() { exit 1 fi - docker compose up -d - # Capture the Docker Compose command compose_cmd=$(get_docker_compose_command) From 6261c13a65015cab586cff450221a1aa08712c62 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Thu, 10 Oct 2024 13:27:04 +0700 Subject: [PATCH 03/12] fix make command in readme Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/README.md b/scripts/README.md index 217bcd075..e9b393c19 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -99,7 +99,7 @@ CountryMac:scripts jason$ docker-compose version ```sh cp .env-example .env -./manage up +./manage start ``` **Note:** to use your `ngrok` auth token and prevent the tunnels from expiring, add the value in the `.env` file after uncommenting the line defining `NGROK_AUTHTOKEN` and then start the project with `docker compose up`. From 65cd477725fbab258a8f5d3729903fee9f2da2b3 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Thu, 10 Oct 2024 13:28:31 +0700 Subject: [PATCH 04/12] make manage executable Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/manage | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/manage diff --git a/scripts/manage b/scripts/manage old mode 100644 new mode 100755 From c1850db7200fe7cc6a1539293ad5d390dcc464e7 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Thu, 10 Oct 2024 15:05:46 +0700 Subject: [PATCH 05/12] improvements to build portion Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/manage | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/manage b/scripts/manage index 0871cab5a..36f2f02b4 100755 --- a/scripts/manage +++ b/scripts/manage @@ -20,7 +20,7 @@ build_docker_images() { # Check if the plugins/docker directory exists if [ -d "../plugins/docker" ]; then pushd ../plugins/docker > /dev/null - docker build -f ./Dockerfile --tag traction:plugins-acapy .. + docker build -f ./Dockerfile --tag traction:plugins-acapy .. --no-cache popd > /dev/null else echo "Error: Directory '../plugins/docker' does not exist. Check the path." @@ -32,7 +32,7 @@ build_docker_images() { if [ -d "../services/aca-py" ]; then pushd ../services/aca-py > /dev/null if [ -f "./Dockerfile.acapy" ]; then - docker build -f ./Dockerfile.acapy --tag traction:traction-agent . + docker build -f ./Dockerfile.acapy --tag traction:traction-agent . --no-cache else echo "Error: File 'Dockerfile.acapy' not found in '../services/aca-py'." popd > /dev/null @@ -53,8 +53,16 @@ build_docker_images() { exit 1 fi - $compose_cmd up -d -} + built_services="traction-acapy-image-builder tenant-ui tenant-proxy endorser-api endorser-api-1" + pulled_services="ngrok-traction-agent traction-db endorser-db endorser-db-1 maildev endorser-agent endorser-agent-1" + other_services="traction-agent" + + + $compose_cmd build $built_services --no-cache --parallel + $compose_cmd pull $pulled_services + + + } # Function to start Docker containers start_docker_containers() { From fea498f1ee7bd12d54ad7227fc0383ff12883091 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Thu, 10 Oct 2024 15:08:41 +0700 Subject: [PATCH 06/12] Update manage commands Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/README.md b/scripts/README.md index e9b393c19..c96545c7f 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -99,6 +99,7 @@ CountryMac:scripts jason$ docker-compose version ```sh cp .env-example .env +./manage build ./manage start ``` From 63fe01684cc60f44dba90f6174ed7eff6ff5b359 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:27:46 +0700 Subject: [PATCH 07/12] fix to destructive teardown command Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/manage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/manage b/scripts/manage index 36f2f02b4..05a0b5bfb 100755 --- a/scripts/manage +++ b/scripts/manage @@ -94,7 +94,7 @@ stop_docker_containers() { fi # Use the captured command to stop and remove containers - $compose_cmd down + $compose_cmd stop } # Function to restart Docker containers From 31d6050b1c0422891693c5f1fcab70bf275fff4d Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:38:08 +0700 Subject: [PATCH 08/12] check docker command once Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/manage | 49 ++++++++++--------------------------------------- 1 file changed, 10 insertions(+), 39 deletions(-) diff --git a/scripts/manage b/scripts/manage index 05a0b5bfb..f582f7344 100755 --- a/scripts/manage +++ b/scripts/manage @@ -1,12 +1,15 @@ #!/bin/bash +# Global variable to hold Docker Compose command +compose_cmd="" + # Function to determine the correct Docker Compose command get_docker_compose_command() { # Check if `docker compose` is available if command -v "docker" > /dev/null && docker compose version > /dev/null 2>&1; then - echo "docker compose" + compose_cmd="docker compose" elif command -v docker-compose > /dev/null 2>&1; then - echo "docker-compose" + compose_cmd="docker-compose" else echo "Error: Neither 'docker compose' nor 'docker-compose' is installed." >&2 exit 1 @@ -44,56 +47,23 @@ build_docker_images() { exit 1 fi - # Capture the Docker Compose command - compose_cmd=$(get_docker_compose_command) - - # Check if the command is empty or not set correctly - if [ -z "$compose_cmd" ]; then - echo "Error: Failed to determine Docker Compose command." >&2 - exit 1 - fi - built_services="traction-acapy-image-builder tenant-ui tenant-proxy endorser-api endorser-api-1" pulled_services="ngrok-traction-agent traction-db endorser-db endorser-db-1 maildev endorser-agent endorser-agent-1" other_services="traction-agent" - - $compose_cmd build $built_services --no-cache --parallel - $compose_cmd pull $pulled_services - - - } + $compose_cmd build $built_services --no-cache --parallel + $compose_cmd pull $pulled_services +} # Function to start Docker containers start_docker_containers() { echo "Starting Docker containers..." - # Capture the Docker Compose command - compose_cmd=$(get_docker_compose_command) - - # Check if the command is empty or not set correctly - if [ -z "$compose_cmd" ]; then - echo "Error: Failed to determine Docker Compose command." >&2 - exit 1 - fi - - # Use the captured command to build, start, or stop - $compose_cmd up -d + $compose_cmd up -d } # Function to stop Docker containers stop_docker_containers() { echo "Stopping Docker containers..." - - # Capture the Docker Compose command - compose_cmd=$(get_docker_compose_command) - - # Check if the command is empty or not set correctly - if [ -z "$compose_cmd" ]; then - echo "Error: Failed to determine Docker Compose command." >&2 - exit 1 - fi - - # Use the captured command to stop and remove containers $compose_cmd stop } @@ -130,6 +100,7 @@ show_usage() { # Main function to control script flow based on user input main() { set_mac_os_options + get_docker_compose_command case "$1" in build) From db33f52e235babd2f506d32a0389960d00eaeae6 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:53:59 +0700 Subject: [PATCH 09/12] Make the manage script prettier Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/README.md | 3 +- scripts/manage | 92 +++++++++++++++++++++++++++-------------------- 2 files changed, 54 insertions(+), 41 deletions(-) diff --git a/scripts/README.md b/scripts/README.md index c96545c7f..455c1f026 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -99,8 +99,7 @@ CountryMac:scripts jason$ docker-compose version ```sh cp .env-example .env -./manage build -./manage start +./manage ``` **Note:** to use your `ngrok` auth token and prevent the tunnels from expiring, add the value in the `.env` file after uncommenting the line defining `NGROK_AUTHTOKEN` and then start the project with `docker compose up`. diff --git a/scripts/manage b/scripts/manage index f582f7344..31655aea8 100755 --- a/scripts/manage +++ b/scripts/manage @@ -1,11 +1,22 @@ #!/bin/bash +# ASCII Art Header +generate_traction_ascii_art() { + echo " _______ _ _ " + echo " |__ __| | | (_) " + echo " | |_ __ __ _ ___| |_ _ ___ _ __ " + echo " | | '__/ _\` |/ __| __| |/ _ \| '_ \ " + echo " | | | | (_| | (__| |_| | (_) | | | |" + echo " |_|_| \__,_|\___|\__|_|\___/|_| |_|" + echo " " + echo " " +} + # Global variable to hold Docker Compose command compose_cmd="" # Function to determine the correct Docker Compose command get_docker_compose_command() { - # Check if `docker compose` is available if command -v "docker" > /dev/null && docker compose version > /dev/null 2>&1; then compose_cmd="docker compose" elif command -v docker-compose > /dev/null 2>&1; then @@ -19,8 +30,6 @@ get_docker_compose_command() { # Function to build Docker images build_docker_images() { echo "Building Docker images..." - echo "Building traction:plugins-acapy" - # Check if the plugins/docker directory exists if [ -d "../plugins/docker" ]; then pushd ../plugins/docker > /dev/null docker build -f ./Dockerfile --tag traction:plugins-acapy .. --no-cache @@ -30,8 +39,6 @@ build_docker_images() { exit 1 fi - echo "Building traction:traction-agent" - # Check if the services/aca-py directory exists if [ -d "../services/aca-py" ]; then pushd ../services/aca-py > /dev/null if [ -f "./Dockerfile.acapy" ]; then @@ -49,8 +56,6 @@ build_docker_images() { built_services="traction-acapy-image-builder tenant-ui tenant-proxy endorser-api endorser-api-1" pulled_services="ngrok-traction-agent traction-db endorser-db endorser-db-1 maildev endorser-agent endorser-agent-1" - other_services="traction-agent" - $compose_cmd build $built_services --no-cache --parallel $compose_cmd pull $pulled_services } @@ -79,22 +84,28 @@ set_mac_os_options() { if [[ $OSTYPE == 'darwin'* ]]; then echo "Setting Mac OS specific options..." - # Set default platform to linux/amd64 for Arm-based Macs architecture=$(uname -m) if [[ "${architecture}" == 'arm'* ]] || [[ "${architecture}" == 'aarch'* ]]; then export DOCKER_DEFAULT_PLATFORM=linux/amd64 fi - # Set date and stat options for Mac OS - export TA_RATIFICATION_TIME_OPS='-jf '%Y-%m-%dT%H:%M:%S%Z' +%s ' - export STAT_OPS='-f '%A'' + export TA_RATIFICATION_TIME_OPS='-jf %Y-%m-%dT%H:%M:%S%Z +%s' + export STAT_OPS='-f %A' fi } -# Display usage information -show_usage() { - echo "Usage: $0 {build|start|stop|restart}" - exit 1 +# Display menu +show_menu() { + generate_traction_ascii_art + echo "--------------------------------------------" + echo " Traction Management Script" + echo "--------------------------------------------" + echo " Select an Action you want to perform:" + echo " 1) Build" + echo " 2) Start" + echo " 3) Stop" + echo " 4) Restart" + echo " 5) Exit" } # Main function to control script flow based on user input @@ -102,29 +113,32 @@ main() { set_mac_os_options get_docker_compose_command - case "$1" in - build) - build_docker_images - ;; - start) - start_docker_containers - ;; - stop) - stop_docker_containers - ;; - restart) - restart_docker_containers - ;; - *) - show_usage - ;; - esac + while true; do + show_menu + read -p "Action [1-5]: " action + case "$action" in + 1) + build_docker_images + ;; + 2) + start_docker_containers + ;; + 3) + stop_docker_containers + ;; + 4) + restart_docker_containers + ;; + 5) + echo "Exiting..." + exit 0 + ;; + *) + echo "Invalid option, please select a number between 1 and 5." + ;; + esac + done } -# Check if any argument is provided, otherwise show usage -if [ $# -eq 0 ]; then - show_usage -fi - -# Execute the main function with the provided argument -main "$1" \ No newline at end of file +# Execute the main function +main \ No newline at end of file From af5aaecf164298affbd090339ebe33232f671d68 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:10:49 +0700 Subject: [PATCH 10/12] Manage menu only when no args are given Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/manage | 74 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 25 deletions(-) diff --git a/scripts/manage b/scripts/manage index 31655aea8..b33682d69 100755 --- a/scripts/manage +++ b/scripts/manage @@ -1,6 +1,6 @@ #!/bin/bash -# ASCII Art Header +# Function to generate Traction ASCII Art generate_traction_ascii_art() { echo " _______ _ _ " echo " |__ __| | | (_) " @@ -10,6 +10,15 @@ generate_traction_ascii_art() { echo " |_|_| \__,_|\___|\__|_|\___/|_| |_|" echo " " echo " " + echo "--------------------------------------------" + echo " Traction Management Script" + echo "--------------------------------------------" + echo " Select an Action you want to perform:" + echo " 1) Build" + echo " 2) Start" + echo " 3) Stop" + echo " 4) Restart" + echo " 5) Exit" } # Global variable to hold Docker Compose command @@ -97,15 +106,6 @@ set_mac_os_options() { # Display menu show_menu() { generate_traction_ascii_art - echo "--------------------------------------------" - echo " Traction Management Script" - echo "--------------------------------------------" - echo " Select an Action you want to perform:" - echo " 1) Build" - echo " 2) Start" - echo " 3) Stop" - echo " 4) Restart" - echo " 5) Exit" } # Main function to control script flow based on user input @@ -113,32 +113,56 @@ main() { set_mac_os_options get_docker_compose_command - while true; do - show_menu - read -p "Action [1-5]: " action - case "$action" in - 1) + if [ "$#" -eq 0 ]; then + # No command-line arguments provided, show the menu + while true; do + show_menu + read -p "Action [1-5]: " action + case "$action" in + 1) + build_docker_images + ;; + 2) + start_docker_containers + ;; + 3) + stop_docker_containers + ;; + 4) + restart_docker_containers + ;; + 5) + echo "Exiting..." + exit 0 + ;; + *) + echo "Invalid option, please select a number between 1 and 5." + ;; + esac + done + else + # Command-line argument is provided, execute corresponding function + case "$1" in + build) build_docker_images ;; - 2) + start) start_docker_containers ;; - 3) + stop) stop_docker_containers ;; - 4) + restart) restart_docker_containers ;; - 5) - echo "Exiting..." - exit 0 - ;; *) - echo "Invalid option, please select a number between 1 and 5." + echo "Unknown command: $1" + echo "Usage: $0 {build|start|stop|restart}" + exit 1 ;; esac - done + fi } # Execute the main function -main \ No newline at end of file +main "$@" \ No newline at end of file From 344346a1b34f5b83fddcf2df1032bc27f552e2e1 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:13:39 +0700 Subject: [PATCH 11/12] Added down to options Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/manage | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/scripts/manage b/scripts/manage index b33682d69..c53eed9bb 100755 --- a/scripts/manage +++ b/scripts/manage @@ -18,7 +18,8 @@ generate_traction_ascii_art() { echo " 2) Start" echo " 3) Stop" echo " 4) Restart" - echo " 5) Exit" + echo " 5) Down (Stop and remove containers)" + echo " 6) Exit" } # Global variable to hold Docker Compose command @@ -88,6 +89,12 @@ restart_docker_containers() { start_docker_containers } +# Function to stop and remove Docker containers +down_docker_containers() { + echo "Stopping and removing Docker containers..." + $compose_cmd down +} + # Check for Mac OS and set platform options if applicable set_mac_os_options() { if [[ $OSTYPE == 'darwin'* ]]; then @@ -117,7 +124,7 @@ main() { # No command-line arguments provided, show the menu while true; do show_menu - read -p "Action [1-5]: " action + read -p "Action [1-6]: " action case "$action" in 1) build_docker_images @@ -132,11 +139,14 @@ main() { restart_docker_containers ;; 5) + down_docker_containers + ;; + 6) echo "Exiting..." exit 0 ;; *) - echo "Invalid option, please select a number between 1 and 5." + echo "Invalid option, please select a number between 1 and 6." ;; esac done @@ -155,9 +165,12 @@ main() { restart) restart_docker_containers ;; + down) + down_docker_containers + ;; *) echo "Unknown command: $1" - echo "Usage: $0 {build|start|stop|restart}" + echo "Usage: $0 {build|start|stop|restart|down}" exit 1 ;; esac From 31edeb6681f0f5e5a47ab700601c6191fe69aa43 Mon Sep 17 00:00:00 2001 From: Adam J Hall <46713492+H4LL@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:20:57 +0700 Subject: [PATCH 12/12] Specified bash compatible shell Signed-off-by: Adam J Hall <46713492+H4LL@users.noreply.github.com> --- scripts/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/README.md b/scripts/README.md index 455c1f026..f3a806815 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -95,7 +95,7 @@ CountryMac:scripts jason$ docker-compose version ### start 1. copy `.env-example` to `.env` and adjust as necessary for your environment -2. bring up traction +2. Run the ./manage script in a bash-compatible shell to start Traction. ```sh cp .env-example .env