server_init/init.sh

54 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "=== Server Init ==="
echo ""
read -p "Username [ubuntu]: " OLD_USER
OLD_USER="${OLD_USER:-ubuntu}"
read -p "Host: " HOST
read -p "SSH public key path [~/.ssh/id_ed25519.pub]: " PUBKEY_PATH
PUBKEY_PATH="${PUBKEY_PATH:-$HOME/.ssh/id_ed25519.pub}"
read -p "New username: " NEW_USER
SSH_TARGET="${OLD_USER}@pangolin.${HOST}"
echo ""
echo "Set a password for '$NEW_USER' (used for sudo):"
read -s -p "Password: " USER_PASSWORD
echo
read -s -p "Confirm: " USER_PASSWORD_CONFIRM
echo
if [ "$USER_PASSWORD" != "$USER_PASSWORD_CONFIRM" ]; then
echo "Error: Passwords do not match"
exit 1
fi
if [ ! -f "$PUBKEY_PATH" ]; then
echo "Error: Public key file not found: $PUBKEY_PATH"
exit 1
fi
PUBKEY=$(cat "$PUBKEY_PATH")
echo ""
echo "--- JuiceFS / Nextcloud Storage ---"
read -p "S3 endpoint (e.g. https://s3.amazonaws.com): " JUICEFS_S3_ENDPOINT
read -p "S3 bucket name: " JUICEFS_S3_BUCKET
read -p "S3 access key: " JUICEFS_S3_ACCESS_KEY
read -s -p "S3 secret key: " JUICEFS_S3_SECRET_KEY
echo
read -p "JuiceFS local cache size [50G]: " JUICEFS_CACHE_SIZE
JUICEFS_CACHE_SIZE="${JUICEFS_CACHE_SIZE:-50G}"
export SCRIPT_DIR HOST OLD_USER NEW_USER SSH_TARGET PUBKEY USER_PASSWORD
export JUICEFS_S3_ENDPOINT JUICEFS_S3_BUCKET JUICEFS_S3_ACCESS_KEY JUICEFS_S3_SECRET_KEY JUICEFS_CACHE_SIZE
source "$SCRIPT_DIR/scripts/01_create_user.sh"
source "$SCRIPT_DIR/scripts/02_remove_old_user.sh"
source "$SCRIPT_DIR/scripts/03_run_playbook.sh"
source "$SCRIPT_DIR/scripts/04_show_setup_info.sh"