1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/bin/bash
- # Colors for output
- RED='\033[0;31m'
- GREEN='\033[0;32m'
- YELLOW='\033[1;33m'
- NC='\033[0m' # No Color
- # Function to display help menu
- show_help() {
- echo -e "${GREEN}BYOM Project Management Script${NC}"
- echo -e "\nUsage: ./init-byom.sh [command] [args]"
- echo -e "\nCommands:"
- echo " init [host] Initialize environment files (optional: specify host, default: localhost)"
- echo " deploy Deploy to production"
- echo " clean Clean up Docker resources"
- echo -e "\nExamples:"
- echo " ./init-byom.sh init"
- echo " ./init-byom.sh up"
- }
- # Function to initialize environment files
- init_env() {
- echo -e "${GREEN}Initializing environment files for BYOM project...${NC}\n"
- # Create .env for root directory (docker-compose)
- cat > .env << EOL
- # Docker Compose Environment Variables
- DOMAIN=${DOMAIN}
- NODE_ENV=production
- EOL
- echo -e "${GREEN}✓${NC} Created root .env file"
- # Create .env for byom-web
- mkdir -p byom-web
- cat > byom-web/.env << EOL
- # Next.js Environment Variables
- NEXT_PUBLIC_API_CORE_URL=https://${DOMAIN}/api/v1/core
- EOL
- echo -e "${GREEN}✓${NC} Created byom-web/.env file"
- # Create data directory and initialize app.db for byom-core
- mkdir -p byom-core/data
- touch byom-core/data/app.db
- echo -e "${GREEN}✓${NC} Created byom-core/data/app.db file"
- }
- # Function to deploy to production
- deploy_production() {
- echo -e "${GREEN}Deploying to production...${NC}"
-
- # Pull latest changes
- git pull origin main
-
- # Build fresh images
- docker-compose -f docker-compose.yml build
-
- # Deploy with production configuration
- docker-compose -f docker-compose.yml up -d
-
- echo -e "${GREEN}Deployment completed!${NC}"
- }
- # Function to clean up Docker resources
- clean_resources() {
- echo -e "${YELLOW}Cleaning up Docker resources...${NC}"
- docker-compose down -v --remove-orphans
- echo -e "${GREEN}Cleanup completed!${NC}"
- }
- # Main script logic
- case "$1" in
- "init")
- if [ -n "$2" ]; then
- DOMAIN="$2" init_env
- else
- DOMAIN="localhost" init_env
- fi
- ;;
- "deploy")
- deploy_production
- ;;
- "clean")
- clean_resources
- ;;
- "help"|"--help"|"-h"|"")
- show_help
- ;;
- *)
- echo -e "${RED}Invalid command. Use './init-byom.sh help' to see available commands.${NC}"
- exit 1
- ;;
- esac
- exit 0
|