#!/bin/bash
set -e
error_mode='\033[0;31m'
success_mode='\033[0;32m'
warning_mode='\033[1;33m'
info_mode='\033[0;34m'
NC='\033[0m'
CONFIG_FILE="../attestation_server/conf/server_config.yaml"
ENV_FILE="../attestation_server/conf/.env"
print_key_init_mode() {
echo -e "${2}${1}${NC}"
}
get_key_init_mode() {
local config_file=$1
grep "^[[:space:]]*key_init_mode:" "$config_file" | sed 's/.*key_init_mode:[[:space:]]*["]*//;s/["]*[[:space:]]*#.*//;s/"//g'
}
echo ""
print_key_init_mode "========================================" "$info_mode"
print_key_init_mode " Attestation Service Start Script" "$info_mode"
print_key_init_mode "========================================" "$info_mode"
echo ""
CURRENT_MODE=$(get_key_init_mode "$CONFIG_FILE")
print_key_init_mode "Detected key_init_mode: $CURRENT_MODE" "$info_mode"
echo ""
if [ -z "$CURRENT_MODE" ]; then
print_key_init_mode "ERROR: Could not read key_init_mode from $CONFIG_FILE" "$error_mode"
exit 1
fi
case $CURRENT_MODE in
"local_config")
print_key_init_mode "========================================" "$success_mode"
print_key_init_mode " Starting in local_config mode" "$success_mode"
print_key_init_mode "========================================" "$success_mode"
echo ""
print_key_init_mode "This will start attestation_service WITHOUT key_manager" "$warning_mode"
echo ""
read -p "Continue? (y/n): " confirm
if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
print_key_init_mode "Startup cancelled." "$warning_mode"
exit 0
fi
echo ""
print_key_init_mode "Starting services (without key_manager)..." "$warning_mode"
echo ""
docker compose -f docker-compose.yaml \
--env-file "$ENV_FILE" \
up -d attestation_service
print_key_init_mode "========================================" "$success_mode"
print_key_init_mode " Services started successfully!" "$success_mode"
print_key_init_mode " Mode: local_config (key_manager NOT started)" "$success_mode"
print_key_init_mode "========================================" "$success_mode"
;;
"service_derived")
print_key_init_mode "========================================" "$success_mode"
print_key_init_mode " Starting in service_derived mode" "$success_mode"
print_key_init_mode "========================================" "$success_mode"
echo ""
print_key_init_mode "This will start attestation_service WITH key_manager" "$warning_mode"
echo ""
read -p "Continue? (y/n): " confirm
if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
print_key_init_mode "Startup cancelled." "$warning_mode"
exit 0
fi
echo ""
print_key_init_mode "Starting services (with key_manager)..." "$warning_mode"
echo ""
(cd "$DOCKER_DIR" && docker compose -f docker-compose.yaml \
--profile keymanager \
--env-file "$ENV_FILE" \
up -d attestation_service key_manager)
print_key_init_mode "========================================" "$success_mode"
print_key_init_mode " Services started successfully!" "$success_mode"
print_key_init_mode " Mode: service_derived (key_manager started)" "$success_mode"
print_key_init_mode "========================================" "$success_mode"
;;
*)
print_key_init_mode "ERROR: Unknown key_init_mode: $CURRENT_MODE" "$error_mode"
print_key_init_mode "Valid options: local_config, service_derived" "$error_mode"
exit 1
;;
esac
echo ""
print_key_init_mode "To view logs, run:" "$info_mode"
echo " docker compose -f docker-compose.yaml logs -f"
echo ""