#!/bin/bash # Sriphat Data Platform - Quick Install Script for Ubuntu Server set -e echo "=== Sriphat Data Platform - Quick Install ===" echo "" # Check if running as root if [ "$EUID" -eq 0 ]; then echo "Please run as normal user (not root)" echo "The script will ask for sudo password when needed" exit 1 fi # Get script directory SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # Check if Docker is installed if ! command -v docker &> /dev/null; then echo "Docker is not installed. Running setup script..." sudo bash setup-ubuntu.sh echo "" echo "Please logout and login again, then run this script again." exit 0 fi # Check if user is in docker group if ! groups | grep -q docker; then echo "Your user is not in the docker group." echo "Adding you to docker group..." sudo usermod -aG docker $USER echo "" echo "Please logout and login again, then run this script again." exit 0 fi # Create .env.global if not exists if [ ! -f .env.global ]; then echo "Creating .env.global from template..." cp .env.global .env.global.backup 2>/dev/null || true # Generate random secrets POSTGRES_PASS=$(openssl rand -base64 32) KEYCLOAK_PASS=$(openssl rand -base64 32) SUPERSET_SECRET=$(openssl rand -base64 32) ADMIN_SECRET=$(openssl rand -base64 32) cat > .env.global << EOF PROJECT_NAME=sriphat-data DOMAIN=sriphat.local TZ=Asia/Bangkok DB_HOST=postgres DB_PORT=5432 DB_USER=postgres DB_PASSWORD=$POSTGRES_PASS DB_NAME=postgres DB_SSLMODE=prefer POSTGRES_PASSWORD=$POSTGRES_PASS KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN_PASSWORD=$KEYCLOAK_PASS SUPERSET_SECRET_KEY=$SUPERSET_SECRET SUPERSET_ADMIN_USERNAME=admin SUPERSET_ADMIN_PASSWORD=admin ROOT_PATH=/apiservice APP_NAME=APIsService ADMIN_SECRET_KEY=$ADMIN_SECRET ADMIN_USERNAME=admin ADMIN_PASSWORD=admin EOF echo "✓ Created .env.global with random passwords" echo "" echo "IMPORTANT: Save these credentials!" echo "Keycloak Admin Password: $KEYCLOAK_PASS" echo "PostgreSQL Password: $POSTGRES_PASS" echo "" fi # Create backup directory echo "Creating backup directory..." sudo mkdir -p /backups/sriphat-data sudo chown $USER:$USER /backups/sriphat-data # Make scripts executable echo "Making scripts executable..." chmod +x *.sh chmod +x 00-network/*.sh # Start services echo "" echo "Starting all services..." bash start-all.sh echo "" echo "=== Installation Completed! ===" echo "" echo "Services are starting up. Wait 30-60 seconds, then access:" echo "- Nginx Proxy Manager: http://$(hostname -I | awk '{print $1}'):8021" echo "- Keycloak: http://$(hostname -I | awk '{print $1}'):8080" echo "- Airbyte: http://$(hostname -I | awk '{print $1}'):8000" echo "" echo "Default credentials are in .env.global" echo "" echo "To setup automatic backup:" echo " crontab -e" echo " Add: 0 2 * * * $SCRIPT_DIR/backup-daily.sh" echo ""