Files
sriphat-dataplatform/install.sh
2026-02-16 23:20:48 +07:00

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 ""