fix: setup flow

This commit is contained in:
mayur.popli
2025-08-20 20:16:20 +05:30
parent 2eadd8ca58
commit 305d6d6496
51 changed files with 3358 additions and 49 deletions

162
setup.sh
View File

@@ -17,32 +17,49 @@ if ! docker info > /dev/null 2>&1; then
exit 1
fi
# Step 1: Start all services with docker-compose
echo -e "${YELLOW}Step 1: Starting all Beckn network services...${NC}"
docker compose down 2>/dev/null
docker compose up -d
# Step 1: Run the Beckn network installer
echo -e "${YELLOW}Step 1: Setting up Beckn network services...${NC}"
# Wait for services to be ready
# Check if install directory exists
if [ ! -d "./install" ]; then
echo -e "${RED}Error: install directory not found.${NC}"
exit 1
fi
# Make the installer executable
chmod +x ./install/beckn-onix.sh
# Navigate to install directory and run setup
cd install
# Auto-select option 3 (local setup) for the installer
echo -e "${GREEN}Running local network setup...${NC}"
echo "3" | ./beckn-onix.sh
cd ..
# Wait for services to stabilize
echo -e "${YELLOW}Waiting for services to be ready...${NC}"
sleep 10
sleep 15
# Step 2: Configure Vault
echo -e "${YELLOW}Step 2: Configuring Vault for key management...${NC}"
# Step 2: Configure Vault for key management
echo -e "${YELLOW}Step 2: Setting up Vault for key management...${NC}"
# Wait for Vault to be ready
for i in {1..30}; do
if docker exec -e VAULT_ADDR=http://127.0.0.1:8200 vault vault status > /dev/null 2>&1; then
echo -e "${GREEN}Vault is ready!${NC}"
break
fi
if [ $i -eq 30 ]; then
echo -e "${RED}Error: Vault failed to start${NC}"
exit 1
fi
sleep 1
done
# Check if Vault is running, if not start it
if ! docker ps | grep -q "vault"; then
echo -e "${BLUE}Starting Vault container...${NC}"
docker run -d \
--name vault \
--cap-add=IPC_LOCK \
-e VAULT_DEV_ROOT_TOKEN_ID=root \
-e VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200 \
-p 8200:8200 \
hashicorp/vault:latest > /dev/null 2>&1
sleep 5
fi
# Configure Vault
echo -e "${BLUE}Configuring Vault policies...${NC}"
docker exec -e VAULT_ADDR=http://127.0.0.1:8200 -e VAULT_TOKEN=root vault \
vault auth enable approle > /dev/null 2>&1 || true
@@ -56,7 +73,7 @@ docker exec -e VAULT_ADDR=http://127.0.0.1:8200 -e VAULT_TOKEN=root vault \
token_ttl=24h \
token_max_ttl=48h > /dev/null 2>&1
# Get credentials
# Get Vault credentials
ROLE_ID=$(docker exec -e VAULT_ADDR=http://127.0.0.1:8200 -e VAULT_TOKEN=root vault \
vault read -field=role_id auth/approle/role/beckn-role/role-id 2>/dev/null)
SECRET_ID=$(docker exec -e VAULT_ADDR=http://127.0.0.1:8200 -e VAULT_TOKEN=root vault \
@@ -66,40 +83,85 @@ SECRET_ID=$(docker exec -e VAULT_ADDR=http://127.0.0.1:8200 -e VAULT_TOKEN=root
docker exec -e VAULT_ADDR=http://127.0.0.1:8200 -e VAULT_TOKEN=root vault \
vault secrets enable -path=beckn kv-v2 > /dev/null 2>&1 || true
# Store sample keys
docker exec -e VAULT_ADDR=http://127.0.0.1:8200 -e VAULT_TOKEN=root vault \
vault kv put beckn/keys/bap \
private_key='sample_bap_private_key' \
public_key='sample_bap_public_key' > /dev/null 2>&1
echo -e "${GREEN}✓ Vault configured successfully${NC}"
docker exec -e VAULT_ADDR=http://127.0.0.1:8200 -e VAULT_TOKEN=root vault \
vault kv put beckn/keys/bpp \
private_key='sample_bpp_private_key' \
public_key='sample_bpp_public_key' > /dev/null 2>&1
# Step 3: Check services status
echo -e "${YELLOW}Step 3: Checking services status...${NC}"
# Check if services are running
if docker ps | grep -q "registry"; then
echo -e "${GREEN}✓ Registry is running${NC}"
fi
if docker ps | grep -q "gateway"; then
echo -e "${GREEN}✓ Gateway is running${NC}"
fi
if docker ps | grep -q "bap-client"; then
echo -e "${GREEN}✓ BAP services are running${NC}"
fi
if docker ps | grep -q "bpp-client"; then
echo -e "${GREEN}✓ BPP services are running${NC}"
fi
if docker ps | grep -q "vault"; then
echo -e "${GREEN}✓ Vault is running${NC}"
fi
# Step 4: Build adapter plugins
echo -e "${YELLOW}Step 4: Building adapter plugins...${NC}"
# Step 3: Build plugins
echo -e "${YELLOW}Step 3: Building plugins...${NC}"
if [ -f "./build-plugins.sh" ]; then
chmod +x ./build-plugins.sh
./build-plugins.sh
echo -e "${GREEN}✓ Plugins built successfully${NC}"
else
echo -e "${RED}Warning: build-plugins.sh not found. Please build plugins manually.${NC}"
echo -e "${RED}Warning: build-plugins.sh not found${NC}"
fi
# Step 4: Build server
echo -e "${YELLOW}Step 4: Building Beckn-ONIX server...${NC}"
go build -o server cmd/adapter/main.go
# Step 5: Build the adapter server
echo -e "${YELLOW}Step 5: Building Beckn-ONIX adapter server...${NC}"
# Create .env.vault file
echo -e "${YELLOW}Step 5: Creating environment file...${NC}"
cat > .env.vault <<EOF
# Vault Credentials for Beckn-ONIX
if [ -f "go.mod" ]; then
go build -o beckn-adapter cmd/adapter/main.go
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Adapter server built successfully${NC}"
else
echo -e "${RED}Failed to build adapter server${NC}"
fi
else
echo -e "${RED}Error: go.mod not found${NC}"
fi
# Step 6: Create environment file
echo -e "${YELLOW}Step 6: Creating environment configuration...${NC}"
cat > .env <<EOF
# Beckn-ONIX Environment Configuration
# Generated on $(date)
# Service URLs
export REGISTRY_URL=http://localhost:3000
export GATEWAY_URL=http://localhost:4000
export BAP_CLIENT_URL=http://localhost:5001
export BAP_NETWORK_URL=http://localhost:5002
export BPP_CLIENT_URL=http://localhost:6001
export BPP_NETWORK_URL=http://localhost:6002
export REDIS_URL=localhost:6379
export MONGO_URL=mongodb://localhost:27017
# Adapter Configuration
export ADAPTER_PORT=8080
export ADAPTER_MODE=development
# Vault Configuration
export VAULT_ADDR=http://localhost:8200
export VAULT_TOKEN=root
export VAULT_ROLE_ID=$ROLE_ID
export VAULT_SECRET_ID=$SECRET_ID
EOF
# Display status
echo -e "${GREEN}✓ Environment file created${NC}"
# Display final status
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}✅ Setup Complete!${NC}"
echo -e "${GREEN}========================================${NC}"
@@ -111,15 +173,19 @@ echo -e " 🛒 BAP Client: http://localhost:5001"
echo -e " 🛒 BAP Network: http://localhost:5002"
echo -e " 🏪 BPP Client: http://localhost:6001"
echo -e " 🏪 BPP Network: http://localhost:6002"
echo -e " 🔐 Vault UI: http://localhost:8200 (token: root)"
echo -e " 💾 Redis: localhost:6379"
echo -e " 🗄️ MongoDB: localhost:27017"
echo ""
echo -e "${GREEN}To run the Beckn-ONIX server:${NC}"
echo " source .env.vault && ./server --config=config/local-dev.yaml"
echo -e "${GREEN}Next Steps:${NC}"
echo -e "1. Run the adapter:"
echo -e " ${YELLOW}source .env && ./beckn-adapter --config=config/local-dev.yaml${NC}"
echo ""
echo -e "${GREEN}To stop all services:${NC}"
echo " docker compose down"
echo -e "2. Test the endpoints:"
echo -e " ${YELLOW}./test_endpoints.sh${NC}"
echo ""
echo -e "${GREEN}To view logs:${NC}"
echo " docker compose logs -f [service-name]"
echo -e "3. Stop all services:"
echo -e " ${YELLOW}cd install && docker compose down${NC}"
echo ""
echo -e "4. View logs:"
echo -e " ${YELLOW}cd install && docker compose logs -f [service-name]${NC}"
echo -e "${GREEN}========================================${NC}"