add files infra docker service for data platform
This commit is contained in:
113
install.sh
Normal file
113
install.sh
Normal file
@@ -0,0 +1,113 @@
|
||||
#!/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}'):81"
|
||||
echo "- Keycloak: http://$(hostname -I | awk '{print $1}'):8080"
|
||||
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 ""
|
||||
Reference in New Issue
Block a user