115 lines
2.9 KiB
Bash
115 lines
2.9 KiB
Bash
#!/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 ""
|