116 lines
3.3 KiB
Bash
116 lines
3.3 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
#
|
||
|
|
# Church Music Database - Service Management Script
|
||
|
|
# Convenient wrapper for managing systemd services
|
||
|
|
#
|
||
|
|
|
||
|
|
GREEN='\033[0;32m'
|
||
|
|
YELLOW='\033[1;33m'
|
||
|
|
RED='\033[0;31m'
|
||
|
|
NC='\033[0m'
|
||
|
|
|
||
|
|
BACKEND="church-music-backend"
|
||
|
|
FRONTEND="church-music-frontend"
|
||
|
|
|
||
|
|
show_help() {
|
||
|
|
echo -e "${GREEN}Church Music Database - Service Manager${NC}"
|
||
|
|
echo ""
|
||
|
|
echo "Usage: $0 [COMMAND]"
|
||
|
|
echo ""
|
||
|
|
echo "Commands:"
|
||
|
|
echo " status - Show status of both services"
|
||
|
|
echo " start - Start both services"
|
||
|
|
echo " stop - Stop both services"
|
||
|
|
echo " restart - Restart both services"
|
||
|
|
echo " logs - Show live logs (backend)"
|
||
|
|
echo " logs-fe - Show live logs (frontend)"
|
||
|
|
echo " enable - Enable auto-start on boot"
|
||
|
|
echo " disable - Disable auto-start on boot"
|
||
|
|
echo " health - Check if services are responding"
|
||
|
|
echo ""
|
||
|
|
echo "Examples:"
|
||
|
|
echo " $0 status"
|
||
|
|
echo " $0 restart"
|
||
|
|
echo " $0 logs"
|
||
|
|
echo ""
|
||
|
|
}
|
||
|
|
|
||
|
|
check_health() {
|
||
|
|
echo -e "${YELLOW}Checking service health...${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Check backend
|
||
|
|
if curl -s http://localhost:8080/api/health > /dev/null 2>&1; then
|
||
|
|
echo -e "${GREEN}✓ Backend API (port 8080): HEALTHY${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}✗ Backend API (port 8080): NOT RESPONDING${NC}"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check frontend
|
||
|
|
if curl -s http://localhost:5100 > /dev/null 2>&1; then
|
||
|
|
echo -e "${GREEN}✓ Frontend (port 5100): HEALTHY${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}✗ Frontend (port 5100): NOT RESPONDING${NC}"
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
}
|
||
|
|
|
||
|
|
case "$1" in
|
||
|
|
status)
|
||
|
|
echo -e "${GREEN}=== Backend Service ===${NC}"
|
||
|
|
sudo systemctl status $BACKEND --no-pager -l
|
||
|
|
echo ""
|
||
|
|
echo -e "${GREEN}=== Frontend Service ===${NC}"
|
||
|
|
sudo systemctl status $FRONTEND --no-pager -l
|
||
|
|
;;
|
||
|
|
start)
|
||
|
|
echo -e "${YELLOW}Starting services...${NC}"
|
||
|
|
sudo systemctl start $BACKEND
|
||
|
|
sudo systemctl start $FRONTEND
|
||
|
|
sleep 2
|
||
|
|
echo -e "${GREEN}✓ Services started${NC}"
|
||
|
|
check_health
|
||
|
|
;;
|
||
|
|
stop)
|
||
|
|
echo -e "${YELLOW}Stopping services...${NC}"
|
||
|
|
sudo systemctl stop $BACKEND
|
||
|
|
sudo systemctl stop $FRONTEND
|
||
|
|
echo -e "${GREEN}✓ Services stopped${NC}"
|
||
|
|
;;
|
||
|
|
restart)
|
||
|
|
echo -e "${YELLOW}Restarting services...${NC}"
|
||
|
|
sudo systemctl restart $BACKEND
|
||
|
|
sudo systemctl restart $FRONTEND
|
||
|
|
sleep 2
|
||
|
|
echo -e "${GREEN}✓ Services restarted${NC}"
|
||
|
|
check_health
|
||
|
|
;;
|
||
|
|
logs)
|
||
|
|
echo -e "${GREEN}Showing backend logs (Ctrl+C to exit)...${NC}"
|
||
|
|
sudo journalctl -u $BACKEND -f --no-pager
|
||
|
|
;;
|
||
|
|
logs-fe)
|
||
|
|
echo -e "${GREEN}Showing frontend logs (Ctrl+C to exit)...${NC}"
|
||
|
|
sudo journalctl -u $FRONTEND -f --no-pager
|
||
|
|
;;
|
||
|
|
enable)
|
||
|
|
echo -e "${YELLOW}Enabling auto-start on boot...${NC}"
|
||
|
|
sudo systemctl enable $BACKEND
|
||
|
|
sudo systemctl enable $FRONTEND
|
||
|
|
echo -e "${GREEN}✓ Services will start automatically on boot${NC}"
|
||
|
|
;;
|
||
|
|
disable)
|
||
|
|
echo -e "${YELLOW}Disabling auto-start on boot...${NC}"
|
||
|
|
sudo systemctl disable $BACKEND
|
||
|
|
sudo systemctl disable $FRONTEND
|
||
|
|
echo -e "${GREEN}✓ Auto-start disabled${NC}"
|
||
|
|
;;
|
||
|
|
health)
|
||
|
|
check_health
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
show_help
|
||
|
|
exit 1
|
||
|
|
;;
|
||
|
|
esac
|